Webkitgtk-2.46.3+abi=4.1 is not substituting on nixos-unstable

This package and webkitgtk-2.46.3+abi=4.0 are a dependency for a few packages such as digikam, networkmanager-openconnect and telegram-desktop. For some reason it is being built from source instead of pulling from substitutes. Not sure whether my config overloads the definition somewhere. This is the log from nh os boot --ask

webkitgtk> building '/nix/store/wk4n1l796xy2www4hfmrpm7ycj7s8hxr-webkitgtk-2.46.3+abi=4.1.drv'
webkitgtk> building '/nix/store/cpixsb0zcds5jbnll64baxrxbz4q8178-webkitgtk-2.46.3+abi=4.0.drv'
etc-profile> building '/nix/store/fh1fdgh03mkvjiyx2r4akscfckxmsqd1-etc-profile.drv'
etc-zshenv> building '/nix/store/ijkdr46js5gz46ja3bshra1pdr14slbl-etc-zshenv.drv'
webkitgtk> Running phase: unpackPhase
webkitgtk> unpacking source archive /nix/store/3hnrs2p2nz1z8vvrh0mki0l18apazwxm-webkitgtk-2.46.3.tar.xz
webkitgtk> Running phase: unpackPhase
webkitgtk> unpacking source archive /nix/store/3hnrs2p2nz1z8vvrh0mki0l18apazwxm-webkitgtk-2.46.3.tar.xz

config is at GitHub - marmar04/nix-config: Current NixOS configuration using flakes and home-manager, building for roguenix

Cannot repro, my webkitgtk is cached and hydra says it built it.

/nix/store/5y8md2c601wcb9k7hg58n39vh1j8m7a5-webkitgtk-2.46.3+abi=4.0

Current unstable which is 4aa36568d413aca0ea84a1684d2d46f55dbabad7.

Hmm… I’m also on current unstable, but the hash seems to differ. Is there anything that could override webkitgtk?

Any overlays you have defined or some 3rd party expressions because we aren’t doing that in Nixpkgs to my knowledge.

I have the exact same issue as reported, on the same nixpkgs revision.

Actually I’m building two versions of this package:

building '/nix/store/swbbzrvh7p4kh5qlmy34kfr6y7llgikp-webkitgtk-2.46.3+abi=4.0.drv'
building '/nix/store/c2hw2fj1gh8m0fkx8hmawxhwmgihx4in-webkitgtk-2.46.3+abi=4.1.drv'

The only overlays I personally have are for some leaf packages, nix, nix-output-monitor, nixos-option, nix-eval-jobs, and nix-fast-build.
I also have no override on this package.

I really wish there was some simpler tooling to identify why cache misses occur.

Okay turns out there is some tooling: nix-diff (third-party tool).
Apparently webkitgtk pulls in nix as a dependency, which sounds like a massive packaging bug to me.

nix run nixpkgs#nix-diff /nix/store/swbbzrvh7p4kh5qlmy34kfr6y7llgikp-webkitgtk-2.46.3+abi=4.0.drv $(nix-store --query --deriver $(nix build github:nixos/nixpkgs/nixos-unstable#webkitgtk_4_0 --print-out-paths --no-link))
- /nix/store/swbbzrvh7p4kh5qlmy34kfr6y7llgikp-webkitgtk-2.46.3+abi=4.0.drv:{out}
+ /nix/store/nzfcz8mqw3jk1l4ksvadpbazvs98nlsa-webkitgtk-2.46.3+abi=4.0.drv:{out}
• The input derivation named `geoclue-2.7.2` differs
  - /nix/store/2xxmgwlmrbnf2pg1r826vcmjm0rmbvq5-geoclue-2.7.2.drv:{dev}
  + /nix/store/x616m3921rr1mv1wijp545wainhjsb01-geoclue-2.7.2.drv:{dev}
  • The input derivation named `nix-update-1.5.2` differs
    - /nix/store/xjs6v3naznyfimk2ynw64cpgl68sxply-nix-update-1.5.2.drv:{out}
    + /nix/store/rc1kgxbi17jngznbil4v9d9bpmcbm48y-nix-update-1.5.2.drv:{out}
    • The set of input derivation names do not match:
        - lix-2.91.1
        + nix-2.24.10
    • The input derivation named `nix-prefetch-git` differs
      - /nix/store/l4vq4a4mqjfyxrd46zcxm508jrczlcrg-nix-prefetch-git.drv:{out}
      + /nix/store/zh8wl0rryfirrakclchldyd95dvxbj92-nix-prefetch-git.drv:{out}
      • The set of input derivation names do not match:
          - lix-2.91.1
          + nix-2.24.10
