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

From: [email-masked] (Ludovic Courtès)
Date: Tue, 29 Aug 2017 23:46:00 +0200

Hello!

Christopher Baines <[email-masked]> skribis:

> 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.

I agree.  I’m guessing you wrote this after spending a while debugging a
build, despite being experienced with Guix, which to me suggests that
this is a welcome improvement, in spite of the extra 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.

Sounds reasonable.

To me this looks like a step in the right direction.

Thanks,
Ludo’.

PS: Thanks Arun for pinging me.  :-)