Subject: bug#64226: 30.0.50; emacs-lisp-native-compile-and-load permission error

From: No Wayman <[email-masked]>
Date: Wed, 21 Jun 2023 12:58:40 -0400

To reproduce:

1. Find an elisp file located in $DIR which user has permission to 
write to.
(in the following backtrace, the file being compiled was located 
at $HOME/.emacs.d/elpaca/builds/elpaca/elpaca.el)
2. M-x emacs-lisp-native-compile-and-load 
3. Observer the following error: 

Error: permission-denied (\"Creating file with prefix\" 
\"Permission denied\" 
\"/usr/lib/emacs/30.0.50/native-lisp/30.0.50-58a66af6/elpaca-0646d6fc-1256ece5\")
  mapbacktrace(#f(compiled-function (evald func args flags) 
  #<bytecode 0x835cf36bbae8692>))
  debug-early-backtrace()
  debug-early(error (permission-denied \"Creating file with 
  prefix\" \"Permission denied\" 
  \"/usr/lib/emacs/30.0.50/native-lisp/30.0.50-58a66af6/elpaca-0646d6fc-1256ece5\"))
  make-temp-file(\"/usr/lib/emacs/30.0.50/native-lisp/30.0.50-58a66af6/elpaca-0646d6fc-1256ece5\" 
  nil \".eln.tmp\" nil)
  comp--compile-ctxt-to-file(\"/usr/lib/emacs/30.0.50/native-lisp/30.0.50-58a66af6/elpaca-0646d6fc-1256ece5.eln\")
  comp-compile-ctxt-to-file(\"/usr/lib/emacs/30.0.50/native-lisp/30.0.50-58a66af6/elpaca-0646d6fc-1256ece5.eln\")
  comp-final1()
  load-with-code-conversion(\"/tmp/emacs-int-comp-elpaca-0646d6fc-1256ece5-73Dpd0.el\" 
  \"/tmp/emacs-int-comp-elpaca-0646d6fc-1256ece5-73Dpd0.el\" nil 
  t)
  command-line-1((\"-l\" 
  \"/tmp/emacs-int-comp-elpaca-0646d6fc-1256ece5-73Dpd0.el\"))
  command-line()
  normal-top-level()

I would expect compiling this to not signal an error for a file I 
have permission to write.

In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.38, cairo version 1.17.8) of 2023-06-19 built on laptop
Repository revision: edb0862f5e69240de90c30b8914af51778f26d31
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 
11.0.12101008
System Description: Arch Linux

I rebuilt from master and am still able to reproduce with
GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 
3.24.38, cairo version 1.17.8) of 2023-06-21