Subject: Re: bug#52948: 28.0.90; NS variant and X11 client are not separated on macOS Monterey, Version 12.1

From: Alan Third <[email-masked]>
Date: Sun, 2 Jan 2022 14:17:45 +0000

On Sun, Jan 02, 2022 at 03:03:54PM +0100, Peter Dyballa wrote:
> 
> 
> > Am 2.1.2022 um 14:42 schrieb Alan Third <[email-masked]>:
> > 
> > On Sun, Jan 02, 2022 at 12:20:28PM +0100, Peter Dyballa wrote:
> >> 	 --disable-ns-self-contained
> > 
> >> It built and was just installed. When I now invoke '/Applications/AquaEmacs-28.0.90.app/Contents/MacOS/Emacs -Q' it complains:
> >> 
> >> 	desired fingerprint: 4d354353b8f40c4a104e7d527485c1326771b2eb129780879008256a10c405cf
> >> 	found fingerprint: 5e8639f383b8b6dbf3a84b080fad2ff84d81c23682262d61fc16d63a7177256c
> >> 	emacs: could not load dump file "/usr/local/libexec/emacs/28.0.90/x86_64-apple-darwin21.2.0/emacs.pdmp": not built for this Emacs executable
> > 
> > You disabled the self-contained install for NS, so it's not installed
> > in the app bundle. I think the basic bundle is still built to allow
> > you to use it to run the installed Emacs from the GUI, but all the
> > files will be installed under /usr/local or wherever.
> > 
> It's that what I want: just one single pile of 100 MB of files.
> 
> Actually my first description is wrong.
> 
> In the meantime I tried to reproduce the effect – and failed. The bug is that I have to invoke 'make install' to produce a working Emacs.app in the nextstep sub-directory. This in turn installs /usr/local/libexec/emacs/28.0.90/x86_64-apple-darwin21.2.0/emacs.pdmp:
> 
>     During "make":
> ------------------
> 	rm -f bootstrap-emacs.pdmp
> 	Dumping under the name bootstrap-emacs.pdmp
> 	Dumping under the name emacs.pdmp
> 	Adding name emacs-28.0.90.1.pdmp
> 	cp -f emacs.pdmp bootstrap-emacs.pdmp 
> 	cp -f ../src/emacs.pdmp /Users/pete/Quellen/Emacs_CVS/emacs-28.0.90/nextstep/Emacs.app/Contents/MacOS/libexec/Emacs.pdmp
> 
>     During "make install":
> --------------------------
> 	/usr/bin/install -c -m 644 src/emacs.pdmp "/usr/local/libexec/emacs/28.0.90/x86_64-apple-darwin21.2.0"/emacs.pdmp
> 
> Is the latter actually necessary?

Yes. You have a UNIX style installed emacs that happens to use the NS
term. The app bundle is only provided as a helper for running it from
the GUI.

> Renaming
> /usr/local/libexec/emacs/28.0.90/x86_64-apple-darwin21.2.0/emacs.pdmp
> lead to Emacs loading a lot of ELisp files. The other copied dump
> file, Emacs.app/Contents/MacOS/libexec/Emacs.pdmp, is not used
> although it exists in /Applications, where I "installed" Emacs.app.

How do you propose we find the .pdmp file in the app bundle, which can
be put *anywhere*, when you run 'emacs' from the command line?

If you want to use the app bundle and expect Emacs to load files from
within the bundle, don't use a UNIX style install.

If you must have two different UNIX style installs of Emacs then
you'll have to use different prefixes or something. Someone who knows
more about the way emacs installs may have a better idea, but this
isn't a bug.
-- 
Alan Third