+6
maintainers/maintainer-list.nix
+6
maintainers/maintainer-list.nix
···
+1
maintainers/team-list.nix
+1
maintainers/team-list.nix
+43
nixos/doc/manual/configuration/user-mgmt.chapter.md
+43
nixos/doc/manual/configuration/user-mgmt.chapter.md
······
+7
nixos/doc/manual/release-notes/rl-2411.section.md
+7
nixos/doc/manual/release-notes/rl-2411.section.md
···- [Quickwit](https://quickwit.io), sub-second search & analytics engine on cloud storage. Available as [services.quickwit](options.html#opt-services.quickwit).- [Flood](https://flood.js.org/), a beautiful WebUI for various torrent clients. Available as [services.flood](options.html#opt-services.flood).
+1
nixos/modules/module-list.nix
+1
nixos/modules/module-list.nix
···
+1
-1
nixos/modules/profiles/perlless.nix
+1
-1
nixos/modules/profiles/perlless.nix
···
+183
nixos/modules/services/system/userborn.nix
+183
nixos/modules/services/system/userborn.nix
···+message = "When `system.etc.overlay.mutable = false`, `services.userborn.passwordFilesLocation` cannot be set to `/etc`";+lib.map (file: "-${pkgs.util-linux}/bin/umount ${cfg.passwordFilesLocation}/${file}") passwordFiles+"${pkgs.util-linux}/bin/mount --bind -o ro ${cfg.passwordFilesLocation}/${file} ${cfg.passwordFilesLocation}/${file}"
+2
-2
nixos/modules/system/etc/etc-activation.nix
+2
-2
nixos/modules/system/etc/etc-activation.nix
···+assertion = (!config.system.etc.overlay.mutable) -> (config.systemd.sysusers.enable || config.services.userborn.enable);+message = "`!system.etc.overlay.mutable` requires `systemd.sysusers.enable` or `services.userborn.enable`";
+3
-8
nixos/modules/virtualisation/azure-agent.nix
+3
-8
nixos/modules/virtualisation/azure-agent.nix
······
+65
-47
nixos/modules/virtualisation/azure-common.nix
+65
-47
nixos/modules/virtualisation/azure-common.nix
···-boot.kernelParams = [ "console=ttyS0" "earlyprintk=ttyS0" "rootdelay=300" "panic=1" "boot.panic_on_fail" ];+boot.kernelParams = [ "console=ttyS0" "earlyprintk=ttyS0" "rootdelay=300" "panic=1" "boot.panic_on_fail" ];+systemd.network.networks."99-azure-unmanaged-devices.network" = lib.mkIf cfg.acceleratedNetworking {-ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:0", ATTR{removable}=="0", SYMLINK+="disk/by-lun/0",-ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:1", ATTR{removable}=="0", SYMLINK+="disk/by-lun/1",-ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:2", ATTR{removable}=="0", SYMLINK+="disk/by-lun/2"-ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:3", ATTR{removable}=="0", SYMLINK+="disk/by-lun/3"-ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:4", ATTR{removable}=="0", SYMLINK+="disk/by-lun/4"-ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:5", ATTR{removable}=="0", SYMLINK+="disk/by-lun/5"-ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:6", ATTR{removable}=="0", SYMLINK+="disk/by-lun/6"-ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:7", ATTR{removable}=="0", SYMLINK+="disk/by-lun/7"+ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:0", ATTR{removable}=="0", SYMLINK+="disk/by-lun/0",+ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:1", ATTR{removable}=="0", SYMLINK+="disk/by-lun/1",+ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:2", ATTR{removable}=="0", SYMLINK+="disk/by-lun/2"+ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:3", ATTR{removable}=="0", SYMLINK+="disk/by-lun/3"-ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:8", ATTR{removable}=="0", SYMLINK+="disk/by-lun/8"-ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:9", ATTR{removable}=="0", SYMLINK+="disk/by-lun/9"-ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:10", ATTR{removable}=="0", SYMLINK+="disk/by-lun/10"-ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:11", ATTR{removable}=="0", SYMLINK+="disk/by-lun/11"+ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:4", ATTR{removable}=="0", SYMLINK+="disk/by-lun/4"+ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:5", ATTR{removable}=="0", SYMLINK+="disk/by-lun/5"+ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:6", ATTR{removable}=="0", SYMLINK+="disk/by-lun/6"+ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:7", ATTR{removable}=="0", SYMLINK+="disk/by-lun/7"-ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:12", ATTR{removable}=="0", SYMLINK+="disk/by-lun/12"-ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:13", ATTR{removable}=="0", SYMLINK+="disk/by-lun/13"-ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:14", ATTR{removable}=="0", SYMLINK+="disk/by-lun/14"-ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:15", ATTR{removable}=="0", SYMLINK+="disk/by-lun/15"+ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:8", ATTR{removable}=="0", SYMLINK+="disk/by-lun/8"+ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:9", ATTR{removable}=="0", SYMLINK+="disk/by-lun/9"+ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:10", ATTR{removable}=="0", SYMLINK+="disk/by-lun/10"+ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:11", ATTR{removable}=="0", SYMLINK+="disk/by-lun/11"+ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:12", ATTR{removable}=="0", SYMLINK+="disk/by-lun/12"+ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:13", ATTR{removable}=="0", SYMLINK+="disk/by-lun/13"+ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:14", ATTR{removable}=="0", SYMLINK+="disk/by-lun/14"+ENV{DEVTYPE}=="disk", KERNEL!="sda" SUBSYSTEM=="block", SUBSYSTEMS=="scsi", KERNELS=="?:0:0:15", ATTR{removable}=="0", SYMLINK+="disk/by-lun/15"
+27
-4
nixos/modules/virtualisation/azure-image.nix
+27
-4
nixos/modules/virtualisation/azure-image.nix
·········
+5
nixos/tests/all-tests.nix
+5
nixos/tests/all-tests.nix
···
+70
nixos/tests/userborn-immutable-etc.nix
+70
nixos/tests/userborn-immutable-etc.nix
···+normaloHashedPassword = "$y$j9T$IEWqhKtWg.r.8fVkSEF56.$iKNxdMC6hOAQRp6eBtYvBk4c7BGpONXeZMqc8I/LM46";+assert "${normaloHashedPassword}" in machine.succeed("getent shadow normalo"), "normalo user password is not correct"+machine.succeed("/run/current-system/specialisation/new-generation/bin/switch-to-configuration switch")
+75
nixos/tests/userborn-immutable-users.nix
+75
nixos/tests/userborn-immutable-users.nix
···+normaloHashedPassword = "$y$j9T$IEWqhKtWg.r.8fVkSEF56.$iKNxdMC6hOAQRp6eBtYvBk4c7BGpONXeZMqc8I/LM46";+assert "${normaloHashedPassword}" in machine.succeed("getent shadow normalo"), "normalo user password is not correct"+machine.succeed("/run/current-system/specialisation/new-generation/bin/switch-to-configuration switch")
+70
nixos/tests/userborn-mutable-etc.nix
+70
nixos/tests/userborn-mutable-etc.nix
···+normaloHashedPassword = "$y$j9T$IEWqhKtWg.r.8fVkSEF56.$iKNxdMC6hOAQRp6eBtYvBk4c7BGpONXeZMqc8I/LM46";+assert "${normaloHashedPassword}" in machine.succeed("getent shadow normalo"), "normalo user password is not correct"+machine.succeed("/run/current-system/specialisation/new-generation/bin/switch-to-configuration switch")
+76
nixos/tests/userborn-mutable-users.nix
+76
nixos/tests/userborn-mutable-users.nix
···+normaloHashedPassword = "$y$j9T$IEWqhKtWg.r.8fVkSEF56.$iKNxdMC6hOAQRp6eBtYvBk4c7BGpONXeZMqc8I/LM46";+assert "${normaloHashedPassword}" in machine.succeed("getent shadow normalo"), "normalo user password is not correct"+assert 1001 == int(machine.succeed("id --user manual-normalo")), "manual-normalo user doesn't have UID 1001"+machine.succeed("/run/current-system/specialisation/new-generation/bin/switch-to-configuration switch")+assert 1001 == int(machine.succeed("id --user new-normalo")), "new-normalo user doesn't have UID 1001"
+127
nixos/tests/userborn.nix
+127
nixos/tests/userborn.nix
···+rootHashedPasswordFile = "$y$j9T$6ueoTO5y7vvFsGvpQJEEa.$vubxgBiMnkTCtRtPD3hNiZHa7Nm1WsJeE9QomYqSRXB";+updatedRootHashedPassword = "$y$j9T$pBCO9N1FRF1rSl6V15n9n/$1JmRLEYPO7TRCx43cvLO19u59WA/oqTEhmSR4wrhzr.";+updatedNormaloHashedPassword = "$y$j9T$IEWqhKtWg.r.8fVkSEF56.$iKNxdMC6hOAQRp6eBtYvBk4c7BGpONXeZMqc8I/LM46";+sysuserInitialHashedPassword = "$y$j9T$Kb6jGrk41hudTZpNjazf11$iw7fZXrewC6JxRaGPz7/gPXDZ.Z1VWsupvy81Hi1XiD";+updatedSysuserInitialHashedPassword = "$y$j9T$kUBVhgOdSjymSfwfRVja70$eqCwWzVsz0fI0Uc6JsdD2CYMCpfJcErqnIqva2JCi1D";+newNormaloHashedPassword = "$y$j9T$UFBMWbGjjVola0YE9YCcV/$jRSi5S6lzkcifbuqjMcyXLTwgOGm9BTQk/G/jYaxroC";+assert "${rootHashedPasswordFile}" in machine.succeed("getent shadow root"), "root user password is not correct"+assert 1000 <= int(machine.succeed("id --user normalo")), "normalo user doesn't have a normal UID"+assert 1000 > int(machine.succeed("id --user sysuser")), "sysuser user doesn't have a system UID"+assert "${sysuserInitialHashedPassword}" in machine.succeed("getent shadow sysuser"), "system user password is not correct"+machine.succeed("/run/current-system/specialisation/new-generation/bin/switch-to-configuration switch")+assert "${updatedRootHashedPassword}" in machine.succeed("getent shadow root"), "root user password is not updated"+assert "${updatedNormaloHashedPassword}" in machine.succeed("getent shadow normalo"), "normalo user password is not updated"+assert "${sysuserInitialHashedPassword}" in machine.succeed("getent shadow sysuser"), "sysuser user password is not updated"+assert 1000 <= int(machine.succeed("id --user new-normalo")), "new-normalo user doesn't have a normal UID"+assert "${newNormaloHashedPassword}" in machine.succeed("getent shadow new-normalo"), "new-normalo user password is not correct"
+3
-3
pkgs/applications/blockchains/optimism/default.nix
+3
-3
pkgs/applications/blockchains/optimism/default.nix
···
+1
-1
pkgs/applications/misc/mupdf/default.nix
+1
-1
pkgs/applications/misc/mupdf/default.nix
···
+3
-3
pkgs/applications/networking/cluster/kubefirst/default.nix
+3
-3
pkgs/applications/networking/cluster/kubefirst/default.nix
···
+1
pkgs/applications/networking/feedreaders/newsboat/default.nix
+1
pkgs/applications/networking/feedreaders/newsboat/default.nix
+11
-4
pkgs/applications/virtualization/lima/bin.nix
+11
-4
pkgs/applications/virtualization/lima/bin.nix
···
+4
-1
pkgs/build-support/node/build-npm-package/hooks/default.nix
+4
-1
pkgs/build-support/node/build-npm-package/hooks/default.nix
······
+2
-24
pkgs/build-support/node/build-npm-package/hooks/npm-install-hook.sh
+2
-24
pkgs/build-support/node/build-npm-package/hooks/npm-install-hook.sh
···done < <(@jq@ --raw-output '.[0].files | map(.path | select(. | startswith("node_modules/") | not)) | join("\n")' <<< "$(npm_config_cache="$HOME/.npm" npm pack --json --dry-run --loglevel=warn --no-foreground-scripts ${npmWorkspace+--workspace=$npmWorkspace} $npmPackFlags "${npmPackFlagsArray[@]}" $npmFlags "${npmFlagsArray[@]}")")-if [[ "${makeWrapperArgs+defined}" == "defined" && "$(declare -p makeWrapperArgs)" =~ ^'declare -a makeWrapperArgs=' ]]; then-makeWrapper @hostNode@ "$out/bin/${bin[0]}" --add-flags "$packageOut/${bin[1]}" "${user_args[@]}"
-1
pkgs/by-name/do/docfd/package.nix
-1
pkgs/by-name/do/docfd/package.nix
+3
pkgs/by-name/ha/hatch/package.nix
+3
pkgs/by-name/ha/hatch/package.nix
···+# Could not read ELF interpreter from any of the following paths: /bin/sh, /usr/bin/env, /bin/dash, /bin/ls
+4
-4
pkgs/by-name/im/imhex/package.nix
+4
-4
pkgs/by-name/im/imhex/package.nix
······
+2
pkgs/by-name/mu/muffin/package.nix
+2
pkgs/by-name/mu/muffin/package.nix
+2
-3
pkgs/by-name/ni/nix-update/package.nix
+2
-3
pkgs/by-name/ni/nix-update/package.nix
·········
+27
pkgs/by-name/no/nodejsInstallExecutables/hook.sh
+27
pkgs/by-name/no/nodejsInstallExecutables/hook.sh
···+if [[ "${makeWrapperArgs+defined}" == "defined" && "$(declare -p makeWrapperArgs)" =~ ^'declare -a makeWrapperArgs=' ]]; then+makeWrapper @hostNode@ "$out/bin/${bin[0]}" --add-flags "$packageOut/${bin[1]}" "${user_args[@]}"
+19
pkgs/by-name/no/nodejsInstallExecutables/package.nix
+19
pkgs/by-name/no/nodejsInstallExecutables/package.nix
···
+14
pkgs/by-name/no/nodejsInstallManuals/hook.sh
+14
pkgs/by-name/no/nodejsInstallManuals/hook.sh
···
+13
pkgs/by-name/no/nodejsInstallManuals/package.nix
+13
pkgs/by-name/no/nodejsInstallManuals/package.nix
+2
-2
pkgs/by-name/qb/qbittorrent-enhanced/package.nix
+2
-2
pkgs/by-name/qb/qbittorrent-enhanced/package.nix
···
+9
-4
pkgs/by-name/st/stalwart-mail/package.nix
+9
-4
pkgs/by-name/st/stalwart-mail/package.nix
·········+buildFeatures = lib.optional (stdenv.isDarwin) [ "sqlite" "postgres" "mysql" "rocks" "elastic" "s3" "redis" ];
+2
-2
pkgs/by-name/su/surrealdb/package.nix
+2
-2
pkgs/by-name/su/surrealdb/package.nix
···
+43
pkgs/by-name/us/userborn/package.nix
+43
pkgs/by-name/us/userborn/package.nix
···
+3
-41
pkgs/by-name/uv/uv/Cargo.lock
+3
-41
pkgs/by-name/uv/uv/Cargo.lock
·····················
+2
-2
pkgs/by-name/uv/uv/package.nix
+2
-2
pkgs/by-name/uv/uv/package.nix
···
+8
-1
pkgs/by-name/wl/wlx-overlay-s/package.nix
+8
-1
pkgs/by-name/wl/wlx-overlay-s/package.nix
·········
+2
-2
pkgs/by-name/ya/yamlscript/package.nix
+2
-2
pkgs/by-name/ya/yamlscript/package.nix
···url = "https://github.com/yaml/yamlscript/releases/download/${version}/yamlscript.cli-${version}-standalone.jar";
+24
pkgs/development/ocaml-modules/backoff/default.nix
+24
pkgs/development/ocaml-modules/backoff/default.nix
···+url = "https://github.com/ocaml-multicore/backoff/releases/download/${version}/backoff-${version}.tbz";
+1
pkgs/development/ocaml-modules/domainslib/default.nix
+1
pkgs/development/ocaml-modules/domainslib/default.nix
+22
pkgs/development/ocaml-modules/multicore-bench/default.nix
+22
pkgs/development/ocaml-modules/multicore-bench/default.nix
···+url = "https://github.com/ocaml-multicore/multicore-bench/releases/download/${version}/multicore-bench-${version}.tbz";
+24
pkgs/development/ocaml-modules/multicore-magic/default.nix
+24
pkgs/development/ocaml-modules/multicore-magic/default.nix
···+url = "https://github.com/ocaml-multicore/multicore-magic/releases/download/${version}/multicore-magic-${version}.tbz";
+10
-1
pkgs/development/ocaml-modules/saturn/default.nix
+10
-1
pkgs/development/ocaml-modules/saturn/default.nix
······
+5
-5
pkgs/development/ocaml-modules/saturn/lockfree.nix
+5
-5
pkgs/development/ocaml-modules/saturn/lockfree.nix
···url = "https://github.com/ocaml-multicore/saturn/releases/download/${version}/saturn-${version}.tbz";
+19
-28
pkgs/development/python-modules/aeidon/default.nix
+19
-28
pkgs/development/python-modules/aeidon/default.nix
·········
+2
-2
pkgs/development/python-modules/craft-platforms/default.nix
+2
-2
pkgs/development/python-modules/craft-platforms/default.nix
······
+2
-2
pkgs/development/python-modules/gvm-tools/default.nix
+2
-2
pkgs/development/python-modules/gvm-tools/default.nix
······
+2
-2
pkgs/development/python-modules/lib4sbom/default.nix
+2
-2
pkgs/development/python-modules/lib4sbom/default.nix
······
+2
-2
pkgs/development/python-modules/model-bakery/default.nix
+2
-2
pkgs/development/python-modules/model-bakery/default.nix
······
+2
-2
pkgs/development/python-modules/python-gvm/default.nix
+2
-2
pkgs/development/python-modules/python-gvm/default.nix
······
+5
-6
pkgs/development/python-modules/stravalib/default.nix
+5
-6
pkgs/development/python-modules/stravalib/default.nix
······
+1
-1
pkgs/development/tools/rust/cargo-clone/default.nix
+1
-1
pkgs/development/tools/rust/cargo-clone/default.nix
···
+1
pkgs/development/tools/wlcs/default.nix
+1
pkgs/development/tools/wlcs/default.nix
+2
pkgs/kde/gear/konsole/default.nix
+2
pkgs/kde/gear/konsole/default.nix
+14
-2
pkgs/os-specific/linux/compsize/default.nix
+14
-2
pkgs/os-specific/linux/compsize/default.nix
······
+4
-4
pkgs/os-specific/linux/kernel/zen-kernels.nix
+4
-4
pkgs/os-specific/linux/kernel/zen-kernels.nix
···
+4
-4
pkgs/os-specific/linux/nfs-utils/default.nix
+4
-4
pkgs/os-specific/linux/nfs-utils/default.nix
·········
+3
-22
pkgs/servers/ldap/389/default.nix
+3
-22
pkgs/servers/ldap/389/default.nix
···-url = "https://github.com/389ds/389-ds-base/commit/1fe029c495cc9f069c989cfbb09d449a078c56e2.patch";-url = "https://git.rockylinux.org/staging/rpms/389-ds-base/-/raw/dae373bd6b4e7d6f35a096e6f27be1c3bf1e48ac/SOURCES/0004-CVE-2024-2199.patch";-url = "https://git.rockylinux.org/staging/rpms/389-ds-base/-/raw/dae373bd6b4e7d6f35a096e6f27be1c3bf1e48ac/SOURCES/0005-CVE-2024-3657.patch";
+2
-2
pkgs/servers/web-apps/matomo/default.nix
+2
-2
pkgs/servers/web-apps/matomo/default.nix
···
+2
-1
pkgs/tools/wayland/wtype/default.nix
+2
-1
pkgs/tools/wayland/wtype/default.nix
······
+1
-1
pkgs/top-level/aliases.nix
+1
-1
pkgs/top-level/aliases.nix
···tabula = throw "tabula has been removed from nixpkgs, as it was broken"; # Added 2024-07-15-taskwarrior = lib.warn "taskwarrior was replaced by taskwarrior3, which requires manual transition from taskwarrior 2.6, read upstram's docs: https://taskwarrior.org/docs/upgrade-3/" taskwarrior2;+taskwarrior = lib.warn "taskwarrior was replaced by taskwarrior3, which requires manual transition from taskwarrior 2.6, read upstream's docs: https://taskwarrior.org/docs/upgrade-3/" taskwarrior2;
+6
pkgs/top-level/ocaml-packages.nix
+6
pkgs/top-level/ocaml-packages.nix
······