From c06d6087d32e45f6228e58b057a4029077e30f1d Mon Sep 17 00:00:00 2001 From: Michal Sojka Date: Sat, 28 Dec 2024 11:12:21 +0100 Subject: [PATCH] Generate overlay with final and prev parameters Otherwise `nix flake check` complains with: error: overlay does not take an argument named 'final' This also changes which callPackage is called. Previously, we used "super" (now prev), but we changed it to "final", because this seems to be more correct (i.e. used in nixpkgs). --- ros2nix/ros2nix.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ros2nix/ros2nix.py b/ros2nix/ros2nix.py index e0386a4..146ec3c 100755 --- a/ros2nix/ros2nix.py +++ b/ros2nix/ros2nix.py @@ -100,14 +100,14 @@ def file_writer(path: str, compare: bool): def generate_overlay(expressions: dict[str, str], args): with file_writer(f'{args.output_dir or "."}/overlay.nix', args.compare) as f: - print("self: super:\n{", file=f) + print("final: prev:\n{", file=f) for pkg in sorted(expressions): expr = ( expressions[pkg] if args.output_dir is None else f"./{os.path.basename(expressions[pkg])}" ) - print(f" {pkg} = super.callPackage {expr} {{}};", file=f) + print(f" {pkg} = final.callPackage {expr} {{}};", file=f) print("}", file=f) @@ -119,9 +119,9 @@ ros_distro_overlays_def = dedent( // builtins.mapAttrs ( rosDistro: rosPkgs: if rosPkgs ? overrideScope then rosPkgs.overrideScope rosOverlay else rosPkgs ) rosPackages; - rosDistroOverlays = self: super: { + rosDistroOverlays = final: prev: { # Apply the overlay to multiple ROS distributions - rosPackages = applyDistroOverlay (import ./overlay.nix) super.rosPackages; + rosPackages = applyDistroOverlay (import ./overlay.nix) prev.rosPackages; }; """ ).strip()