[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#19151: 24.4; Batch mode doesn't call package-initialize, can't find
From: |
npostavs |
Subject: |
bug#19151: 24.4; Batch mode doesn't call package-initialize, can't find packages |
Date: |
Sat, 02 Jul 2016 16:50:42 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.0.93 (gnu/linux) |
Eli Zaretskii <eliz@gnu.org> writes:
>> +It calls the function @code{package-initialize} to activate any
>> +optional Emacs Lisp package that has been installed. @xref{Packaging
>> +Basics}. This is not done if @code{package-enable-at-startup} is
>> +@code{nil}, nor if the options @samp{-q}, @samp{-Q}, or @samp{--batch}
>> +were specified.
>
> I would rephrase the last sentence:
>
> However, when @code{package-enable-at-startup} is @code{nil}, Emacs
> doesn't initialize packages. When Emacs is started with one of the
> options @samp{-q}, @samp{-Q}, or @samp{--batch},
> @code{package-enable-at-startup} is @code{nil} by default; to
> initialize packages in that case, explicitly set that variable to a
> non-@code{nil} value (e.g., via the @samp{--eval} option).
Phrasing is alright, but it's factually inaccurate. In startup.el we
have
;; If any package directory exists, initialize the package system.
(and user-init-file
package-enable-at-startup
...[lots more file searching]
(package-initialize))
The -q option sets user-init-file to nil. I guess we needn't mention
user-init-file by name in the docs as it's an internal detail. Here's a
new patch:
>From b1d2cf2c2ca86151c25d1c59c7eb210179086be2 Mon Sep 17 00:00:00 2001
From: Noam Postavsky <npostavs@gmail.com>
Date: Fri, 1 Jul 2016 21:15:28 -0400
Subject: [PATCH v2] Explain when package-initialize isn't called
* doc/lispref/os.texi (Startup Summary): Explain that package-initialize
is not called when options -q, -Q, or --batch were passed (Bug #19151).
---
doc/lispref/os.texi | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi
index 5f189b9..ec14b01 100644
--- a/doc/lispref/os.texi
+++ b/doc/lispref/os.texi
@@ -155,9 +155,13 @@ Startup Summary
option @samp{--batch} was specified.
@item
-If @code{package-enable-at-startup} is non-@code{nil}, it calls the
-function @code{package-initialize} to activate any optional Emacs Lisp
-package that has been installed. @xref{Packaging Basics}.
+It calls the function @code{package-initialize} to activate any
+optional Emacs Lisp package that has been installed. @xref{Packaging
+Basics}. However, Emacs doesn't initialize packages when
+@code{package-enable-at-startup} is @code{nil} or when it's started
+with one of the options @samp{-q}, @samp{-Q}, or @samp{--batch}. To
+initialize packages in the latter case, @code{package-initialize}
+should be called explicitly (e.g., via the @samp{--funcall} option).
@vindex after-init-time
@item
--
2.8.0