Commit graph

524180 commits

Author SHA1 Message Date
Oliver Schmidt e362fe9c6d security/acme: limit concurrent certificate generations
fixes #232505

Implements the new option `security.acme.maxConcurrentRenewals` to limit
the number of certificate generation (or renewal) jobs that can run in
parallel. This avoids overloading the system resources with many
certificates or running into acme registry rate limits and network
timeouts.

Architecture considerations:
- simplicity, lightweight: Concerns have been voiced about making this
  already rather complex module even more convoluted. Additionally,
  locking solutions shall not significantly increase performance and
  footprint of individual job runs.
  To accomodate these concerns, this solution is implemented purely in
  Nix, bash, and using the light-weight `flock` util. To reduce
  complexity, jobs are already assigned their lockfile slot at system
  build time instead of dynamic locking and retrying. This comes at the
  cost of not always maxing out the permitted concurrency at runtime.
- no stale locks: Limiting concurrency via locking mechanism is usually
  approached with semaphores. Unfortunately, both SysV as well as
  POSIX-Semaphores are *not* released when the process currently locking
  them is SIGKILLed. This poses the danger of stale locks staying around
  and certificate renewal being blocked from running altogether.
  `flock` locks though are released when the process holding the file
  descriptor of the lock file is KILLed or terminated.
- lockfile generation: Lock files could either be created at build time
  in the Nix store or at script runtime in a idempotent manner.
  While the latter would be simpler to achieve, we might exceed the number
  of permitted concurrent runs during a system switch: Already running
  jobs are still locked on the existing lock files, while jobs started
  after the system switch will acquire locks on freshly created files,
  not being blocked by the still running services.
  For this reason, locks are generated and managed at runtime in the
  shared state directory `/var/lib/locks/`.

nixos/security/acme: move locks to /run

also, move over permission and directory management to systemd-tmpfiles

nixos/security/acme: fix some linter remarks in my code

there are some remarks left for existing code, not touching that

nixos/security/acme: redesign script locking flow

- get rid of subshell
- provide function for wrapping scripts in a locked environment

nixos/acme: improve visibility of blocking on locks

nixos/acme: add smoke test for concurrency limitation

heavily inspired by m1cr0man

nixos/acme: release notes entry on new concurrency limits

