GNU bug report logs -
#72294
29.2; Emacs --init-directory=... puts user-init-file elsewhere
Previous Next
Reported by: Sean Devlin <spd <at> toadstyle.org>
Date: Thu, 25 Jul 2024 16:13:01 UTC
Severity: normal
Found in version 29.2
Done: Daan Ro <daanturo <at> gmail.com>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 72294 in the body.
You can then email your comments to 72294 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#72294
; Package
emacs
.
(Thu, 25 Jul 2024 16:13:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Sean Devlin <spd <at> toadstyle.org>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Thu, 25 Jul 2024 16:13:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Hi folks,
Recipe:
1. emacs --init-directory=/tmp/emacs
2. M-: user-init-file RET
The user-init-file is ~/.emacs, despite the flag to use /tmp/emacs as
the init directory.
Maybe this is intended behavior, but I found it confusing. The manual
says this about the flag:
"Specify the directory to use when looking for the Emacs init files."
I interpreted this to mean all init files, including the user-init-file.
A workaround is to create /tmp/emacs/init.el before starting Emacs:
1. mkdir -p /tmp/emacs
2. touch /tmp/emacs/init.el
3. emacs --init-directory=/tmp/emacs
Thanks!
In GNU Emacs 29.2 (build 1, aarch64-apple-darwin21.6.0, NS
appkit-2113.60 Version 12.6.6 (Build 21G646)) of 2024-01-18 built on
armbob.lan
Windowing system distributor 'Apple'
System Description: macOS
Configured using:
'configure --with-ns '--enable-locallisppath=/Library/Application
Support/Emacs/${version}/site-lisp:/Library/Application
Support/Emacs/site-lisp' --with-modules 'CFLAGS=-DFD_SETSIZE=10000
-DDARWIN_UNLIMITED_SELECT' --with-x-toolkit=no'
Configured features:
ACL GLIB GMP GNUTLS JPEG JSON LIBXML2 MODULES NOTIFY KQUEUE NS PDUMPER
PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER ZLIB
Important settings:
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
Major mode: Fundamental
Minor modes in effect:
tooltip-mode: t
global-eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
blink-cursor-mode: t
buffer-read-only: t
line-number-mode: t
indent-tabs-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
Load-path shadows:
None found.
Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068
epg-config gnus-util text-property-search time-date subr-x mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
cl-extra cl-print byte-opt gv bytecomp byte-compile thingatpt help-fns
radix-tree help-mode cl-loaddefs cl-lib rmc iso-transl tooltip cconv
eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util
term/common-win tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode lisp-mode prog-mode register
page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice seq simple cl-generic indonesian philippine
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads kqueue cocoa ns multi-tty make-network-process emacs)
Memory information:
((conses 16 53484 8633)
(symbols 48 5930 0)
(strings 32 18349 1801)
(string-bytes 1 515950)
(vectors 16 12602)
(vector-slots 8 182812 16189)
(floats 8 28 22)
(intervals 56 232 1)
(buffers 984 12))
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#72294
; Package
emacs
.
(Thu, 25 Jul 2024 18:57:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 72294 <at> debbugs.gnu.org (full text, mbox):
> From: Sean Devlin <spd <at> toadstyle.org>
> Date: Thu, 25 Jul 2024 12:12:07 -0400
>
> 1. emacs --init-directory=/tmp/emacs
> 2. M-: user-init-file RET
>
> The user-init-file is ~/.emacs, despite the flag to use /tmp/emacs as
> the init directory.
>
> Maybe this is intended behavior, but I found it confusing. The manual
> says this about the flag:
>
> "Specify the directory to use when looking for the Emacs init files."
>
> I interpreted this to mean all init files, including the user-init-file.
That option sets user-emacs-directory, it doesn't directly affect
user-init-file.
Emacs by default sets user-emacs-directory to the directory where it
actually finds the init file. This option overrides that.
> A workaround is to create /tmp/emacs/init.el before starting Emacs:
>
> 1. mkdir -p /tmp/emacs
> 2. touch /tmp/emacs/init.el
> 3. emacs --init-directory=/tmp/emacs
It isn't a workaround, it's how you should do it.
I don't think this is a bug. The search for init file and the setting
of user-emacs-directory that follows are complex issues, not easily
explained in a few words.
May I ask why you needed to use this option? It should not be
generally needed.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#72294
; Package
emacs
.
(Thu, 25 Jul 2024 20:02:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 72294 <at> debbugs.gnu.org (full text, mbox):
Hi,
> I don't think this is a bug.
Fair enough.
> May I ask why you needed to use this option? It should not be
> generally needed.
Lately, I run Emacs from the emacs-30 branch with some local tweaks. I
found a bug in Org, and I was trying to reproduce it in a stable version
of Emacs with default configuration. The bug is in Org 9.7+, which is
newer than what ships in Emacs 29.
Since I knew I would need to install a package, I checked the manual for
the command-line flags to specify the user-emacs-directory, and I found
the --init-directory option. I opened an instance of Emacs 29.2 with
--init-directory=/tmp/bug, and I installed Org via ELPA.
Then, for an unrelated task, I opened an instance of my main Emacs
installation, and I was surprised to see it load without any of my
configuration. I discovered the Emacs 29 instance had written a file to
~/.emacs, shadowing my own configuration in ~/.emacs.d/init.el. That it
wrote the user-init-file outside the user-emacs-directory I specified
was surprising to me.
bug closed, send any further explanations to
72294 <at> debbugs.gnu.org and Sean Devlin <spd <at> toadstyle.org>
Request was from
Daan Ro <daanturo <at> gmail.com>
to
control <at> debbugs.gnu.org
.
(Fri, 26 Jul 2024 04:24:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#72294
; Package
emacs
.
(Fri, 26 Jul 2024 06:17:02 GMT)
Full text and
rfc822 format available.
Message #16 received at 72294 <at> debbugs.gnu.org (full text, mbox):
>>>>> On Thu, 25 Jul 2024 15:59:45 -0400, Sean Devlin <spd <at> toadstyle.org> said:
Sean> Hi,
>> I don't think this is a bug.
Sean> Fair enough.
>> May I ask why you needed to use this option? It should not be
>> generally needed.
Sean> Lately, I run Emacs from the emacs-30 branch with some local tweaks. I
Sean> found a bug in Org, and I was trying to reproduce it in a stable version
Sean> of Emacs with default configuration. The bug is in Org 9.7+, which is
Sean> newer than what ships in Emacs 29.
Sean> Since I knew I would need to install a package, I checked the manual for
Sean> the command-line flags to specify the user-emacs-directory, and I found
Sean> the --init-directory option. I opened an instance of Emacs 29.2 with
Sean> --init-directory=/tmp/bug, and I installed Org via ELPA.
The emacs info file says
‘--init-directory’
Specify the directory to use when looking for the Emacs init files.
and '.emacs' is an Emacs init file, so I guess the confusion is
understandable. Maybe we should add "(except '.emacs')" to that
statement.
Sean> Then, for an unrelated task, I opened an instance of my main Emacs
Sean> installation, and I was surprised to see it load without any of my
Sean> configuration. I discovered the Emacs 29 instance had written a file to
Sean> ~/.emacs, shadowing my own configuration in ~/.emacs.d/init.el. That it
Sean> wrote the user-init-file outside the user-emacs-directory I specified
Sean> was surprising to me.
HOME=/tmp/emacs emacs
is how I do that kind of testing.
Robert
--
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#72294
; Package
emacs
.
(Fri, 26 Jul 2024 06:17:02 GMT)
Full text and
rfc822 format available.
Message #19 received at 72294-done <at> debbugs.gnu.org (full text, mbox):
> From: Sean Devlin <spd <at> toadstyle.org>
> Date: Thu, 25 Jul 2024 15:59:45 -0400
> Cc: 72294 <at> debbugs.gnu.org
>
> Hi,
>
> > I don't think this is a bug.
>
> Fair enough.
>
> > May I ask why you needed to use this option? It should not be
> > generally needed.
>
> Lately, I run Emacs from the emacs-30 branch with some local tweaks. I
> found a bug in Org, and I was trying to reproduce it in a stable version
> of Emacs with default configuration. The bug is in Org 9.7+, which is
> newer than what ships in Emacs 29.
>
> Since I knew I would need to install a package, I checked the manual for
> the command-line flags to specify the user-emacs-directory, and I found
> the --init-directory option. I opened an instance of Emacs 29.2 with
> --init-directory=/tmp/bug, and I installed Org via ELPA.
>
> Then, for an unrelated task, I opened an instance of my main Emacs
> installation, and I was surprised to see it load without any of my
> configuration. I discovered the Emacs 29 instance had written a file to
> ~/.emacs, shadowing my own configuration in ~/.emacs.d/init.el. That it
> wrote the user-init-file outside the user-emacs-directory I specified
> was surprising to me.
Thanks, I used this to improve the documentation of --init-directory
on the emacs-30 branch and make it more accurate, and I'm therefore
closing this bug.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#72294
; Package
emacs
.
(Fri, 26 Jul 2024 10:35:02 GMT)
Full text and
rfc822 format available.
Message #22 received at 72294 <at> debbugs.gnu.org (full text, mbox):
> From: Robert Pluim <rpluim <at> gmail.com>
> Cc: Eli Zaretskii <eliz <at> gnu.org>, 72294 <at> debbugs.gnu.org
> Date: Fri, 26 Jul 2024 08:15:01 +0200
>
> >>>>> On Thu, 25 Jul 2024 15:59:45 -0400, Sean Devlin <spd <at> toadstyle.org> said:
>
> The emacs info file says
>
> ‘--init-directory’
> Specify the directory to use when looking for the Emacs init files.
>
> and '.emacs' is an Emacs init file, so I guess the confusion is
> understandable. Maybe we should add "(except '.emacs')" to that
> statement.
That would be inaccurate, AFAIU. If the .emacs file is there, it will
be used from that directory.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#72294
; Package
emacs
.
(Fri, 26 Jul 2024 12:02:02 GMT)
Full text and
rfc822 format available.
Message #25 received at 72294 <at> debbugs.gnu.org (full text, mbox):
>>>>> On Fri, 26 Jul 2024 13:34:07 +0300, Eli Zaretskii <eliz <at> gnu.org> said:
>> From: Robert Pluim <rpluim <at> gmail.com>
>> Cc: Eli Zaretskii <eliz <at> gnu.org>, 72294 <at> debbugs.gnu.org
>> Date: Fri, 26 Jul 2024 08:15:01 +0200
>>
>> >>>>> On Thu, 25 Jul 2024 15:59:45 -0400, Sean Devlin <spd <at> toadstyle.org> said:
>>
>> The emacs info file says
>>
>> ‘--init-directory’
>> Specify the directory to use when looking for the Emacs init files.
>>
>> and '.emacs' is an Emacs init file, so I guess the confusion is
>> understandable. Maybe we should add "(except '.emacs')" to that
>> statement.
Eli> That would be inaccurate, AFAIU. If the .emacs file is there, it will
Eli> be used from that directory.
Thatʼs not what I observe:
~/.emacs:
(message "Home dir")
/tmp/emacs-30/.emacs:
(message "Temp dir")
src/emacs --init-directory=/tmp/emacs-30
=> *Messages* contains "Home dir"
So it looks like this option only affects `user-emacs-directory'.
I agree it would be less confusing if it used the ".emacs" in
"/tmp/emacs-30", but I think the ship has sailed on that one.
Robert
--
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#72294
; Package
emacs
.
(Fri, 26 Jul 2024 12:07:01 GMT)
Full text and
rfc822 format available.
Message #28 received at 72294 <at> debbugs.gnu.org (full text, mbox):
> From: Robert Pluim <rpluim <at> gmail.com>
> Cc: spd <at> toadstyle.org, 72294 <at> debbugs.gnu.org
> Date: Fri, 26 Jul 2024 14:00:22 +0200
>
> >>>>> On Fri, 26 Jul 2024 13:34:07 +0300, Eli Zaretskii <eliz <at> gnu.org> said:
>
> >> From: Robert Pluim <rpluim <at> gmail.com>
> >> Cc: Eli Zaretskii <eliz <at> gnu.org>, 72294 <at> debbugs.gnu.org
> >> Date: Fri, 26 Jul 2024 08:15:01 +0200
> >>
> >> >>>>> On Thu, 25 Jul 2024 15:59:45 -0400, Sean Devlin <spd <at> toadstyle.org> said:
> >>
> >> The emacs info file says
> >>
> >> ‘--init-directory’
> >> Specify the directory to use when looking for the Emacs init files.
> >>
> >> and '.emacs' is an Emacs init file, so I guess the confusion is
> >> understandable. Maybe we should add "(except '.emacs')" to that
> >> statement.
>
> Eli> That would be inaccurate, AFAIU. If the .emacs file is there, it will
> Eli> be used from that directory.
>
> Thatʼs not what I observe:
>
> ~/.emacs:
>
> (message "Home dir")
>
> /tmp/emacs-30/.emacs:
>
> (message "Temp dir")
>
> src/emacs --init-directory=/tmp/emacs-30
>
> => *Messages* contains "Home dir"
>
> So it looks like this option only affects `user-emacs-directory'.
Sean said that an existing init file was being used from that
directory. This contradicts your observations.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#72294
; Package
emacs
.
(Fri, 26 Jul 2024 12:16:02 GMT)
Full text and
rfc822 format available.
Message #31 received at 72294 <at> debbugs.gnu.org (full text, mbox):
>>>>> On Fri, 26 Jul 2024 15:03:41 +0300, Eli Zaretskii <eliz <at> gnu.org> said:
>> ~/.emacs:
>>
>> (message "Home dir")
>>
>> /tmp/emacs-30/.emacs:
>>
>> (message "Temp dir")
>>
>> src/emacs --init-directory=/tmp/emacs-30
>>
>> => *Messages* contains "Home dir"
>>
>> So it looks like this option only affects `user-emacs-directory'.
Eli> Sean said that an existing init file was being used from that
Eli> directory. This contradicts your observations.
An existing "init.el" file, if "~/.emacs" does not exist. Not a
".emacs" file in the directory specified by
'--init-directory'. Because --init-directory changes
`user-emacs-directory'.
Robert
--
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#72294
; Package
emacs
.
(Fri, 26 Jul 2024 13:50:01 GMT)
Full text and
rfc822 format available.
Message #34 received at 72294 <at> debbugs.gnu.org (full text, mbox):
> On Jul 26, 2024, at 8:14 AM, Robert Pluim <rpluim <at> gmail.com> wrote:
>
>>>>>> On Fri, 26 Jul 2024 15:03:41 +0300, Eli Zaretskii <eliz <at> gnu.org> said:
>
>>> ~/.emacs:
>>>
>>> (message "Home dir")
>>>
>>> /tmp/emacs-30/.emacs:
>>>
>>> (message "Temp dir")
>>>
>>> src/emacs --init-directory=/tmp/emacs-30
>>>
>>> => *Messages* contains "Home dir"
>>>
>>> So it looks like this option only affects `user-emacs-directory'.
>
> Eli> Sean said that an existing init file was being used from that
> Eli> directory. This contradicts your observations.
>
> An existing "init.el" file, if "~/.emacs" does not exist. Not a
> ".emacs" file in the directory specified by
> '--init-directory'. Because --init-directory changes
> `user-emacs-directory’.
Correct, I only tested with a file named init.el, not .emacs.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#72294
; Package
emacs
.
(Fri, 26 Jul 2024 13:51:01 GMT)
Full text and
rfc822 format available.
Message #37 received at 72294-done <at> debbugs.gnu.org (full text, mbox):
> On Jul 26, 2024, at 2:16 AM, Eli Zaretskii <eliz <at> gnu.org> wrote:
>
> ...
>
> Thanks, I used this to improve the documentation of --init-directory
> on the emacs-30 branch and make it more accurate, and I'm therefore
> closing this bug.
Thanks!
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#72294
; Package
emacs
.
(Fri, 26 Jul 2024 13:53:02 GMT)
Full text and
rfc822 format available.
Message #40 received at 72294 <at> debbugs.gnu.org (full text, mbox):
>>>>> On Fri, 26 Jul 2024 09:48:11 -0400, Sean Devlin <spd <at> toadstyle.org> said:
>> An existing "init.el" file, if "~/.emacs" does not exist. Not a
>> ".emacs" file in the directory specified by
>> '--init-directory'. Because --init-directory changes
>> `user-emacs-directory’.
Sean> Correct, I only tested with a file named init.el, not .emacs.
Perhaps we should have a '--be-more-modern' flag that disables
searching for ".emacs" completely 😺 (I kid, I kid).
Robert
--
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sat, 24 Aug 2024 11:24:13 GMT)
Full text and
rfc822 format available.
This bug report was last modified 176 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.