Subject: Re: bug#66022: 30.0.50; kmacro overwriting global keybindings

From: Alan Third <[email-masked]>
Date: Wed, 20 Sep 2023 19:50:41 +0100

On Wed, Sep 20, 2023 at 08:24:52PM +0200, Gerd Möllmann wrote:
> On 23-09-20 18:56 , Stefan Monnier wrote:
> > > > Any idea which place in the Makefile's or in loadup.el does that?
> > > 
> > > I think nextstep/Makefile.in contains
> > > 
> > > # FIXME: Don't install the dump file into the app bundle when
> > > # self-contained install is disabled.
> > > ${ns_applibexecdir}/Emacs.pdmp: ${ns_appdir} ${ns_check_file}
> > > ../src/emacs${EXEEXT}.pdmp
> > > 	${MKDIR_P} ${ns_applibexecdir}
> > > 	cp -f ../src/emacs${EXEEXT}.pdmp $@
> > > 
> > > and the "all" target has that the pdmp as a dependency.
> > 
> > Sounds like a bug, yes: either the same thing should be done for all the
> > files in ${ns_applibexecdir} or it should be done for none.
> > 
> > This said, I'm, 100% unfamiliar with the way the `Emacs.app` directory
> > is built, so maybe this is a feature rather than a bug.
> > 
> > > I have no idea though what the comment means, or if the cp if necessary
> > > for something.
> > 
> > The FIXME sounds to me like it's hinting at the same bug you're seeing
> > (tho maybe another manifestation of it), and since there's a FIXME
> > I presume that fixing it isn't as simple as removing this rule :-)
> 
> Hi Alan,
> 
> this bug finally ended with finding that a plain "gmake" in the toplevel
> Emacs tree can copy src/emacs.pdmp to nextstep/Emacs.app/... which lead to
> me being completely puzzled.
> 
> Do you perhaps remember what the FIXME in nextstep/Makefile.in is about (see
> above)?  I guess a self-contained build is one building Emacs.app? I don't
> know what kind of build it is when it is not self-contained.

Yeah. A non-self contained build is a standard UNIX style install.
i.e. the files go into /usr/local or whatever --prefix is set to.

The slight fly in the ointment here is that we support the ability to
do that normal UNIX-style install, but still have an Emacs.app that
will run the installed Emacs. I don't really understand how it works,
or really why anyone would want to do that, but it's described in the
nextstep readme, iirc, and people do sometimes use that functionality.

I put that FIXME in because I couldn't work out how NOT to install the
pdmp file into the .app dir when doing that UNIX style install. It
still gets installed somewhere under PREFIX, but is copied into the
.app as well, even though that copy is never used.

I'm not great at writing Makefiles.
-- 
Alan Third