From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Andy Moreton Newsgroups: gmane.emacs.devel Subject: Re: Where should dynamic modules be installed? Date: Thu, 24 Oct 2019 13:02:26 +0100 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="191473"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (windows-nt) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Oct 24 15:39:43 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iNdL4-000ngC-Rh for ged-emacs-devel@m.gmane.org; Thu, 24 Oct 2019 15:39:42 +0200 Original-Received: from localhost ([::1]:42798 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iNdL3-0001RJ-1k for ged-emacs-devel@m.gmane.org; Thu, 24 Oct 2019 09:39:41 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:43305) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iNbp9-0007tl-Oj for emacs-devel@gnu.org; Thu, 24 Oct 2019 08:02:40 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iNbp8-0007lY-IN for emacs-devel@gnu.org; Thu, 24 Oct 2019 08:02:39 -0400 Original-Received: from 195-159-176-226.customer.powertech.no ([195.159.176.226]:49632 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iNbp8-0007k9-AJ for emacs-devel@gnu.org; Thu, 24 Oct 2019 08:02:38 -0400 Original-Received: from list by blaine.gmane.org with local (Exim 4.89) (envelope-from ) id 1iNbp2-000ttg-Im for emacs-devel@gnu.org; Thu, 24 Oct 2019 14:02:32 +0200 X-Injected-Via-Gmane: http://gmane.org/ Cancel-Lock: sha1:ZvyRsEXWETpr4/4eJktTua1lI78= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 195.159.176.226 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:241384 Archived-At: 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