Why does brotlicffi depend on the wrong architecture's cffi?

Running nix why-depends nixpkgs#pkgsCross.aarch64-multiplatform.python3Packages.brotlicffi nixpkgs#python3 shows that brotlicffi depends on the non-aarch64 cffi library (and therefore the non-aarch64 version of python):

/nix/store/pg17r5ln05gcbnvqpk9gnn8w1m8mwsyf-python3.11-brotlicffi-1.1.0.0-aarch64-unknown-linux-gnu
└───/nix/store/7c10im5lz5fcsrznbc6n5qn91af6g17c-python3.11-cffi-1.16.0
    └───/nix/store/glfr70gi7hfaj50mwj2431p8bg60fhqw-python3-3.11.9

Does anyone know why this might be? brotlicffi depends on cffi but I’d expect that to be the target architecture instead of the build host architecture:

Interestingly, it seems like it does also depend on the correct version of cffi:

$ nix why-depends nixpkgs#pkgsCross.aarch64-multiplatform.python3Packages.brotlicffi nixpkgs#pkgsCross.aarch64-multiplatform.python3Packages.cffi 
/nix/store/pg17r5ln05gcbnvqpk9gnn8w1m8mwsyf-python3.11-brotlicffi-1.1.0.0-aarch64-unknown-linux-gnu
└───/nix/store/clhax9xxy3m12rn5yh1lq8j3gkybmfg2-python3.11-cffi-1.16.0-aarch64-unknown-linux-gnu

Found python3Packages: don't propagate build-platform cffi by lopsided98 · Pull Request #221951 · NixOS/nixpkgs · GitHub which is the fix - reopened as python3Packages: don't propagate build-platform cffi by jackwilsdon · Pull Request #308660 · NixOS/nixpkgs · GitHub.

1 Like