Subject: Re: [PATCH] gnu: emacs: Handle pdump filenames that contain a fingerprint

From: Liliana Marie Prikler <[email-masked]>
Date: Tue, 19 Oct 2021 20:45:03 +0200

Hi,

Am Montag, den 18.10.2021, 19:50 -0400 schrieb
[email-masked]:
> From: Morgan Smith <[email-masked]>
> 
> * gnu/packages/emacs.scm (emacs) [restore-emacs-pdmp]: Add regex to
> handle
> filenames that have a fingerprint in them
> ---
> 
> Fixed your problem.  Well it was also my problem.  The regex is
> pretty simple but probably a little intimidating if you've never done
> it before.  I highly recommend reading up on ERE's and BRE's from the
> POSIX specification if you have time.  I still don't exactly know how
> guile does regex but knowing POSIX regex has served me quite well.
> 
> I've tested this patch and it works great for me on the latest emacs
> commit.  It should also be backwards compatible so that's nice.
> 
> 
>  gnu/packages/emacs.scm | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
> index 6d9950d068..6ebcfecbc7 100644
> --- a/gnu/packages/emacs.scm
> +++ b/gnu/packages/emacs.scm
> @@ -183,9 +183,10 @@ (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$"))
> +                    ;; there might be a fingerprint in the name
> +                    (pdmp (find-files libexec "^emacs(-
> [[:xdigit:]]+)?\\.pdmp$"))
>                      (pdmp-real (find-files libexec
> -                                           "^\\.emacs\\.pdmp-
> real$")))
> +                                           "^\\.emacs(-
> [[:xdigit:]]+)?\\.pdmp-real$")))
>                 (for-each (lambda (wrapper real)
>                             (delete-file wrapper)
>                             (rename-file real wrapper))
Hi, this might sound somewhat odd, but I think this solution could be a
little over-engineered (also it does not match the case where the
version is an actual version rather than a git hash).  Perhaps instead
we ought to simply look for the .pdmp-real suffix, construct the old
file name and move the file back.  WDYT?