Ramblings about knowing where to put packages

sorry if this is the wrong category. i don’t really know where this should go…

something i think is a problem is how there really isn’t a way to know how to do x properly, such as:

  • whether a package is intentionally outdated for backwards compat. and probably shouldn’t be used directly, or
  • whether you should really be declaring this by another means to ensure some setup is actually done, or
  • if this package should even be in system packages or somewhere else, and what that somewhere else is

these have in common in that you would think simply adding the package would work to properly install that program, but it would instead install a likely incorrect version of the program, or would be installed improperly and not work properly.

the first case can also apply for packages, see nixpkgs/#253780(shameless plug).
i suspect this happened because the obvious name doesn’t resolve to what you would think it would do – the current version of a program or library, but rather, an outdated version of it, which is under that name for backwards compatibility.
i would suggest making such cases warn unless explicitly opted out by the author. now as to do this without making a cobweb of argument passing…

the second case can be solved by somehow detecting if you’re installing the package incorrectly, and then either erroring out or warning depending on if this is something you might want to do in some specific cases, or an obvious error that does nothing productive.

the last case is a more specific form of the second case - installing a package where it shouldn’t be -, but can also be fixed by another way: more specific examples.
of course this won’t replace the default configuration.nix as both will have separate purposes - one being a minimal example to get a system up and running, the other being more oriented on showing how to build said example into what you want.
now as to what would be included is probably outside the scope of this topic, though i would suggest examples of adding fonts, llvm and gcc toolchains, maybe adding other channels, etc.

PS: can someone alias libsForQt5 to qt5? Please?