+4
doc/release-notes/rl-2511.section.md
+4
doc/release-notes/rl-2511.section.md
···+- `python3Packages.triton` no longer takes an `enableRocm` argument and supports ROCm in all build configurations via runtime binding. In most cases no action will be needed. If triton is unable to find the HIP SDK add `rocmPackages.clr` as a build input or set the environment variable `HIP_PATH="${rocmPackages.clr}"`.- `inspircd` has been updated to the v4 release series. Please refer to the upstream documentation for [general information](https://docs.inspircd.org/4/overview/#v4-overview) and a list of [breaking changes](https://docs.inspircd.org/4/breaking-changes/).- `lima` package now only includes the guest agent for the host's architecture by default. If your guest VM's architecture differs from your Lima host's, you'll need to enable the `lima-additional-guestagents` package by setting `withAdditionalGuestAgents = true` when overriding lima with this input.···make the required changes to your database, if needed, then upgrade by setting `services.netbox.package = pkgs.netbox_4_3;` in your configuration.- `privatebin` has been updated to `2.0.0`. This release changes configuration defaults including switching the template and removing legacy features. See the [v2.0.0 changelog entry](https://github.com/PrivateBin/PrivateBin/releases/tag/2.0.0) for details on how to upgrade.- `go-mockery` has been updated to v3. For migration instructions see the [upstream documentation](https://vektra.github.io/mockery/latest/v3/). If v2 is still required `go-mockery_v2` has been added but will be removed on or before 2029-12-31 in-line with it's [upstream support lifecycle](https://vektra.github.io/mockery/
+1
-1
lib/lists.nix
+1
-1
lib/lists.nix
+5
-1
nixos/README-modular-services.md
+5
-1
nixos/README-modular-services.md
······
+11
-1
nixos/doc/manual/default.nix
+11
-1
nixos/doc/manual/default.nix
······-inherit (evalModules { modules = [ ../../modules/system/service/portable/service.nix ]; }) options;
+3
-1
nixos/doc/manual/development/modular-services.md
+3
-1
nixos/doc/manual/development/modular-services.md
···-Refer to the contributor documentation in [`nixos/README-modular-services.md`](https://github.com/NixOS/nixpkgs/blob/master/nixos/README-modular-services.md).+For more details, refer to the contributor documentation in [`nixos/README-modular-services.md`](https://github.com/NixOS/nixpkgs/blob/master/nixos/README-modular-services.md).
+90
nixos/modules/system/service/README.md
+90
nixos/modules/system/service/README.md
···- **Simple attribute structure**: Unlike `environment.etc`, `configData` uses a simpler structure with just `enable`, `name`, `text`, `source`, and `path` attributes. Complex ownership options were omitted for simplicity and portability.+The modular service infrastructure avoids exposing `pkgs` as a module argument to service modules. Instead, derivations and builder functions are provided through lexical closure, making dependency relationships explicit and avoiding uncertainty about where dependencies come from.+- **Explicit dependencies**: Services declare what they need rather than implicitly depending on `pkgs`+- **No interference**: Service modules can be reused in different contexts without assuming a specific `pkgs` instance. An unexpected `pkgs` version is not a failure mode anymore.+- **Clarity**: With fewer ways to do things, there's no ambiguity about where dependencies come from (from the module, not the OS or service manager)+- **Portable layer**: Service modules in `portable/` do not receive `pkgs` as a module argument. Any required derivations must be provided by the caller.+- **Systemd integration**: The `systemd/system.nix` module imports `config-data.nix` as a function, providing `pkgs` in lexical closure:+1. Should explicitly declare their package dependencies as options rather than using `pkgs` defaults:+2. `passthru.services` can still provide a complete module using the package's lexical scope, making the module truly self-contained:
+4
-1
nixos/modules/system/service/portable/config-data.nix
+4
-1
nixos/modules/system/service/portable/config-data.nix
···
+45
-1
nixos/modules/system/service/portable/lib.nix
+45
-1
nixos/modules/system/service/portable/lib.nix
······+`serviceManagerPkgs`: A Nixpkgs instance which will be used for built-in logic such as converting `configData.<path>.text` to a store path.+`extraRootModules`: Modules to be loaded into the "root" service submodule, but not into its sub-`services`. That's the modules' own responsibility.+`extraRootSpecialArgs`: Fixed module arguments that are provided in a similar manner to `extraRootModules`.+`serviceSubmodule`: a Module System option type which is a `submodule` with the portable modules and this function's inputs loaded into it.
+8
-2
nixos/modules/system/service/portable/service.nix
+8
-2
nixos/modules/system/service/portable/service.nix
······
+17
-9
nixos/modules/system/service/portable/test.nix
+17
-9
nixos/modules/system/service/portable/test.nix
······
+3
-1
nixos/modules/system/service/systemd/service.nix
+3
-1
nixos/modules/system/service/systemd/service.nix
······
+14
-30
nixos/modules/system/service/systemd/system.nix
+14
-30
nixos/modules/system/service/systemd/system.nix
···A collection of NixOS [modular services](https://nixos.org/manual/nixos/unstable/#modular-services) that are configured as systemd services.
+3
-17
nixos/tests/modular-service-etc/python-http-server.nix
+3
-17
nixos/tests/modular-service-etc/python-http-server.nix
·········+enable = lib.mkDefault (config.python-http-server.directory == config.configData."webroot".path);
+31
-4
nixos/tests/modular-service-etc/test.nix
+31
-4
nixos/tests/modular-service-etc/test.nix
······-switch_output = server.succeed("/run/current-system/specialisation/updated/bin/switch-to-configuration test")+switch_output = server.succeed("/run/current-system/specialisation/updated/bin/switch-to-configuration test 2>&1 | tee /dev/stderr")
+2
nixos/tests/php/fpm-modular.nix
+2
nixos/tests/php/fpm-modular.nix
+13
pkgs/applications/editors/vim/plugins/generated.nix
+13
pkgs/applications/editors/vim/plugins/generated.nix
···
+16
pkgs/applications/editors/vim/plugins/overrides.nix
+16
pkgs/applications/editors/vim/plugins/overrides.nix
···+# This file runs tests on require which unfortunately fails as it attempts to require the base plugin. See https://github.com/brianhuster/live-preview.nvim/blob/5890c4f7cb81a432fd5f3b960167757f1b4d4702/lua/livepreview/_spec.lua#L25
+1
pkgs/applications/editors/vim/plugins/vim-plugin-names
+1
pkgs/applications/editors/vim/plugins/vim-plugin-names
···
+3
-3
pkgs/applications/emulators/libretro/cores/mupen64plus.nix
+3
-3
pkgs/applications/emulators/libretro/cores/mupen64plus.nix
···
+2
-2
pkgs/applications/gis/qgis/unwrapped.nix
+2
-2
pkgs/applications/gis/qgis/unwrapped.nix
···
+9
pkgs/applications/networking/cluster/terraform-providers/providers.json
+9
pkgs/applications/networking/cluster/terraform-providers/providers.json
···
+5
-1
pkgs/by-name/_8/_86Box/package.nix
+5
-1
pkgs/by-name/_8/_86Box/package.nix
······
+6
-3
pkgs/by-name/bo/bootspec/package.nix
+6
-3
pkgs/by-name/bo/bootspec/package.nix
···
+4
-4
pkgs/by-name/cl/claude-code/package-lock.json
+4
-4
pkgs/by-name/cl/claude-code/package-lock.json
···-"integrity": "sha512-/XuwJqAvXwIGf9WeZOxHI6qQsAGzxhrRc3hyQdvwW6cU5iviTmrxWasksPbJMvFt6KQoAUU6XHs78XyYmBpOXQ==",+"integrity": "sha512-HSrbuYVu4k1dwoj/IYsXEVSoMWDPujy2D4zl9BMt4Zt0kwUwZch0nHpTyQ0C+YeHMN7hHbViz0bw6spg0a5GgQ==",
+3
-3
pkgs/by-name/cl/claude-code/package.nix
+3
-3
pkgs/by-name/cl/claude-code/package.nix
···
+2
-2
pkgs/by-name/fo/fosrl-pangolin/package.nix
+2
-2
pkgs/by-name/fo/fosrl-pangolin/package.nix
···
+7
-1
pkgs/by-name/gh/ghostunnel/package.nix
+7
-1
pkgs/by-name/gh/ghostunnel/package.nix
······
+7
-3
pkgs/by-name/gh/ghostunnel/service.nix
+7
-3
pkgs/by-name/gh/ghostunnel/service.nix
·········
+72
pkgs/by-name/ka/kawa/package.nix
+72
pkgs/by-name/ka/kawa/package.nix
···
+52
pkgs/by-name/li/libopaque/package.nix
+52
pkgs/by-name/li/libopaque/package.nix
···
+3
-3
pkgs/by-name/mi/mise/package.nix
+3
-3
pkgs/by-name/mi/mise/package.nix
···
+3
-3
pkgs/by-name/op/open-webui/package.nix
+3
-3
pkgs/by-name/op/open-webui/package.nix
······url = "https://github.com/pyodide/pyodide/releases/download/${pyodideVersion}/pyodide-${pyodideVersion}.tar.bz2";
+4
pkgs/by-name/os/osm-gps-map/package.nix
+4
pkgs/by-name/os/osm-gps-map/package.nix
+3
-3
pkgs/by-name/pa/pay-respects/package.nix
+3
-3
pkgs/by-name/pa/pay-respects/package.nix
···
+3
-3
pkgs/by-name/te/telepresence2/package.nix
+3
-3
pkgs/by-name/te/telepresence2/package.nix
······
+46
-37
pkgs/by-name/vi/virglrenderer/package.nix
+46
-37
pkgs/by-name/vi/virglrenderer/package.nix
······-url = "https://gitlab.freedesktop.org/virgl/virglrenderer/-/archive/${version}/virglrenderer-${version}.tar.bz2";-description = "Virtual 3D GPU library that allows a qemu guest to use the host GPU for accelerated 3D rendering";
+2
-2
pkgs/by-name/xe/xed-editor/package.nix
+2
-2
pkgs/by-name/xe/xed-editor/package.nix
···
+2
-2
pkgs/by-name/xv/xviewer/package.nix
+2
-2
pkgs/by-name/xv/xviewer/package.nix
···
-2
pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
-2
pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
+7
-1
pkgs/development/interpreters/php/generic.nix
+7
-1
pkgs/development/interpreters/php/generic.nix
······
+14
-6
pkgs/development/interpreters/php/service.nix
+14
-6
pkgs/development/interpreters/php/service.nix
············
+2
-2
pkgs/development/ocaml-modules/dune-rpc/default.nix
+2
-2
pkgs/development/ocaml-modules/dune-rpc/default.nix
+17
-6
pkgs/development/python-modules/fastmcp/default.nix
+17
-6
pkgs/development/python-modules/fastmcp/default.nix
···············
+53
pkgs/development/python-modules/opaque/default.nix
+53
pkgs/development/python-modules/opaque/default.nix
···+"ctypes.util.find_library('opaque') or ctypes.util.find_library('libopaque')" "'${lib.getLib libopaque}/lib/libopaque${soext}'"
+39
pkgs/development/python-modules/opencc/default.nix
+39
pkgs/development/python-modules/opencc/default.nix
···+description = "Python bindings for OpenCC (Conversion between Traditional and Simplified Chinese)";
+2
-2
pkgs/development/python-modules/osc/default.nix
+2
-2
pkgs/development/python-modules/osc/default.nix
···
+1
pkgs/development/python-modules/pyiceberg/default.nix
+1
pkgs/development/python-modules/pyiceberg/default.nix
+11
-16
pkgs/development/python-modules/pyocd/default.nix
+11
-16
pkgs/development/python-modules/pyocd/default.nix
············
+2
-2
pkgs/development/python-modules/pytouchlinesl/default.nix
+2
-2
pkgs/development/python-modules/pytouchlinesl/default.nix
······
+17
-17
pkgs/development/python-modules/ray/default.nix
+17
-17
pkgs/development/python-modules/ray/default.nix
······
+4
pkgs/development/python-modules/spsdk-pyocd/default.nix
+4
pkgs/development/python-modules/spsdk-pyocd/default.nix
+6
pkgs/development/python-modules/spsdk/default.nix
+6
pkgs/development/python-modules/spsdk/default.nix
············
+1
-7
pkgs/development/python-modules/torch/source/default.nix
+1
-7
pkgs/development/python-modules/torch/source/default.nix
···
-28
pkgs/development/python-modules/triton/0002-nvidia-amd-driver-short-circuit-before-ldconfig.patch
-28
pkgs/development/python-modules/triton/0002-nvidia-amd-driver-short-circuit-before-ldconfig.patch
···-raise RuntimeError(f"memory mapped '{mmapped_path}' in process does not point to a valid {lib_name}")
+14
pkgs/development/python-modules/triton/0002-nvidia-driver-short-circuit-before-ldconfig.patch
+14
pkgs/development/python-modules/triton/0002-nvidia-driver-short-circuit-before-ldconfig.patch
···
+60
pkgs/development/python-modules/triton/0005-amd-search-env-paths.patch
+60
pkgs/development/python-modules/triton/0005-amd-search-env-paths.patch
···
+52
-3
pkgs/development/python-modules/triton/default.nix
+52
-3
pkgs/development/python-modules/triton/default.nix
············
+13
pkgs/development/python-modules/vdirsyncer/default.nix
+13
pkgs/development/python-modules/vdirsyncer/default.nix
······+url = "https://github.com/pimutils/vdirsyncer/commit/164559ad7a95ed795ce4ae8d9b287bd27704742d.patch";
+4
-15
pkgs/development/rocm-modules/6/default.nix
+4
-15
pkgs/development/rocm-modules/6/default.nix
···-patches = [ ]; # FIXME: https://github.com/llvm/llvm-project//commit/84837e3cc1cf17ed71580e3ea38299ed2bfaa5f6.patch doesn't apply, may need to rebase···
-56
pkgs/development/rocm-modules/6/triton/default.nix
-56
pkgs/development/rocm-modules/6/triton/default.nix
···-CXXFLAGS = "-O3 -I${rocmPackages.clr}/include -I/build/source/third_party/triton/third_party/nvidia/backend/include";-sed -i '/nvidia\|NVGPU\|registerConvertTritonGPUToLLVMPass\|mlir::test::/Id' bin/RegisterTritonDialects.h---replace-fail 'backends = [*BackendInstaller.copy(["nvidia", "amd"]), *BackendInstaller.copy_externals()]' \
+2
-2
pkgs/development/tools/ocaml/dune/3.nix
+2
-2
pkgs/development/tools/ocaml/dune/3.nix
···
+4
pkgs/tools/compression/zstd/default.nix
+4
pkgs/tools/compression/zstd/default.nix
·········
+1
pkgs/tools/inputmethods/ibus/default.nix
+1
pkgs/tools/inputmethods/ibus/default.nix
+4
pkgs/top-level/python-packages.nix
+4
pkgs/top-level/python-packages.nix
······