emacs-devel
[Top][All Lists]
Advanced

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

Re: Path for system-wide .eln files


From: Andrea Corallo
Subject: Re: Path for system-wide .eln files
Date: Sun, 30 Aug 2020 20:50:39 +0000
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Ulrich Mueller <ulm@gentoo.org> writes:

> Heading over from https://github.com/gentoo/gentoo/pull/16962 to here,
> as suggested by Andrea:
>
> System-wide .eln files are currently installed in:
> /usr/libexec/emacs/28.0.50/x86_64-pc-linux-gnu/eln-cache/
>
> (I am using /usr here and in the following for better readability,
> replace by ${exec_prefix} as appropriate.)
>
> I see two issues with this:
>
> - According to [1] the directory contains ".eln files compiled during
>   the build process." Therefore it is not a cache but a normal install
>   directory, and "eln-cache" is a misleading name.
>   (Or, from a wider perspective, a system-wide cache can never be in
>   /usr but should be in /var/cache. And it wouldn't be populated at
>   install time but at run time.)
>
> - The FHS [2] says that /usr/libexec is intended for "binaries run
>   by other programs". Do .eln files qualify as executable binaries?
>   IIUC they are loaded by dlopen, so they're pretty much libraries or
>   plugins which should go under /usr/lib{,64} instead.
>
> [1] https://akrl.sdf.org/gccemacs.html#org01229a9
> [2] https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s07.html

Hi Ulrich,

thanks for the interesting input.

As for point 1 if this folder does not classify as cache because read
only, should be easy to go for something more appropriate.  Something as
simple as "sys-eln" would work? (I'm not good with names sorry)

For point 2: eln are opened with dlopen so they are technically shared
libraries.  They need to be loaded with some special treatment and
cannot be used as simple shareds by C programs tho.

To me this fits decently in the definition for /usr/libexec from your
link:

"includes internal binaries that are not intended to be executed
directly by users or shell scripts. Applications may use a single
subdirectory under /usr/libexec."

But I understand they could fit in /usr/lib as well.  Honestly I'm fine
with one or the other :)

  Andrea



reply via email to

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