Subject: Re: [bug#28185] [PATCH] build: emacs-build-system: Make the install phase more helpful.

From: Christopher Baines <[email-masked]>
Date: Tue, 29 Aug 2017 07:58:27 +0100

On Tue, 29 Aug 2017 11:55:08 +0530
Arun Isaac <[email-masked]> wrote:

> Christopher Baines writes:
> 
> > Modify the install phase to detect when nothing has been installed,
> > and error if this happens. This is preferable to continuing, and
> > allowing the next phase to fail.
> >
> > Also, when nothing can be found to be installed, print out each
> > file that was considered, along with the regular expressions that
> > were used to include and exclude it.
> >
> > * gnu/build/emacs-build-system.scm (install-file?): Add additional
> > error checking and logging.
> > ---
> >  guix/build/emacs-build-system.scm | 45
> > ++++++++++++++++++++++++++++----------- 1 file changed, 32
> > insertions(+), 13 deletions(-)  
> 
> I feel that this adds a lot of complexity (lines of code) to the
> emacs-build-system checking for an error that can be quite easily
> identified and fixed otherwise.
> 
> WDYT? Maybe, others can comment on this as well.

In my personal experience, I didn't find this easy to identify and fix.
For packaging emacs-minitest, I ended up writing this to pin down why
the emacs-build-system wasn't installing the key file.

I think validating that something has been installed is really
important, as otherwise the later phases fail in a very unclear way.

The extra functionality about explaining why each file hasn't been
installed is useful for debugging, and I agree that it adds significant
complexity.

But, I'd like for packaging emacs things to be really easy in the
general case, and I think making the build system more helpful when it
fails is one way to improve this. I wouldn't like to expect that you'd
need to read the implementation of the build system, or add in your own
debugging code just to package a emacs module.