emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: master fails to build on FreeBSD when ACL support is on


From: Stefan Monnier
Subject: Re: master fails to build on FreeBSD when ACL support is on
Date: Fri, 19 Jan 2018 11:38:56 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

> -                        (make-temp-file (file-name-nondirectory 
> target-file)))
> +                        ;; If target-file is relative and includes
> +                        ;; leading directories, make-temp-file will
> +                        ;; assume those leading directories exist
> +                        ;; under temporary-file-directory, which might
> +                        ;; not be true.  So strip leading directories
> +                        ;; from relative file names before calling
> +                        ;; make-temp-file.
> +                        (if (file-name-absolute-p target-file)
> +                            (make-temp-file target-file)
> +                          (make-temp-file
> +                           (file-name-nondirectory target-file))))

Hmm.. the comment here doesn't explain the (file-name-absolute-p
target-file) test, and the commit message

    * lisp/emacs-lisp/bytecomp.el (byte-compile-file): Don't create
    the temporary file under temporary-file-directory if the file
    being compiled is specified by an absolute file name.  This avoids
    problems with ACL copying from temporary-file-directory on
    FreeBSD.  For the details, see
    http://lists.gnu.org/archive/html/emacs-devel/2018-01/msg00513.html.

doesn't really explain why an absolute file name should be
treated differently.

IIUC the core of the problem has to do with different ACLs in /tmp and
the final destination of the .elc file, but it seems like this problem
should apply regardless of whether that final destination is specified
as a relative or an absolute file name, right?

So maybe rather than (file-name-absolute-p target-file) we should check
something related to ACLs, or (eq system-type 'feebsd-foo)?

Or maybe we should just never use /tmp and just go with

    (make-temp-file (expand-file-name target-file))

?


        Stefan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]