From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Xiyue Deng Newsgroups: gmane.emacs.devel Subject: Re: Question regarding load-path handling for ELPA packages Date: Sun, 19 May 2024 23:06:34 -0700 Message-ID: <87ikz93tlh.fsf@debian-hx90.lan> 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> <87jzjpsgsw.fsf@web.de> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5580"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: Michael Heerdegen To: Michael Heerdegen via "Emacs development discussions." Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon May 20 08:08:08 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 1s8wBr-0001DF-Dc for ged-emacs-devel@m.gmane-mx.org; Mon, 20 May 2024 08:08:07 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s8wB3-0007SE-0U; Mon, 20 May 2024 02:07:20 -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 1s8wAR-0007Dv-Al for emacs-devel@gnu.org; Mon, 20 May 2024 02:06:46 -0400 Original-Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1s8wAP-0000tz-Ln for emacs-devel@gnu.org; Mon, 20 May 2024 02:06:39 -0400 Original-Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-1ee0132a6f3so65119045ad.0 for ; Sun, 19 May 2024 23:06:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716185196; x=1716789996; darn=gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=UVtFAhZDFJ2xOchkow2jfhf6KkBwx4jPbOQZCi06Okg=; b=ht9BRGM0VgpsrvTiSHaR0LCti8XtlDxRAyFMu81W3CIRnHzx7MxqjlqimG5hpf7ccz ddK2QEP7eWSy9CkVKcqMM1P0tKzt2CrLLlPnKuvwhM5mE5TycNZ0loHJ/kv0rUVFAstS vZflb4EUMOR9GejezIVYQ50/wlectJDeMbGIYB92APW81mCOy27eG6PT48C32/P2pL1R s5TO5pIw+jXB1zNBu/2da8eb+j+30Sn8VlMDKNu3I0b2xOE0kDGfCUNoiR5lZatoBKvq E1UlHkPKIo9D1EXE1Rof4Ln6rsAS4ATbAqDQe4B4N4u0mR/FA6pYvNus6sHp7bVTtSXK 0p5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716185196; x=1716789996; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=UVtFAhZDFJ2xOchkow2jfhf6KkBwx4jPbOQZCi06Okg=; b=jlgk2HpMDsBF6pMpWAU2rUlVRHuJlHDWDhRRbmi9YIO9X6xdbQAte153+BOJIqcX3c 1sNlRZXGrHW1S0li7KobV3p5QnezTUDdsDMAT1Ysd/ZqS32PB85STRM+MsqRM6yWYDca eMbWpeRok596znbb7A9LPKIYZC7kfM8TPZboSqUekwrRztx7ZSmJB9532Tn3y+gJJu9B YBNcT+ydR+IpTT5tFjGo6JrpUDHNKqwfLppgZtBgAhFdRhOUONSqokhJC7pyMcLcHF0A 7/I7lvwu5U3Sa84G0/VYxh/bgQT21Xe/iw9fhif535BLH7Qt+renSm5UzYQOuA23uAb1 E9vQ== X-Gm-Message-State: AOJu0YzfBLQrRF44EALg9xh0qi3iDd4Ff17VaZciwGXBQQwUzrXzvtUL qPQZOnMfadjutZXFnK/EgEQ0RiKZxsxdVFT0m9VOzB2ukg1qf5wUE+dDxqv6 X-Google-Smtp-Source: AGHT+IGkvwn1cO24u6LF6OAqczyb3yQ67HSD1hTcaSlJPLsXhed+htbqHZyODO1/W/HxCoC/su0miw== X-Received: by 2002:a17:903:245:b0:1e4:4000:a576 with SMTP id d9443c01a7336-1ef43f4cf7cmr304509065ad.43.1716185196100; Sun, 19 May 2024 23:06:36 -0700 (PDT) Original-Received: from debian-hx90 ([2603:8000:a400:cdc:1b12:68c2:bf36:673a]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1ef0c136a12sm195599195ad.251.2024.05.19.23.06.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 May 2024 23:06:35 -0700 (PDT) In-Reply-To: <87jzjpsgsw.fsf@web.de> (Michael Heerdegen via's message of "Sun, 19 May 2024 22:11:27 +0200") Received-SPF: pass client-ip=2607:f8b0:4864:20::62b; envelope-from=manphiz@gmail.com; helo=mail-pl1-x62b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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:319389 Archived-At: Hi Michael, Michael Heerdegen via "Emacs development discussions." writes: > 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. > > Thanks for your expanded explanations and code pointers! It helped me a lot in understanding how package.el handles `load-path'. After some more investigation, it turns out the behavior I observe in dh-elpa installation path is actually a result of the existence of subdirs.el in its parent directory. I have added an extended explanations in the Debian tracking bug[1]. I think one last question I'd like to ask is the direction of subdirectory handling in ELPA packages. Though currently the case of auctex may cause breakage, this is in the minority and hence fixing it can be localized to just one package, while there may be benefits to do so for other cases. [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1069210#15 -- Xiyue Deng