Subject: Re: bug#26559: [PATCH] build: emacs: Install only a subset of files.

From: Alex Kost <[email-masked]>
Date: Thu, 20 Apr 2017 14:39:24 +0300

Arun Isaac (2017-04-19 13:25 +0530) wrote:

> This is a work in progress patch for the discussion at
> https://lists.gnu.org/archive/html/guix-devel/2017-04/msg00274.html
>
> All feedback welcome!

Great, thanks for working on it!

> Arun Isaac writes:
>
>> +                      (include ''(".*.el$" ".*.el.in$" "^dir$"
>> +                                 ".*.info$" ".*.texi$" ".*.texinfo$"
>> +                                 "doc/dir" "doc/*.info$" "doc/*.texi$" "doc/*.texinfo$"))
>> +                      (exclude ''("^.dir-locals.el$" "^test.el$" "^tests.el$" ".*-test.el$" ".*-tests.el$"))
>
> I've copied all this from MELPA's default :files property described at
> https://github.com/melpa/melpa . I have no idea what the rationale for
> some of these regexes are.

What regexps are not clear for you?

> Currently, include and exclude are a list of regexes that file names are
> matched against. Should this be combined into one big regex?

I think it is not needed, it is more clean to separate regexps.

> Would it be a good idea to add a third keyword argument, say
> #:documentation, that will select info documentation files and install
> them separately in some other directory?

Regarding documentation: note that it is already installed into the
proper place.  I mean if the package has ".info" files, they are
installed into "share/info" (look at 'move-doc' procedure in (guix build
emacs-build-system) module).  For example, 'emacs-debbugs' has the info
manual and it is installed appropriately.  So I think #:documentation is
not needed.

Also I would like to note that this patch (when it will be ready)
shouldn't be committed alone: there are some emacs packages that should
be adjusted to include additional files.  One that comes to mind is
'emacs-slime' - it *must* contain *.lisp files (and other files as
listed at <https://github.com/melpa/melpa/blob/master/recipes/slime>).
Otherwise, it wouldn't work at all.

So I think this patch should be committed with the according fixes for
such "complex" packages (not sure if there are other ones along with
'emacs-slime').

-- 
Alex