···155155156156- [Monado](https://monado.freedesktop.org/), an open source XR runtime. Available as [services.monado](#opt-services.monado.enable).
157157158158+- [intel-gpu-tools](https://drm.pages.freedesktop.org/igt-gpu-tools), tools for development and testing of the Intel DRM driver. Available as [hardware.intel-gpu-tools](#opt-hardware.intel-gpu-tools.enable)
159159+158160- [Pretix](https://pretix.eu/about/en/), an open source ticketing software for events. Available as [services.pretix](#opt-services.pretix.enable).
159161160162- [microsocks](https://github.com/rofl0r/microsocks), a tiny, portable SOCKS5 server with very moderate resource usage. Available as [services.microsocks](#opt-services.microsocks.enable).
···694696 This enables mandoc to find manual pages in Nix profiles. To set the manual search paths via the `mandoc.conf` configuration file like before, use `documentation.man.mandoc.settings.manpath` instead.
695697696698- `grafana-loki` package was updated to 3.0.0 which includes [breaking changes](https://github.com/grafana/loki/releases/tag/v3.0.0)
699699+700700+- `programs.fish.package` now allows you to override the package used in the `fish` module
···55let
66 cfg = config.services.kanata;
7788+ upstreamDoc = "See [the upstream documentation](https://github.com/jtroo/kanata/blob/main/docs/config.adoc) and [example config files](https://github.com/jtroo/kanata/tree/main/cfg_samples) for more information.";
99+810 keyboard = {
911 options = {
1012 devices = mkOption {
···2224 type = types.lines;
2325 example = ''
2426 (defsrc
2525- grv 1 2 3 4 5 6 7 8 9 0 - = bspc
2626- tab q w e r t y u i o p [ ] \
2727- caps a s d f g h j k l ; ' ret
2828- lsft z x c v b n m , . / rsft
2929- lctl lmet lalt spc ralt rmet rctl)
2727+ caps)
30283131- (deflayer qwerty
3232- grv 1 2 3 4 5 6 7 8 9 0 - = bspc
3333- tab q w e r t y u i o p [ ] \
3434- @cap a s d f g h j k l ; ' ret
3535- lsft z x c v b n m , . / rsft
3636- lctl lmet lalt spc ralt rmet rctl)
3737-3838- (defalias
3939- ;; tap within 100ms for capslk, hold more than 100ms for lctl
4040- cap (tap-hold 100 100 caps lctl))
2929+ (deflayermap (default-layer)
3030+ ;; tap caps lock as caps lock, hold caps lock as left control
3131+ caps (tap-hold 100 100 caps lctl))
4132 '';
4233 description = ''
4334 Configuration other than `defcfg`.
44354545- See [example config files](https://github.com/jtroo/kanata)
4646- for more information.
3636+ ${upstreamDoc}
4737 '';
4838 };
4939 extraDefCfg = mkOption {
···5545 from the devices option) and
5646 `linux-continue-if-no-devs-found` (hardcoded to be yes).
57475858- See [example config files](https://github.com/jtroo/kanata)
5959- for more information.
4848+ ${upstreamDoc}
6049 '';
6150 };
6251 extraArgs = mkOption {
···8675 in
8776 optionalString ((length devices) > 0) "linux-dev (${devicesString})";
88778989- mkConfig = name: keyboard: pkgs.writeText "${mkName name}-config.kdb" ''
9090- (defcfg
9191- ${keyboard.extraDefCfg}
9292- ${mkDevices keyboard.devices}
9393- linux-continue-if-no-devs-found yes)
7878+ mkConfig = name: keyboard: pkgs.writeTextFile {
7979+ name = "${mkName name}-config.kdb";
8080+ text = ''
8181+ (defcfg
8282+ ${keyboard.extraDefCfg}
8383+ ${mkDevices keyboard.devices}
8484+ linux-continue-if-no-devs-found yes)
94859595- ${keyboard.config}
9696- '';
8686+ ${keyboard.config}
8787+ '';
8888+ checkPhase = ''
8989+ ${getExe cfg.package} --cfg "$target" --check --debug
9090+ '';
9191+ };
97929893 mkService = name: keyboard: nameValuePair (mkName name) {
9994 wantedBy = [ "multi-user.target" ];
···153148 options.services.kanata = {
154149 enable = mkEnableOption "kanata, a tool to improve keyboard comfort and usability with advanced customization";
155150 package = mkPackageOption pkgs "kanata" {
156156- example = "kanata-with-cmd";
151151+ example = [ "kanata-with-cmd" ];
157152 extraDescription = ''
158153 ::: {.note}
159154 If {option}`danger-enable-cmd` is enabled in any of the keyboards, the
···1010 coreutils
1111 procps # kill collides with coreutils' to test https://github.com/NixOS/nixpkgs/issues/56432
1212 ];
1313+ # TODO: remove if/when #267880 is merged and this is a default
1414+ services.logrotate.enable = false;
1315 };
14161517 testScript =
+12
nixos/tests/k3s/single-node.nix
···7878 # regression test for #176445
7979 machine.fail("journalctl -o cat -u k3s.service | grep 'ipset utility not found'")
80808181+ with subtest("Run k3s-killall"):
8282+ # Call the killall script with a clean path to assert that
8383+ # all required commands are wrapped
8484+ output = machine.succeed("PATH= ${k3s}/bin/k3s-killall.sh 2>&1 | tee /dev/stderr")
8585+ assert "command not found" not in output, "killall script contains unknown command"
8686+8787+ # Check that killall cleaned up properly
8888+ machine.fail("systemctl is-active k3s.service")
8989+ machine.fail("systemctl list-units | grep containerd")
9090+ machine.fail("ip link show | awk -F': ' '{print $2}' | grep -e flannel -e cni0")
9191+ machine.fail("ip netns show | grep cni-")
9292+8193 machine.shutdown()
8294 '';
8395 })
···5656, nixosTests
5757, pkgsBuildBuild
5858, go
5959+, runCommand
6060+, bash
6161+, procps
6262+, coreutils
6363+, gnugrep
6464+, findutils
6565+, gnused
6666+, systemd
5967}:
60686169# k3s is a kinda weird derivation. One of the main points of k3s is the
···157165 rev = "v${k3sVersion}";
158166 sha256 = k3sRepoSha256;
159167 };
168168+169169+ # Modify the k3s installer script so that we can let it install only
170170+ # killall.sh
171171+ k3sKillallSh = runCommand "k3s-killall.sh" { } ''
172172+ # Copy the upstream k3s install script except for the last lines that
173173+ # actually run the install process
174174+ sed --quiet '/# --- run the install process --/q;p' ${k3sRepo}/install.sh > install.sh
175175+176176+ # Let killall expect "containerd-shim" in the Nix store
177177+ to_replace="k3s/data/\[\^/\]\*/bin/containerd-shim"
178178+ replacement="/nix/store/.*k3s-containerd.*/bin/containerd-shim"
179179+ changes=$(sed -i "s|$to_replace|$replacement| w /dev/stdout" install.sh)
180180+ if [ -z "$changes" ]; then
181181+ echo "failed to replace \"$to_replace\" in k3s installer script (install.sh)"
182182+ exit 1
183183+ fi
184184+185185+ remove_matching_line() {
186186+ line_to_delete=$(grep -n "$1" install.sh | cut -d : -f 1 || true)
187187+ if [ -z $line_to_delete ]; then
188188+ echo "failed to find expression \"$1\" in k3s installer script (install.sh)"
189189+ exit 1
190190+ fi
191191+ sed -i "''${line_to_delete}d" install.sh
192192+ }
193193+194194+ # Don't change mode and owner of killall
195195+ remove_matching_line "chmod.*KILLALL_K3S_SH"
196196+ remove_matching_line "chown.*KILLALL_K3S_SH"
197197+198198+ # Execute only the "create_killall" function of the installer script
199199+ sed -i '$acreate_killall' install.sh
200200+201201+ KILLALL_K3S_SH=$out bash install.sh
202202+ '';
203203+160204 # Stage 1 of the k3s build:
161205 # Let's talk about how k3s is structured.
162206 # One of the ideas of k3s is that there's the single "k3s" binary which can
···278322 runc
279323 ];
280324325325+ k3sKillallDeps = [
326326+ bash
327327+ systemd
328328+ procps
329329+ coreutils
330330+ gnugrep
331331+ findutils
332332+ gnused
333333+ ];
334334+281335 buildInputs = k3sRuntimeDeps;
282336283337 nativeBuildInputs = [
···334388 ln -s $out/bin/k3s $out/bin/kubectl
335389 ln -s $out/bin/k3s $out/bin/crictl
336390 ln -s $out/bin/k3s $out/bin/ctr
391391+ install -m 0755 ${k3sKillallSh} -D $out/bin/k3s-killall.sh
392392+ wrapProgram $out/bin/k3s-killall.sh \
393393+ --prefix PATH : ${lib.makeBinPath (k3sRuntimeDeps ++ k3sKillallDeps)}
337394 '';
338395339396 doInstallCheck = true;
···66, nixosTests
77, config
88, fetchPypi
99+, fetchpatch
910}:
10111112# To expose the *srht modules, they have to be a python module so we use `buildPythonModule`
···6465 inherit version;
6566 hash = "sha256-VUslfHS763oNJUFgpPj/4YUkP1KlIDUGC3Ycpi2XfwM=";
6667 };
6868+ # Fixes a test failure with Pytest 8
6969+ patches = (oldAttrs.patches or []) ++ [
7070+ (fetchpatch {
7171+ url = "https://github.com/pallets/werkzeug/commit/4e5bdca7f8227d10cae828f8064fb98190ace4aa.patch";
7272+ hash = "sha256-H45/YF9zaOUg6UqEEus4uBeGA/TjynuJZcRyc6BHQ30=";
7373+ })
7474+ ];
6775 });
68766977 # sourcehut is not (yet) compatible with factory-boy 3.x
+4-3
pkgs/applications/video/streamlink/default.nix
···42424343 propagatedBuildInputs = with python3Packages; [
4444 certifi
4545+ exceptiongroup
4546 isodate
4647 lxml
4748 pycountry
···5556 websocket-client
5657 ];
57585858- meta = with lib; {
5959+ meta = {
5960 changelog = "https://github.com/streamlink/streamlink/raw/${version}/CHANGELOG.md";
6061 description = "CLI for extracting streams from various websites to video player of your choosing";
6162 homepage = "https://streamlink.github.io/";
···66676768 Streamlink is a fork of the livestreamer project.
6869 '';
6969- license = licenses.bsd2;
7070+ license = lib.licenses.bsd2;
7071 mainProgram = "streamlink";
7171- maintainers = with maintainers; [ dezgeg zraexy DeeUnderscore ];
7272+ maintainers = with lib.maintainers; [ dezgeg zraexy DeeUnderscore ];
7273 };
7374}
···4040 nativeBuildInputs = [ makeWrapper ];
4141 installPhase = ''
4242 install -D -m 0755 src/nixos-anywhere.sh $out/bin/nixos-anywhere
4343+ install -D -m 0755 src/get-facts.sh $out/bin/get-facts.sh
43444445 # We prefer the system's openssh over our own, since it might come with features not present in ours:
4546 # https://github.com/numtide/nixos-anywhere/issues/62
···6969 # tries to make http request
7070 "test_install_non_existent_extension"
71717272+ # test is flaky https://github.com/duckdb/duckdb/issues/11961
7373+ "test_fetchmany"
7474+7275 # https://github.com/duckdb/duckdb/issues/10702
7376 # tests are racy and interrupt can be delivered before or after target point
7477 # causing a later test to fail with a spurious KeyboardInterrupt
···1717in
1818rustPlatform.buildRustPackage rec {
1919 pname = "tauri";
2020- version = "1.6.2";
2020+ version = "1.6.3";
21212222 src = fetchFromGitHub {
2323 owner = "tauri-apps";
2424 repo = pname;
2525 rev = "tauri-v${version}";
2626- hash = "sha256-sqBZVCVJkgqCK5JcNcJ6kKxL26XGxOA1uDlOOt/+iDo=";
2626+ hash = "sha256-TJUE+H2bFuMc6GZHomBC2D89i+SOzIkALlws1sIe3jc=";
2727 };
28282929 # Manually specify the sourceRoot since this crate depends on other crates in the workspace. Relevant info at
3030 # https://discourse.nixos.org/t/difficulty-using-buildrustpackage-with-a-src-containing-multiple-cargo-workspaces/10202
3131 sourceRoot = "${src.name}/tooling/cli";
32323333- cargoHash = "sha256-g1uDF7lL9dmZY5J8uNDAsA8dG5IVrV7MumN1w+fk1/8=";
3333+ cargoHash = "sha256-fOXYE0MJfL1r4DDauuELJkCG4tEOCXscyn9kgaMkidY=";
34343535 buildInputs = [ openssl ] ++ lib.optionals stdenv.isLinux [ glibc libsoup cairo gtk3 webkitgtk ]
3636 ++ lib.optionals stdenv.isDarwin [ CoreServices Security SystemConfiguration ];
+3-5
pkgs/games/dwarf-fortress/default.nix
···11-{ stdenv, stdenvNoCC, gccStdenv, lib, recurseIntoAttrs, libsForQt5, newScope, texliveBasic, perlPackages, jdk8, jre8 }:
11+{ stdenv, stdenvNoCC, gccStdenv, lib, recurseIntoAttrs, libsForQt5, newScope, perlPackages, jdk8, jre8 }:
2233# To whomever it may concern:
44#
···4949 # The latest Dwarf Fortress version. Maintainers: when a new version comes
5050 # out, ensure that (unfuck|dfhack|twbt) are all up to date before changing
5151 # this. Note that unfuck and twbt are not required for 50.
5252- latestVersion = "50.12";
5252+ latestVersion = "50.13";
53535454 # Converts a version to a package name.
5555 versionToName = version: "dwarf-fortress_${replaceStrings ["."] ["_"] version}";
···79798080 dwarf-therapist = libsForQt5.callPackage ./dwarf-therapist/wrapper.nix {
8181 inherit dwarf-fortress;
8282- dwarf-therapist = (libsForQt5.callPackage ./dwarf-therapist {
8383- texlive = texliveBasic.withPackages (ps: with ps; [ float caption wrapfig adjmulticol sidecap preprint enumitem ]);
8484- }).override (optionalAttrs (!isAtLeast50) {
8282+ dwarf-therapist = (libsForQt5.callPackage ./dwarf-therapist {}).override (optionalAttrs (!isAtLeast50) {
8583 # 41.2.5 is the last version to support Dwarf Fortress 0.47.
8684 version = "41.2.5";
8785 hash = "sha256-xfYBtnO1n6OcliVt07GsQ9alDJIfWdVhtuyWwuvXSZs=";
···77in
88buildMongoDB {
99 version = "6.0.13";
1010- sha256 = "sha256-BD3XrTdv4sCa3h37o1A2s3/R0R8zHiR59a4pY0RxLGU=";
1010+ sha256 = "sha256-z7gzmWRSc4jA9g+WTkKQkWudh3Ef4xcJVgAQ5HzRe/A=";
1111 patches = [
1212 # Patches a bug that it couldn't build MongoDB 6.0 on gcc 13 because a include in ctype.h was missing
1313 ./fix-gcc-13-ctype-6_0.patch
···9393 runHook postInstall
9494 '';
95959696- # i know this is ugly, but it's the cleanest way i found to tell the DesktopVideoHelper where to find its own library
9797- appendRunpaths = [ "$ORIGIN/../lib" ];
9696+ # need to tell the DesktopVideoHelper where to find its own library
9797+ appendRunpaths = [ "${placeholder "out"}/lib" ];
98989999 meta = with lib; {
100100 homepage = "https://www.blackmagicdesign.com/support/family/capture-and-playback";