# snip ...
    • The input derivation named `nixpkgs-review-2.12.0` differs
      - /nix/store/yyma7xyq3l1g01x9rsabf7kcy9h3azqd-nixpkgs-review-2.12.0.drv:{out}
      + /nix/store/xlah2n89a6zy99sph6cycxkn6yzw761y-nixpkgs-review-2.12.0.drv:{out}
      • The set of input derivation names do not match:
          - lix-2.91.1
          + nix-2.24.10

EDIT: this is fixed in geoclue: fix placing updateScript in passthru by kira-bruneau · Pull Request #354243 · NixOS/nixpkgs · GitHub pending whenever it shows up in unstable, I guess.

@marmar04 can you check if it’s something similar for you?

3 Likes

Same exact issue as the above, same rev, same building of both webkitgtk-2.46.3+abi=4.1 and webkitgtk-2.46.3+abi=4.0. The former is a dependency for NetworkManager-openconnect while the latter is a dependency for lutris-unwrapped. I am not using any overlays that would affect this.

How would I use nix-diff? I’m not familiar with the tool, and I don’t know how to translate it to my flakes config. Also I’m using lix instead of nix, so that might be a point to consider.

I’m using lix, as you can see in my output, and I gave a sample command to run.
Are you overlaying nix in your config to point at lix?

Yeah, same here. Also overlaying nix with lix in my config

