Subject: Re: bug#49864: 28.0.50; Fails to start after "make install"

From: Wilhelm Kirschbaum <[email-masked]>
Date: Thu, 5 Aug 2021 20:27:06 +0200

The patch I attached fixes the install issue for me without any other
modification. This patch also seems to be consistent with other MKDIR_P
commands in the Makefile.

 ### Install native compiled Lisp files.
 install-eln: lisp
 ifeq ($(HAVE_NATIVE_COMP),yes)
- find native-lisp -type d -exec $(MKDIR_P) "$(ELN_DESTDIR){}" \; ; \
+ umask 022; find native-lisp -type d -exec $(MKDIR_P) "$(ELN_DESTDIR){}"
\; ; \
  find native-lisp -type f -exec ${INSTALL_DATA} "{}" "$(ELN_DESTDIR){}" \;

On Thu, Aug 5, 2021 at 6:29 PM Eli Zaretskii <[email-masked]> wrote:

> > From: Wilhelm Kirschbaum <[email-masked]>
> > Date: Thu, 5 Aug 2021 17:21:36 +0200
> > Cc: [email-masked]
> >
> > 162  if (faccessat (AT_FDCWD, file, amode, AT_EACCESS) == 0)
> > (gdb) next
> > dump_do_dump_relocation (dump_base=<optimized out>, reloc=...) at
> pdumper.c:5325
> > 5325 eln_fname = make_uninit_string (execdir_len + fn2_len);
> > (gdb) p (int)errno
> > $1 = 13
> >
> > I can indeed access
> >
> /usr/local/libexec/emacs/28.0.50/x86_64-pc-linux-gnu/../../../../bin/../lib/emacs/28.0.50/native-lisp/28.0.50-864bf4e5/preloaded/window-0d1b8b93-dcb2375f.eln
> > but only as root. Which seems wrong. I can start emacs as sudo ( have
> not even checked this before )
> >
> > Which is then probably a umask issue as this folder's permission seems
> wrong:
> >  /usr/local/lib $ sudo ls -lah emacs
> > total 12K
> > drwx------ 3 root root 4.0K Aug  3 23:00 .
> > drwxr-xr-x 4 root root 4.0K Aug  3 23:00 ..
> > drwx------ 3 root root 4.0K Aug  3 23:00 28.0.50
> >
> > sudo ls -lah emacs/28.0.50
> > total 12K
> > drwx------ 3 root root 4.0K Aug  3 23:00 .
> > drwx------ 3 root root 4.0K Aug  3 23:00 ..
> > drwx------ 3 root root 4.0K Aug  3 23:00 native-lisp
> >
> > Yes the file exists, but I cannot access it as a non-root ( should have
> checked before ). I can remove the
> > folder and re-install and the permission is the same as above.
>
> So this sounds like some problem with how "make install" sets
> permissions on directories on your system: it ends up disallowing your
> user access to those files.  Or maybe you should follow "make install"
> by a suitable chmod command, to make those files accessible?
>
> I don't know enough about sudo to help you more, but maybe someone
> else here does?  The main question to answer, from my POV, is whether
> this is something we could address in our "make install", or something
> only you can fix on your system.
>
> Thanks.
>
diff --git a/Makefile.in b/Makefile.in
index 97d954b..39808df 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -789,7 +789,7 @@ install-etc:
 ### Install native compiled Lisp files.
 install-eln: lisp
 ifeq ($(HAVE_NATIVE_COMP),yes)
-	find native-lisp -type d -exec $(MKDIR_P) "$(ELN_DESTDIR){}" \; ; \
+	umask 022; find native-lisp -type d -exec $(MKDIR_P) "$(ELN_DESTDIR){}" \; ; \
 	find native-lisp -type f -exec ${INSTALL_DATA} "{}" "$(ELN_DESTDIR){}" \;
 endif