From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Michael Heerdegen via "Emacs development discussions." Newsgroups: gmane.emacs.devel Subject: Re: Question regarding load-path handling for ELPA packages Date: Sun, 19 May 2024 22:11:27 +0200 Message-ID: <87jzjpsgsw.fsf@web.de> References: <878r0ifjmt.fsf@debian-hx90.lan> <87eda0765g.fsf@debian-hx90.lan> <87o794z6l8.fsf@web.de> <87a5ko6s64.fsf@debian-hx90.lan> <87bk53cfo2.fsf@web.de> <87h6eu5kfa.fsf@debian-hx90.lan> Reply-To: Michael Heerdegen Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="21477"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: emacs-devel@gnu.org Cancel-Lock: sha1:H/D6GXvz4vsPS5QE+panSt+sXQs= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun May 19 22:11:40 2024 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1s8mse-0005RM-4C for ged-emacs-devel@m.gmane-mx.org; Sun, 19 May 2024 22:11:40 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s8mrx-0002Qo-4q; Sun, 19 May 2024 16:10:57 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s8mrv-0002Pi-J2 for emacs-devel@gnu.org; Sun, 19 May 2024 16:10:55 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s8mrq-0007uA-Ti for emacs-devel@gnu.org; Sun, 19 May 2024 16:10:55 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1s8mrp-0004Qo-En for emacs-devel@gnu.org; Sun, 19 May 2024 22:10:49 +0200 X-Injected-Via-Gmane: http://gmane.org/ Received-SPF: pass client-ip=116.202.254.214; envelope-from=ged-emacs-devel@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.001, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:319381 Archived-At: Xiyue Deng writes: > Actually I'd like to make dh-elpa handle `load-path' of its package > installation directory (by default it's > `/usr/share/emacs/site-lisp/elpa/foo') the same as how package.el > handles any ELPA package, a.k.a. only add the installation path to > `load-path' but not its subdirectories recursively. Hopefully with your > pointer I can figure this out, which make take a while. Does dh-elpa generate autoloads? Can that process maybe even just call `package-generate-autoloads'? Anyway, all the magic is the addition of this (constant!) expression: #+begin_src emacs-lisp (add-to-list 'load-path (or (and load-file-name (directory-file-name (file-name-directory load-file-name))) (car load-path))) #+end_src to the generated loaddefs files. "Constant" means: file names are not substituted in that expression - i.e. really that expression literally. This works because when the according autoloads file is loaded the variable `load-file-name' then contains the according current file name and ... etc, you get it? Anyway, ask as many question as you need to understand the process. If you do want to ask a developer more involved you can for example CC Stefan Monnier though, I think so far I answered your questions correctly. Michael.