❯ nix run nixpkgs#nix-diff /nix/store/cpixsb0zcds5jbnll64baxrxbz4q8178-webkitgtk-2.46.3+abi=4.0.drv $(nix-store --query --deriver $(nix build github:nixos/nixpkgs/nixos-unstable#webkitgtk_4_0 --print-out-paths --no-link))
- /nix/store/cpixsb0zcds5jbnll64baxrxbz4q8178-webkitgtk-2.46.3+abi=4.0.drv:{out}
+ /nix/store/nzfcz8mqw3jk1l4ksvadpbazvs98nlsa-webkitgtk-2.46.3+abi=4.0.drv:{out}
• The input derivation named `geoclue-2.7.2` differs
  - /nix/store/7ysvls2qmzr0mbrm4721gad3l470yxdj-geoclue-2.7.2.drv:{dev}
  + /nix/store/x616m3921rr1mv1wijp545wainhjsb01-geoclue-2.7.2.drv:{dev}
  • The input derivation named `nix-update-1.5.2` differs
    - /nix/store/pd7jyskpjpr0ysrdkkiwn8zvd8gcisi4-nix-update-1.5.2.drv:{out}
    + /nix/store/rc1kgxbi17jngznbil4v9d9bpmcbm48y-nix-update-1.5.2.drv:{out}
    • The set of input derivation names do not match:
        - lix-2.91.0
        + nix-2.24.10
    • The input derivation named `nix-prefetch-git` differs
      - /nix/store/fpls75lcybzjd122ix44al581fph72d6-nix-prefetch-git.drv:{out}
      + /nix/store/zh8wl0rryfirrakclchldyd95dvxbj92-nix-prefetch-git.drv:{out}
      • The set of input derivation names do not match:
          - nix-2.18.9
          + nix-2.24.10
      • The environments do not match:
          installPhase=''
          install -vD /nix/store/fii9pj8nmnb750c2f191pr3x8j8w3h9x-nix-prefetch-git $out/bin/$name;
          wrapProgram $out/bin/$name \
            --prefix PATH : /nix/store/sf6y4arqcm100rnnl3dhpg732i774zp6-coreutils-9.5/bin:/nix/store/psjqqbj19n3fqssn38hgz4cv7b7a9alp-findutils-4.10.0/bin:/nix/store/1cd3p3kjh9c209s7832z8i3b8qcqggca-gawk-5.3.1/bin:/nix/store/j44p1p9kci9rnrr3aj9a8j8rwvfmg75k-git-2.47.0/bin:/nix/store/fr9imvb6gb7a28095w4wp9bkddxdpgfm-git-lfs-3.5.1/bin:/nix/store/13wxcn0j2wk911ahfkbvdq241rkprsv8-gnused-4.9/bin:/nix/store/wnw0qkdn4qnppaywd25xb0i265cj5pp7-nix-2.18.9/bin/nix/store/sf6y4arqcm100rnnl3dhpg732i774zp6-coreutils-9.5/bin:/nix/store/psjqqbj19n3fqssn38hgz4cv7b7a9alp-findutils-4.10.0/bin:/nix/store/1cd3p3kjh9c209s7832z8i3b8qcqggca-gawk-5.3.1/bin:/nix/store/j44p1p9kci9rnrr3aj9a8j8rwvfmg75k-git-2.47.0/bin:/nix/store/fr9imvb6gb7a28095w4wp9bkddxdpgfm-git-lfs-3.5.1/bin:/nix/store/13wxcn0j2wk911ahfkbvdq241rkprsv8-gnused-4.9/bin:/nix/store/rpl4s6srw7cgsvpa8w2ndrk1gc15i3ch-nix-2.24.10/bin \
            --set HOME /homeless-shelter
          
      ''
    • The input derivation named `nixpkgs-review-2.12.0` differs
      - /nix/store/pxkw6kkk51vf5dyk2ppbbbfjfjldd70f-nixpkgs-review-2.12.0.drv:{out}
      + /nix/store/xlah2n89a6zy99sph6cycxkn6yzw761y-nixpkgs-review-2.12.0.drv:{out}
      • The set of input derivation names do not match:
          - lix-2.91.0
          + nix-2.24.10
      • The environments do not match:
          makeWrapperArgs=''
          --prefix PATH : /nix/store/cr5qxybgx4b9v47fn56xf81awh9wbi59-lix-2.91.0/bin:/nix/store/j44p1p9kci9rnrr3aj9a8j8rwvfmg75k-git-2.47.0/bin/nix/store/rpl4s6srw7cgsvpa8w2ndrk1gc15i3ch-nix-2.24.10/bin:/nix/store/j44p1p9kci9rnrr3aj9a8j8rwvfmg75k-git-2.47.0/bin --set-default NIX_SSL_CERT_FILE /nix/store/mqvcvn7vpzsrihgj3ph39mbvyyj435bc-nss-cacert-3.104/etc/ssl/certs/ca-bundle.crt --unset PYTHONPATH
      ''
    • Skipping environment comparison
  • Skipping environment comparison
• Skipping environment comparison

Okay, then you’ll need to wait for that PR to come through:
https://nixpkgs-tracker.ocfox.me/?pr=354243

1 Like

Or just …not do that.

No thanks!​​​​​​​​​ I’m not interested in using nix.

No, I meant the overlay. You can simply

to get most of the way there. In the tools that depend on nix internally, you usually don’t care whether it’s nix or lix because you don’t interact with it and stuff like nixpkgs-review will just use nom anyways.

I’m aware, and presumably any “communication” with the store is mediated by the lix daemon simply by setting that, but I’d rather not have nix in my system closure to avoid any potential issues with any nix-based tooling in case nix and lix somehow diverge. And I have my own patches for lix, it’d break eval anyway if I used the regular nix or even unpatched lix in some tooling. It really does need to be replaced throughout the nixpkgs instance in my case.