scrush
December 8, 2025, 12:19pm
1
Cheers!
I was going to ask for help, but was able to fix it while I was summing up my work for the request.
So below is my share of how to fix your waiting for this particular upstream fix.
I would also be happy to get some feedback in case this approach could be done another, maybe better way. Thank you!
Congrats to the release of 25.11, the update went mostly flawless to my systems. Just one thing I was fiddling with is a changed dependency of the changedetection-io package. The maintainers already pushed a commit for merge, but that didnt faciliate into master yet.
The commit:
master â thanegill:changedetection-io_playwright
opened 05:18AM - 03 Dec 25 UTC
## Things done
Adds dependency on python3pkgs.playwright. This is not require⌠d in the upstream package, but is required to use the playwright features.
- Built on platform:
- [ ] x86_64-linux
- [ ] aarch64-linux
- [ ] x86_64-darwin
- [ ] aarch64-darwin
- Tested, as applicable:
- [ ] [NixOS tests] in [nixos/tests].
- [ ] [Package tests] at `passthru.tests`.
- [ ] Tests in [lib/tests] or [pkgs/test] for functions and "core" functionality.
- [ ] Ran `nixpkgs-review` on this PR. See [nixpkgs-review usage].
- [ ] Tested basic functionality of all binary files, usually in `./result/bin/`.
- Nixpkgs Release Notes
- [ ] Package update: when the change is major or breaking.
- NixOS Release Notes
- [ ] Module addition: when adding a new NixOS module.
- [ ] Module update: when the change is significant.
- [ ] Fits [CONTRIBUTING.md], [pkgs/README.md], [maintainers/README.md] and other READMEs.
[NixOS tests]: https://nixos.org/manual/nixos/unstable/index.html#sec-nixos-tests
[Package tests]: https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#package-tests
[nixpkgs-review usage]: https://github.com/Mic92/nixpkgs-review#usage
[CONTRIBUTING.md]: https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md
[lib/tests]: https://github.com/NixOS/nixpkgs/blob/master/lib/tests
[maintainers/README.md]: https://github.com/NixOS/nixpkgs/blob/master/maintainers/README.md
[nixos/tests]: https://github.com/NixOS/nixpkgs/blob/master/nixos/tests
[pkgs/README.md]: https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md
[pkgs/test]: https://github.com/NixOS/nixpkgs/blob/master/pkgs/test
---
Add a :+1: [reaction] to [pull requests you find important].
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[pull requests you find important]: https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+sort%3Areactions-%2B1-desc
How would I be able to overlay that dependency in my flake?
I tried to answer this via the wiki but didnt succeed for a while: https://wiki.nixos.org/wiki/Overlays
The fixed flake looks like this now:
flake.nix looks smth like this:
outputs = {
self,
nixpkgs,
...
} @ inputs: let
inherit (self) outputs;
....
in {
....
overlays = import ./overlays {inherit inputs;};
nixosConfigurations = {
./overlays/default.nix:
{inputs, ...}: {
additions = final: _prev: import ../pkgs {pkgs = final;};
modifications = final: prev: {
changedetection-io = prev.changedetection-io.overrideAttrs (prevPdAttrs: {
propagatedBuildInputs = with prev.python3.pkgs;
[
playwright
]
++ prev.changedetection-io.propagatedBuildInputs;
}
);
};
}
scrush:
with prev.python3.pkgs;
final not prev - always prefer final unless itâs going to infrec.
scrush:
overrideAttrs
Should be overridePythonAttrs.
I donât know how youâre using the overlays.
1 Like
scrush
December 8, 2025, 3:09pm
3
applied prev->final and PythonAttrs, theyâre working and I guess its obvious theyâre better.
thank you!
How I am using overlays⌠I dont know man⌠just pulled a flake a year ago and fiddling around all day. the overlay with the additions/modifications part was prepared and I just added the attribute for changedetection-io
So in the end, I am surprised as well to have this working
I shouldâve said: I was looking to see more code to help further. But if my suggestions fixed it then no worries
Another way to solve this specific issue without overlays is to override the package that the service is using:
services.changedetection-io = {
enable = true;
package = pkgs.changedetection-io.overrideAttrs (oldAttrs: {
propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [
pkgs.python3.pkgs.playwright
];
});
};
1 Like
scrush
December 9, 2025, 6:11am
6
@thanegill
I would consider it the most concise and consistent way
Thank you!
services.changedetection-io = {
enable = true;
package = pkgs.changedetection-io.overridePythonAttrs (prevAttrs: {
# needed for: https://github.com/NixOS/nixpkgs/pull/467379
propagatedBuildInputs =
[ pkgs.python3.pkgs.playwright ] ++ prevAttrs.propagatedBuildInputs;
});