Package set wide configuration and `callPackage`

The top-level package set ideally contains only packages. It however also contains functions and package sets and probably other attributes as well.

Several times the question came up, how can we perform a package set wide override? I recall there have been PR’s demonstrating USE flags approaches as well.

In this post I consider a specific case, where packages need cuda or mkl. In PR’s it has been proposed to, in an overlay, simply set mklSupport = true; in the top-level set. This functions, because callPackage handles it.

Should we document this as “the way” or not? If not, we do need to think of a solution. Maybe use config values and let callPackage consider those as well?

3 Likes