The pname is usually the feature name provided by the Emacs lisp
library. trivialBuild makes use[1] of this assumption to generate
NAME-autoloads.el file.
[1]: e6aa338820/pkgs/build-support/emacs/trivial.nix (L24)
This fixes an issue that override cannot override packages which are
the dependencies of usePkgs and not in usePkgs.
This also preserves backward compatibility of override. The hash of
the generated Emacs package from emacsWithPackagesFromUsePackage does
not change after this patch is applied using the old style override.
This is good for AOT native compilation of user config.
Besides being bool, the value of this new option can also be a
derivation produced by pkgs.substituteAll, which avoids IFD comparing
to directly setting that derivation to the config param.
When `use-package-always-ensure` is set to `t`, `:ensure` defaults to
`t`. This adds the `alwaysEnsure` argument to
`emacsWithPackagesFromUsePackage` which, if set to true, emulates this
behavior.
This provides a mechanism for creating an Emacs closure that contains
the runtime dependencies for a given Emacs package source file, by
inspecting its Package-Requires header.