lilyp pushed a commit to branch emacs-team
in repository guix.

commit 5b28731e904eed2909946cccedb27d1a1bdd7558
Author: Liliana Marie Prikler <[email protected]>
AuthorDate: Fri Dec 20 21:10:47 2024 +0100

    profiles: emacs-subdirs: Also expand native-comp-eln-load-path.
    
    This patch ensures that the pinned natively compiled Emacs packages can
    actually be found in the respective load path.  The rationale for expanding 
it
    mimics the rationale previously applied to load-path for byte compilation: 
We
    want to be able to `guix upgrade' emacs (or similar) without yanking 
compiled
    packages from underneath.
    
    * guix/profiles.scm (emacs-subdirs): Write an additional “line” of code to
    deal with ‘native-comp-eln-load-path’.
---
 guix/profiles.scm | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/guix/profiles.scm b/guix/profiles.scm
index a28cf872cf..87b9543ac0 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -1206,7 +1206,15 @@ MANIFEST.  Single-file bundles are required by programs 
such as Git and Lynx."
                           (scandir dir (negate (cute member <> '("." 
"..")))))))
                   (filter file-exists?
                           (map (cute string-append <> "/share/emacs/site-lisp")
-                               '#$(manifest-inputs manifest))))))
+                               '#$(manifest-inputs manifest)))))
+                (native-comp-needle
+                 ;; Dynamically find native-site-lisp relative to profile.
+                 ;; We can not hard-code the path here, because the output
+                 ;; isn't known yet.
+                 '(expand-file-name "../../../lib/emacs/native-site-lisp"))
+                (native-comp-dirs
+                 (search-path-as-list '("lib/emacs/native-site-lisp")
+                                      '#$(manifest-inputs manifest))))
             (mkdir-p destdir)
             (with-directory-excursion destdir
               (call-with-output-file "subdirs.el"
@@ -1216,6 +1224,18 @@ MANIFEST.  Single-file bundles are required by programs 
such as Git and Lynx."
                      (list ,@(delete-duplicates subdirs)))
                    port)
                   (newline port)
+                  (write
+                   `(when (boundp 'native-comp-eln-load-path)
+                      (let ((needle ,native-comp-needle))
+                        (setq native-comp-eln-load-path
+                              (mapcan (lambda (dir)
+                                        (if (equal dir needle)
+                                            (nconc ',native-comp-dirs
+                                                   (list dir))
+                                            (list dir)))
+                                      native-comp-eln-load-path))))
+                   port)
+                  (newline port)
                   #t)))))))
   (gexp->derivation "emacs-subdirs" build
                     #:system system

Reply via email to