all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Andy Moreton <andrewjmoreton@gmail.com>
To: emacs-devel@gnu.org
Subject: Re: Where should dynamic modules be installed?
Date: Thu, 24 Oct 2019 13:02:26 +0100	[thread overview]
Message-ID: <vz1blu6qrl9.fsf@gmail.com> (raw)
In-Reply-To: b3085e6a-53aa-1b62-38bf-e2546eec0ce3@cs.ucla.edu

On Wed 23 Oct 2019, Paul Eggert wrote:

> On 10/21/19 3:45 AM, Ulrich Mueller wrote:
>> We are going to include the first package with a dynamically loaded
>> module (emacs-libvterm) in Gentoo. The question arose where the .so file
>> should be installed? Since it is a system dependent binary, installing
>> it under /usr/share/emacs/ looks wrong. I cannot find anything about a
>> recommended install location in the documentation.
>
> There isn't one. We haven't thought through the issues here. Thanks for
> bringing up the topic.
>
>> Would /usr/lib{,64}/emacs/site-modules/ be a reasonable place for this?
>
> Where do you put executables like hexl, movemail, and profile? I suggest
> puting .so files near there. In Fedora 30, this directory is 
> /usr/libexec/emacs/26.2/x86_64-redhat-linux-gnu (which is the value of the
> exec-directory variable). Since modules can be version-specific, it makes
> sense to have the Emacs version number somewhere in the directory name. Do you
> do that with other Emacs directories?
>
> Also, why have "site-" in the name? Do you have "site-" in other Emacs-related
> directory names?
>
>> Also, wouldn't it be cleaner if Emacs had a separate variable (analog to
>> image-load-path, custom-theme-load-path, etc.) for loading of dynamic
>> modules, instead of reusing load-path?
>
> Emacs should do that, yes. How about if we use a variable named
> 'module-directory' for that? It would work like exec-directory, except 
> for modules.

`exec-directory' is documented as being for executables installed from
the emacs distribution, whereas modules may be installed from other
sources.

Why not use `module-load-path` to allow for system/site/user locations
for dynamic modules ?

> I expect that the main reason Emacs doesn't have a variable like
> module-directory now, is that packagers haven't yet encountered the 
> Emacs module system (it has been off by default, though that will change in
> Emacs 27) and so haven't run into problems like the one you mention.

Indeed.

    AndyM




  reply	other threads:[~2019-10-24 12:02 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-21 10:45 Where should dynamic modules be installed? Ulrich Mueller
2019-10-21 13:44 ` Eli Zaretskii
2019-10-21 14:36   ` Ulrich Mueller
2019-10-24  0:31 ` Paul Eggert
2019-10-24 12:02   ` Andy Moreton [this message]
2019-10-24 14:28     ` Stefan Monnier
2019-10-24 14:04   ` Eli Zaretskii
2019-10-24 15:39   ` Ulrich Mueller
     [not found] <mailman.96.1571932821.13349.emacs-devel@gnu.org>
2019-10-24 16:24 ` Ulrich Mueller
2019-10-24 18:36   ` Stefan Monnier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=vz1blu6qrl9.fsf@gmail.com \
    --to=andrewjmoreton@gmail.com \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.