nixos/acme: cleanup, clarifications
2023-09-09 20:13:18 +02:00
hexchen 084dfe801e obs-studio: add flag for decklink support 2023-09-09 19:45:50 +02:00
hexchen 08f93ba684 decklink: update to 12.5 2023-09-09 19:45:50 +02:00
hexchen 59271ebaa5 decklink: update to 12.2 2023-09-09 19:45:50 +02:00
hexchen 15db31b2d9 nixos/decklink: init 2023-09-09 19:45:50 +02:00
hexchen 517cf05cd7 blackmagicDesktopVideo: init at 12.0a14 2023-09-09 19:45:50 +02:00
hexchen df68d342c9 linuxPackages.decklink: init at 12.0a14 2023-09-09 19:45:50 +02:00
Nick Cao 0b7160e88f
Merge pull request #254249 from figsoda/hack
cargo-hack: 0.6.5 -> 0.6.6
2023-09-09 13:44:46 -04:00
Nick Cao 10f8ec7852
Merge pull request #254237 from r-ryantm/auto-update/kubernetes-polaris
kubernetes-polaris: 8.5.0 -> 8.5.1
2023-09-09 13:43:47 -04:00
Nick Cao f45cfd190a
Merge pull request #254248 from figsoda/typstfmt
typstfmt: 0.2.1 -> 0.2.2
2023-09-09 13:43:15 -04:00
Nick Cao 42d92bbbcc
Merge pull request #254245 from fabaff/python-roborock-bump
python311Packages.python-roborock: 0.32.4 -> 0.33.2
2023-09-09 13:42:44 -04:00
Weijia Wang 0409112162
Merge pull request #254270 from Mic92/fix-eval
camunda-modeler: fix eval
2023-09-09 19:41:41 +02:00
Jörg Thalheim 6c3d0cbadb camunda-modeler: fix eval
sorry!!!!
2023-09-09 19:40:27 +02:00
Ember Keske 96942dd1d5 camunda-modeler: init at 5.13.0 2023-09-09 19:36:33 +02:00
Leandro Reina c439cbc78f python311Packages.dronecan: init at 1.0.25 2023-09-09 19:34:04 +02:00
Janik 1ffb4e592e
Merge pull request #249964 from ambroisie/woodpecker-improvements 2023-09-09 19:30:34 +02:00
ajs124 0a3aa06b53
Merge pull request #253739 from mweinelt/firefox-102-removal
firefox-esr-102-unwrapped: remove
2023-09-09 19:25:42 +02:00
Lassulus b4f1091214
Merge pull request #252006 from ajs124/logrotate-extraParams 2023-09-09 19:12:20 +02:00
ajs124 f8df5ffdfe nixos/tt-rss: fix and significantly simplify database setup
the schema files referenced in the current preStart are empty.
other ones exist, but don't apply cleanly either.
calling update.php with --update-schema works for initial setup and
updates. if the database schema is already up to date, it's idempotent.
2023-09-09 19:11:54 +02:00
Janik eda85eb31d
Merge pull request #251062 from ajs124/restic-wrapper-script 2023-09-09 19:11:33 +02:00
ajs124 8cc74ad049
Merge pull request #254232 from stigtsp/perl/remove-perldevel-throw
perldevel: add throwing alias
2023-09-09 19:09:29 +02:00
Lassulus 72160fbdc1
Merge pull request #251302 from Mic92/buildbot
nixos/buildbot: support reload, buildbot-www-react: init 3.9
2023-09-09 19:09:06 +02:00
Jörg Thalheim 217407ff80 tts: fix patching pyproject constraints 2023-09-09 19:00:58 +02:00
Artturi b3e16d6e10
Merge pull request #254166 from Artturin/fixthingy1 2023-09-09 19:56:02 +03:00
Yorick df123af8b8
Merge pull request #248502 from kurnevsky/wstunnel
wstunnel: correct listen option
2023-09-09 18:45:45 +02:00
Yorick 42344dcc29
Merge pull request #254263 from lf-/jade/update-nix-doc
nix-doc: 0.6.0 -> 0.6.2
2023-09-09 18:38:30 +02:00
Jade Lovelace 27b3d62211 nix-doc: 0.6.0 -> 0.6.2
NixCon edition: "wow these ctags could use to be sorted better". So they
now sort a = x first before inherit a;
2023-09-09 18:19:13 +02:00
sternenseemann bd374243c0 npmHooks: use adjacent packages, not buildPackages
Hooks are essentially implemented as special shell packages that run on
their respective host platform. When they are used, they appear as
nativeBuildInputs (as they need to be executed as part of the build of a
package using them) so are taken from buildPackages relative to the
derivation using them.

Since the override in buildNpmPackage nullifies splicing, we take
npmHooks from buildPackages manually.

