summaryrefslogtreecommitdiff
path: root/pkgs/development/python-modules/rangehttpserver
diff options
context:
space:
mode:
authorsveith <simon@simonveith.de>2025-01-28 02:28:41 +0100
committerGitHub <noreply@github.com>2025-01-28 02:28:41 +0100
commit7072056be606eaadee1d581a5fbde7a9357d1e8d (patch)
tree1db316a904c440c3d9b1bbc04315904ccf89410a /pkgs/development/python-modules/rangehttpserver
parent9c0340aea8f186e78bc28f8c64c48c1c1f96f621 (diff)
octoprint: use octoprint from final package set as plugin build input (#370953)
OctoPrint and its plugins are packaged in the form of multiple overlays, each adding one or more packages built with `buildPythonPackage`. In the NixOS module, the core `octoprint` package is then combined with zero or more of the plugin packages into one `python.withPackages` environment that is referenced by the systemd service unit. Since plugins have to use the OctoPrint modules at runtime, they receive the `octoprint` Python package as part of `propagatedBuildInputs`. However, the current implementation of the plugins overlay takes this dependency from the `super` package set, i.e., the stage preceding the plugins overlay. The use of `super` packages for dependencies is problematic here, as there may be other subsequent overlays that modify the `octoprint` package, and the `octoprint` that ends up in the final package set may not be the same that the plugin was built against. Things work out fine in the absence of any `octoprint` overrides, or if no plugins are used. Combining the two in a NixOS configuration, however, breaks the build with a collision of OctoPrint executables: error: builder for '/nix/store/7sjbm51s4j5p02s76ncrb6arzb5nwph7-python3-3.12.8-env.drv' failed with exit code 255; last 1 log lines: > error: collision between `/nix/store/rg9mixyc0qpdgn3ynrlwlp2qk9l5gh6a-python3.12-OctoPrint-1.10.3/bin/octoprint' and `/nix/store/ws68951jy8gx7q9n09xgpykkwhia82mb-Overridden-OctoPrint-1.10.2/bin/octoprint' For full logs, run 'nix-store -l /nix/store/7sjbm51s4j5p02s76ncrb6arzb5nwph7-python3-3.12.8-env.drv'. error: 1 dependencies of derivation '/nix/store/sgmn253inypq9hi722a9817w1ji8lkb8-unit-octoprint.service.drv' failed to build error: 1 dependencies of derivation '/nix/store/aydjfz8xf8s87hxc60vpnkzbclj5knj5-system-units.drv' failed to build error: 1 dependencies of derivation '/nix/store/97a3pr2v2b5yjw9g3za5rbc6blb2q808-etc.drv' failed to build The collision is between the overridden `octoprint` from the final package set and the non-overridden version that the plugins depend on (and end up propagating to their consumers). They all should be using one and the same `octoprint` package, which is the one from `self`, the final package set after applying all overrides. Modify the `buildPlugin` helper function accordingly. Fixes: https://github.com/NixOS/nixpkgs/issues/370946
Diffstat (limited to 'pkgs/development/python-modules/rangehttpserver')
0 files changed, 0 insertions, 0 deletions