Subject: bug#51258: [PATCH v2] gnu: emacs: Handle pdump filenames that contain a fingerprint

From: Liliana Marie Prikler <[email-masked]>
Date: Tue, 19 Oct 2021 21:53:02 +0200

Am Dienstag, den 19.10.2021, 15:10 -0400 schrieb
[email-masked]:
> From: Morgan Smith <[email-masked]>
> 
> * gnu/packages/emacs.scm (emacs) [restore-emacs-pdmp]: Change regex
> to handle filenames that have a fingerprint in them. Also remove #t
> at the end of the phase.
> ---
> 
> I'm a fan of your idea. I tested this patch and it seems to work as
> expected.
> 
> I do think that the fingerprint will never be a version and my
> original patch would've been fine. However, I'm not certain of that
> and there isn't a good reason to have a super precise regex here
> anyways.
Mostly LGTM, but keep in mind that your new pdmp and pdmp-real could
potentially match more than one file even if realistically there's only
one to be matched.  Hence why I've said we ought to construct the old
file name from the pdmp-real, because find-files need not be sorted.

> 
>  gnu/packages/emacs.scm | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
> index 6d9950d068..2aae21be6d 100644
> --- a/gnu/packages/emacs.scm
> +++ b/gnu/packages/emacs.scm
> @@ -183,14 +183,13 @@ (define* (emacs-byte-compile-directory dir)
>               (let* ((libexec (string-append (assoc-ref outputs
> "out")
>                                              "/libexec"))
>                      ;; each of these find-files should return one
> file
> -                    (pdmp (find-files libexec "^emacs\\.pdmp$"))
> +                    (pdmp (find-files libexec "\\.pdmp$"))
>                      (pdmp-real (find-files libexec
> -                                           "^\\.emacs\\.pdmp-
> real$")))
> +                                           "\\.pdmp-real$")))
>                 (for-each (lambda (wrapper real)
>                             (delete-file wrapper)
>                             (rename-file real wrapper))
> -                         pdmp pdmp-real))
> -             #t))
> +                         pdmp pdmp-real))))
>           (add-after 'glib-or-gtk-wrap 'strip-double-wrap
>             (lambda* (#:key outputs #:allow-other-keys)
>               ;; Directly copy emacs-X.Y to emacs, so that it is not
> wrapped

Regards,
Liliana