Subject: bug#22817: closed (Re: bug#22817: 25.0.91; [PATCH] Include versioned preloaded libraries in `package--builtin-versions')

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 14 Jul 2016 19:10:02 +0000

Your bug report

#22817: 25.0.91; [PATCH] Include versioned preloaded libraries in `package--builtin-versions'

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
22817: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22817
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#22817: 25.0.91; [PATCH] Include versioned preloaded libraries in `package--builtin-versions'
From: Stefan Monnier <[email-masked]>
To: [email-masked]
Date: Thu, 14 Jul 2016 15:10:39 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Version: 25.1

> Fine with me, thanks.

Thanks, installed.

        Stefan

Subject: 25.0.91; [PATCH] Include versioned preloaded libraries in `package--builtin-versions'
From: Chris Feng <[email-masked]>
To: [email-masked]
Date: Fri, 26 Feb 2016 20:37:33 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Currently `package--builtin-versions' does not contain versioned preloaded
libraries (cl-generic, tabulated-list), which makes package.el believe they're
not builtin and install the versions from ELPA.  This patch fixes the problem.

Also, since `package--builtin-versions' is now complete, should we remove the
version info in `package--builtins'?

Chris
---

* lisp/emacs-lisp/autoload.el (update-directory-autoloads): Do not exclude
preloaded libraries or remove entries generated for them.
(autoload-generate-file-autoloads): Do not generate autoload statements for
preloaded libraries.
---
 lisp/emacs-lisp/autoload.el | 57 ++++++++++++++++++++++-----------------------
 1 file changed, 28 insertions(+), 29 deletions(-)

diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el
index e688d6b..2f2c856 100644
--- a/lisp/emacs-lisp/autoload.el
+++ b/lisp/emacs-lisp/autoload.el
@@ -578,22 +578,24 @@ autoload-generate-file-autoloads
                                                package--builtin-versions))
                                  (princ "\n")))))
 
-                      (goto-char (point-min))
-                      (while (not (eobp))
-                        (skip-chars-forward " \t\n\f")
-                        (cond
-                         ((looking-at (regexp-quote generate-autoload-cookie))
-                          ;; If not done yet, figure out where to insert this text.
-                          (unless output-start
-                            (setq output-start (autoload--setup-output
-                                                otherbuf outbuf absfile load-name)))
-                          (autoload--print-cookie-text output-start load-name file))
-                         ((looking-at ";")
-                          ;; Don't read the comment.
-                          (forward-line 1))
-                         (t
-                          (forward-sexp 1)
-                          (forward-line 1))))))
+                      ;; Do not insert autoload entries for excluded files.
+                      (unless (member absfile autoload-excludes)
+                        (goto-char (point-min))
+                        (while (not (eobp))
+                          (skip-chars-forward " \t\n\f")
+                          (cond
+                           ((looking-at (regexp-quote generate-autoload-cookie))
+                            ;; If not done yet, figure out where to insert this text.
+                            (unless output-start
+                              (setq output-start (autoload--setup-output
+                                                  otherbuf outbuf absfile load-name)))
+                            (autoload--print-cookie-text output-start load-name file))
+                           ((looking-at ";")
+                            ;; Don't read the comment.
+                            (forward-line 1))
+                           (t
+                            (forward-sexp 1)
+                            (forward-line 1)))))))
 
                   (when output-start
                     (let ((secondary-autoloads-file-buf
@@ -810,9 +812,7 @@ update-directory-autoloads
 		  ((not (stringp file)))
 		  ((or (not (file-exists-p file))
                        ;; Remove duplicates as well, just in case.
-                       (member file done)
-                       ;; If the file is actually excluded.
-                       (member (expand-file-name file) autoload-excludes))
+                       (member file done))
                    ;; Remove the obsolete section.
 		   (autoload-remove-section (match-beginning 0)))
 		  ((not (time-less-p (nth 4 form)
@@ -830,16 +830,15 @@ update-directory-autoloads
       ;; Elements remaining in FILES have no existing autoload sections yet.
       (let ((no-autoloads-time (or last-time '(0 0 0 0))) file-time)
 	(dolist (file files)
-	  (cond
-	   ((member (expand-file-name file) autoload-excludes) nil)
-	   ;; Passing nil as second argument forces
-	   ;; autoload-generate-file-autoloads to look for the right
-	   ;; spot where to insert each autoloads section.
-	   ((setq file-time
-		  (autoload-generate-file-autoloads file nil buffer-file-name))
-	    (push file no-autoloads)
-	    (if (time-less-p no-autoloads-time file-time)
-		(setq no-autoloads-time file-time)))))
+          ;; Passing nil as second argument forces
+          ;; autoload-generate-file-autoloads to look for the right
+          ;; spot where to insert each autoloads section.
+          (setq file-time
+                (autoload-generate-file-autoloads file nil buffer-file-name))
+          (when file-time
+            (push file no-autoloads)
+            (if (time-less-p no-autoloads-time file-time)
+                (setq no-autoloads-time file-time))))
 
 	(when no-autoloads
 	  ;; Sort them for better readability.
-- 
2.7.0