]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/emacs-lisp/package.el (package-initialize): Set enable-at-startup
authorArtur Malabarba <bruce.connor.am@gmail.com>
Sun, 6 Sep 2015 12:52:54 +0000 (13:52 +0100)
committerArtur Malabarba <bruce.connor.am@gmail.com>
Mon, 7 Sep 2015 10:22:30 +0000 (11:22 +0100)
When `package-initialize' is called as part of loading the init file,
the user probably doesn't want it to be called again afterwards. In this
situation, `package-initialize' now sets `package-enable-at-startup' to
nil to prevent that. The user can have the old behaviour by setting this
variable to t after the call to `package-initialize'.  (Bug#21423)

* doc/emacs/package.texi (Package Installation): Document it

* doc/lispref/package.texi (Packaging Basics): Document it

* etc/NEWS: Document it

doc/emacs/package.texi
doc/lispref/package.texi
etc/NEWS
lisp/emacs-lisp/package.el

index 68913d8b6fd80f956218a51dd08e79d9baf6e3a1..19d861a83955ae2149ad3c761732511db12bf3d1 100644 (file)
@@ -232,7 +232,7 @@ in your init file depends on a package).  In that case, your init file
 should call the function @code{package-initialize}.  It is up to you
 to ensure that relevant user options, such as @code{package-load-list}
 (see below), are set up prior to the @code{package-initialize} call.
-You should also set @code{package-enable-at-startup} to @code{nil}, to
+This will automatically set @code{package-enable-at-startup} to @code{nil}, to
 avoid loading the packages again after processing the init file.
 Alternatively, you may choose to completely inhibit package loading at
 startup, and invoke the command @kbd{M-x package-initialize} to load
index f8eba2a5161ae75a7856e16ff8189f3b225354cd..7136286f0ba49bae9f7c73c4181e2dd65b8ecc62 100644 (file)
@@ -113,8 +113,10 @@ package loading is disabled if the user option
 This function initializes Emacs' internal record of which packages are
 installed, and loads them.  The user option @code{package-load-list}
 specifies which packages to load; by default, all installed packages
-are loaded.  @xref{Package Installation,,, emacs, The GNU Emacs
-Manual}.
+are loaded.  If called during startup, this function also sets
+@code{package-enable-at-startup} to @code{nil}, to avoid accidentally
+loading the packages twice.  @xref{Package Installation,,, emacs, The
+GNU Emacs Manual}.
 
 The optional argument @var{no-activate}, if non-@code{nil}, causes
 Emacs to update its record of installed packages without actually
index c5148c1b0819080fd2feae4c587a2127a8e479fb..8a08a065ba98a527cbeb0a4f81a659ad9273bd73 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -856,6 +856,13 @@ a typographically-correct documents.
 \f
 * Incompatible Lisp Changes in Emacs 25.1
 
++++
+** `package-initialize' now sets `package-enable-at-startup' to nil if
+called during startup.  Users who call this function in their init
+file and still expect it to be run after startup should set
+`package-enable-at-startup' to t after the call to
+`package-initialize'.
+
 ** `:global' minor mode use `setq-default' rather than `setq'.
 This means that you can't use `make-local-variable' and expect them to
 "magically" become buffer-local.
index 4d3678a103416dc793c087b685f31adba033334b..23247d78019cc23ec6f57b23cddf6f40a217ce9d 100644 (file)
@@ -1372,13 +1372,18 @@ If successful, set `package-archive-contents'."
 The variable `package-load-list' controls which packages to load.
 If optional arg NO-ACTIVATE is non-nil, don't activate packages.
 If `user-init-file' does not mention `(package-initialize)', add
-it to the file."
+it to the file.
+If called as part of loading `user-init-file', set
+`package-enable-at-startup' to nil, to prevent accidentally
+loading packages twice."
   (interactive)
   (setq package-alist nil)
   (if (equal user-init-file load-file-name)
       ;; If `package-initialize' is being called as part of loading
       ;; the init file, it's obvious we don't need to ensure-init.
-      (setq package--init-file-ensured t)
+      (setq package--init-file-ensured t
+            ;; And likely we don't need to run it again after init.
+            package-enable-at-startup nil)
     (package--ensure-init-file))
   (package-load-all-descriptors)
   (package-read-all-archive-contents)