Fixes pkgsCross.ghcjs.buildPackages.emscripten and thus
pkgsCross.ghcjs.haskellPackages.ghc.
2023-09-09 17:55:37 +02:00
markuskowa 9f48070e89
Merge pull request #254173 from r-ryantm/auto-update/linuxptp
linuxptp: 4.0 -> 4.1
2023-09-09 17:33:52 +02:00
Janne Heß 6b8306c21c
Merge pull request #249643 from amarshall/networkd-reload
nixos/networkd: Reload (not restart) when only .network units change
2023-09-09 17:31:09 +02:00
Anderson Torres 1b75ac310a doc/hooks/zig.section.md: reword
- Refer to stdenv documentation instead of repeating it
2023-09-09 15:27:11 +00:00
Anderson Torres a49eb940a2 zig: reword setup hook
- Move the huge comment from setup-hook.sh to hook.nix
- Prefix zig in the echoCmd calls
2023-09-09 15:27:11 +00:00
Janne Heß a71936c70f
Merge pull request #254027 from luochen1990/feature-better-binfmt
nixos/binfmt: improve type annotations
2023-09-09 17:24:53 +02:00
Janne Heß 839cdaa190
Merge pull request #253553 from r-ryantm/auto-update/wimboot
wimboot: 2.7.5 -> 2.7.6
2023-09-09 17:24:03 +02:00
Janne Heß 01986f44e9
Merge pull request #253730 from reckenrode/perlPackages.Tk-fix
perlPackages.Tk: fix build with clang 16
2023-09-09 17:23:23 +02:00
Franz Pletz 2874e518bf
Merge pull request #254247 from johnhamelink/fix/mpv-on-darwin
mpv: Fix mujs dylib on Darwin
2023-09-09 17:14:05 +02:00
OPNA2608 154ba6c243 wipeout-rewrite: init at unstable-2023-08-13 2023-09-09 15:03:02 +00:00
Stig Palmquist c8883bd0b7
perldevel: add throwing alias
Add throw explaining that `perldevel` has been dropped due to not being
regularly updated in nixpkgs, and because devel versions of perl are not
consistently supported by perl-cross releases.
2023-09-09 16:23:13 +02:00
figsoda 73ccde3dbc cargo-hack: 0.6.5 -> 0.6.6
Diff: https://diff.rs/cargo-hack/0.6.5/0.6.6

Changelog: https://github.com/taiki-e/cargo-hack/blob/v0.6.6/CHANGELOG.md
2023-09-09 10:19:28 -04:00
figsoda df8e739514 typstfmt: 0.2.1 -> 0.2.2
Diff: https://github.com/astrale-sharp/typstfmt/compare/0.2.1...0.2.2

Changelog: https://github.com/astrale-sharp/typstfmt/blob/0.2.2/CHANGELOG.md
2023-09-09 10:17:03 -04:00
John Hamelink a1abee0758
Fix mujs dylib on Darwin 2023-09-09 15:09:26 +01:00
Fabian Affolter 1bacce1fdf python311Packages.python-roborock: 0.32.4 -> 0.33.2
Diff: https://github.com/humbertogontijo/python-roborock/compare/refs/tags/v0.32.4...v0.33.2

Changelog: https://github.com/humbertogontijo/python-roborock/blob/v0.33.2/CHANGELOG.md
2023-09-09 16:07:00 +02:00
Fabian Affolter 21eefc0c42
Merge pull request #251007 from fabaff/pydiscovergy
python311Packages.pydiscovergy: init at 2.0.3
2023-09-09 16:00:03 +02:00
Doron Behar 7c6dc82d77
Merge pull request #254034 from doronbehar/pkg/gnome-frog
gnome-frog: 1.3.0 -> 1.4.2
2023-09-09 13:33:00 +00:00
revol-xut 6f50091de7 nixos/listmonk: fixing datatype of options 2023-09-09 15:21:32 +02:00
Fabian Affolter 8d4a1b0941 home-assistant: update component-packages 2023-09-09 15:18:44 +02:00
Fabian Affolter fb5b92dcf8 python311Packages.pydiscovergy: init at 2.0.3 2023-09-09 15:18:04 +02:00
OTABI Tomoya 08e65c3723
Merge pull request #254119 from figsoda/zxpy
zxpy: init at 1.6.3
2023-09-09 22:17:38 +09:00
Fabian Affolter f1f9992298
Merge pull request #254077 from fabaff/knowsmore
knowsmore: init at 0.1.37
2023-09-09 15:13:53 +02:00
Nick Cao 733d5c0d22
Merge pull request #253871 from NickCao/pdns
pdns: 4.8.1 -> 4.8.2
2023-09-09 09:11:49 -04:00