Hi Nils, On Tue, 26 Sep 2023 19:08:06 +0800, nils@landt.email wrote: > > Hello, > > I use a slightly customized emacs package, and want to use it as the package > that is used in emacs-build-system for the emacs plugins I'm using. > The default emacs gets garbage collected and takes quite a while to > reinstall, I would like to avoid that. Also, it seems cleaner to build the > plugins with the exact version that they will be used with. > > Here's what I have: > > (define emacs-package > ((const > ((options->transformation > '((with-configure-flag . > "emacs=--program-transform-name='s/^ctags$/ctags.emacs/'"))) > emacs)))) > > (define (set-build-system-emacs plugin-package) > (package > (inherit plugin-package) > (arguments > (substitute-keyword-arguments (package-arguments plugin-package) > ((#:emacs emacs) `,emacs-package))))) > > (map set-build-system-emacs package-list) > > From what I can tell this does work for the packages in package-list, but not > for any inputs to those packages. That makes total sense to me, but I don't > know how to solve it. > Any pointers? Or is it possible to set the default package for a build > system, removing the need for this mapping altogether?
`package-input-rewriting' (documented in [1]) can be used for the purpose: --8<---------------cut here---------------start------------->8--- (map (package-input-rewriting `((,emacs-minimal . ,emacs-package) (,emacs . ,emacs-package))) package-list) --8<---------------cut here---------------end--------------->8--- Thanks --- [1]: https://guix.gnu.org/en/manual/devel/en/html_node/Defining-Package-Variants.html