Squeekboard overlay fails to build

Hello,

I have the following overlay for the package squeekboard that mainly pins the version: nix-conf/squeekboard.nix at 420890bb3f18da06fa32fb51d0fa857621443f40 · tmarkov/nix-conf · GitHub

It used to bueld properly, but when I recenrly ran nix flake update for my flake config, and then sudo nixos-rebuild --flake . switch, it failed with the following error:

error: builder for '/nix/store/bszvgzn96941rig0pj5pp1mwnz4mszfx-squeekboard-1.15.0.drv' failed with exit code 1;
       last 10 log lines:
       > meson flags: --buildtype=plain         --libdir=/nix/store/mqqc54y65bgc8gaw2xjb53zdhgkr9sap-squeekboard-1.15.0/lib --libexecdir=/nix/store/mqqc54y65bgc8gaw2xjb53zdhgkr9sap-squeekboard-1.15.0/libexec         --bindir=/nix/store/mqqc54y65bgc8gaw2xjb53zdhgkr9sap-squeekboard-1.15.0/bin --sbindir=/nix/store/mqqc54y65bgc8gaw2xjb53zdhgkr9sap-squeekboard-1.15.0/sbin         --includedir=/nix/store/mqqc54y65bgc8gaw2xjb53zdhgkr9sap-squeekboard-1.15.0/include         --mandir=/nix/store/mqqc54y65bgc8gaw2xjb53zdhgkr9sap-squeekboard-1.15.0/share/man --infodir=/nix/store/mqqc54y65bgc8gaw2xjb53zdhgkr9sap-squeekboard-1.15.0/share/info         --localedir=/nix/store/mqqc54y65bgc8gaw2xjb53zdhgkr9sap-squeekboard-1.15.0/share/locale         -Dauto_features=enabled         -Dwrap_mode=nodownload         --prefix=/nix/store/mqqc54y65bgc8gaw2xjb53zdhgkr9sap-squeekboard-1.15.0 -Dnewer=true
       > The Meson build system
       > Version: 0.63.1
       > Source dir: /build/source
       > Build dir: /build/source/build
       > Build type: native build
       >
       > meson.build:1:0: ERROR: Unknown options: "newer"
       >
       > A full log can be found at /build/source/build/meson-logs/meson-log.txt
       For full logs, run 'nix log /nix/store/bszvgzn96941rig0pj5pp1mwnz4mszfx-squeekboard-1.15.0.drv'.
error: 1 dependencies of derivation '/nix/store/bn0ykyr75m78p0igci5i9g149pqv285d-squeekboard.service.drv' failed to build
error: 1 dependencies of derivation '/nix/store/ixnm1d04hisb6hz4wbf1rr18zxqjvlfr-system-path.drv' failed to build

The source meson.build does not require an option newer, and such is not defined in meson_options.txt.

However, if I look at the source of later versions of squeekboard, THEN I can find an option newer used in the newer meson.build and defined in the newer meson_options.txt`.

That said, I’ve double checked that my hashes in the overlay are for the older versions. I’ve also confirmed that there’s no hashes for squeekboard in flake.lock so couldn’t have changed with the nix flake update.

What could be going on here?

I did check the downloaded sources in /tmp/. They seem to be for the correct version, and meson can build then in a nix-shell spawned from the package default.nix without errors.

It is defined in the Nixpkgs expression:

Meson does not allow you to use non-existent options to prevent typos so if you want to use an older version, you will also need to filter out unsupported flags in your overlay:

super.squeekboard.overrideAttrs (old: rec {
  …
  mesonFlags = builtins.filter (flag: flag != "-Dnewer=true") old.mesonFlags;
}