Error overriding picom

I’m following the wiki and attempting to override the default Picom package with the latest next branch.

I’ve added the following to my Nix configuration:

  environment.systemPackages = with pkgs; [
    # ...
    (picom.overrideAttrs (oldAttrs: rec {
      src = fetchFromGitHub {
        owner = "yshui";
        repo = "picom";
        rev = "f4fcedc470d39ce21caae4d1d0f73dd7f0b2600e";
        hash = "sha256-59I6uozu4g9hll5U/r0nf4q92+zwRlbOD/z4R8TpSdo=";
      };
    }))
  ];

However, when I try to rebuild the system, I encounter this error:

warning: Git tree '/home/heiytor/nixos' is dirty
building the system configuration...
warning: Git tree '/home/heiytor/nixos' is dirty
error: builder for '/nix/store/a2r2kdpz4zry934can419brlhmxa04d8-picom-11.2.drv' failed with exit code 1;
       last 10 log lines:
       > Run-time dependency libpcre2-8 found: YES 10.43
       > Run-time dependency epoxy found: YES 1.5.10
       > Run-time dependency dbus-1 found: YES 1.14.10
       > Checking for function "dlopen" : YES
       > Compiler for C supports arguments -fsanitize=fuzzer: NO
       > Program asciidoctor found: NO
       >
       > man/meson.build:3:7: ERROR: Program 'asciidoctor' not found or not executable
       >
       > A full log can be found at /build/source/build/meson-logs/meson-log.txt
       For full logs, run 'nix log /nix/store/a2r2kdpz4zry934can419brlhmxa04d8-picom-11.2.drv'.
error: 1 dependencies of derivation '/nix/store/vllijr09mfgsixyd506d84bl9mbndd20-system-path.drv' failed to build
error: 1 dependencies of derivation '/nix/store/aps4086a1zd1qpjhvxkp61jnc0fi1snk-nixos-system-hnix-24.05.20240804.8b5b672.drv' failed to build

Adding asciidoctor to systemPackages did not resolve the issue.

Adding a package to systemPackages does not make it available at build time.
What you want to do is also override nativeBuildInputs and add your package there.

(picom.overrideAttrs (oldAttrs: rec {
      src = fetchFromGitHub {
        owner = "yshui";
        repo = "picom";
        rev = "f4fcedc470d39ce21caae4d1d0f73dd7f0b2600e";
        hash = "sha256-59I6uozu4g9hll5U/r0nf4q92+zwRlbOD/z4R8TpSdo=";
      };
     nativeBuildInputs = [
         asciidoctor
     ] ++ oldAttrs.nativeBuildInputs;
    }))

Should be along the lines of what you want.

1 Like