From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Yoni Rabkin Newsgroups: gmane.emacs.devel Subject: Re: Adding Emms to ELPA (take 2), and a technical question Date: Tue, 28 Apr 2020 09:28:56 -0400 Message-ID: <87lfmfbuxz.fsf@rabkins.net> References: <87pnbwg0up.fsf@rabkins.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="29478"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.91 (gnu/linux) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Apr 28 15:29:49 2020 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 1jTQJ2-0007ZO-FX for ged-emacs-devel@m.gmane-mx.org; Tue, 28 Apr 2020 15:29:48 +0200 Original-Received: from localhost ([::1]:57776 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTQJ1-0001QM-Dc for ged-emacs-devel@m.gmane-mx.org; Tue, 28 Apr 2020 09:29:47 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:35648) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTQII-0008DL-Aw for emacs-devel@gnu.org; Tue, 28 Apr 2020 09:29:02 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jTQIG-0004V0-Cr for emacs-devel@gnu.org; Tue, 28 Apr 2020 09:29:02 -0400 Original-Received: from smtprelay0111.hostedemail.com ([216.40.44.111]:50482 helo=smtprelay.hostedemail.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jTQIF-0004Ur-U6 for emacs-devel@gnu.org; Tue, 28 Apr 2020 09:29:00 -0400 Original-Received: from filter.hostedemail.com (clb03-v110.bra.tucows.net [216.40.38.60]) by smtprelay01.hostedemail.com (Postfix) with ESMTP id 4D1D2100E7B46 for ; Tue, 28 Apr 2020 13:28:58 +0000 (UTC) X-Session-Marker: 796F6E69407261626B696E732E6E6574 X-HE-Tag: kite81_4e46c28d31337 X-Filterd-Recvd-Size: 3983 Original-Received: from birch.rabkins.net (c-73-238-99-162.hsd1.nh.comcast.net [73.238.99.162]) (Authenticated sender: yoni@rabkins.net) by omf12.hostedemail.com (Postfix) with ESMTPA for ; Tue, 28 Apr 2020 13:28:57 +0000 (UTC) X-Ethics: Use GNU In-Reply-To: (Stefan Monnier's message of "Fri, 24 Apr 2020 23:25:08 -0400") Received-SPF: none client-ip=216.40.44.111; envelope-from=yoni@rabkins.net; helo=smtprelay.hostedemail.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/28 09:28:58 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Received-From: 216.40.44.111 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:248017 Archived-At: Stefan Monnier writes: >> The main issue back then was that Emms was a copyright mess. Stefan >> Monnier helped me figuring out who to contact and I've fixed that since >> (took a while). To the best of my knowledge, everyone who has code in >> Emms has an assignment on file. Emms has an AUTHORS file which is kept >> up-to-date. Everyone there should also appear in the FSF records. > > Great news, thank you! > >> Stefan also said that ELPA packages need to have their .el files at the >> top-level. However, Emms has its files in a lisp/ directory. This is >> still the case, and I would like to keep it that way because Emms has a >> lot of files and a lisp/ directory keeps things tidy. Is this still a >> requirement for ELPA? > > Yes, and you even wrote it right: it's a property of ELPA (and not > specific to GNU ELPA), so it affects MELPA just as well. This comes > from the fact that only top-level files are scanned for `;;;###autoload` > cookies when the package is installed. > > You can work around this problem with extra work, tho: build your own > autoloads file for the files in `lisp/*.el` and distribute it as if it > were a "source" file. > > The Hyperbole package does that for its `kotl` subdirectory: > they "manually" builds&updates a `kotl/kotl-autoloads.el` file (the rule > to update it is in a Makefile), and then in `hyperbole.el` they have: > > ;;;###autoload (load "kotl/kotl-autoloads" nil 'nowarn) I'll look at hyperbole as a reference. >> Emms also comes with a small piece of code that needs to be compiled in >> order to use taglib (https://taglib.org/). The code is in a src/ >> directory in the Emms distribution. I understand that there is no way to >> get ELPA to compile something as a part of the installation. > > Yes, there is. You can put something like: > > (eval-when-compile (call-process "make")) > > in your main file, for example. We would need to make sure that there are compilation tools ready on the machine first. >> We can forgo any compilation at the ELPA installation stage as long as >> people get to read the excellent Emms manual which explains how (and >> why) to compile that bit of code. Would any of this be a problem for >> adding Emms to ELPA? > > These will require extra work on your part, but other than that, no, > they don't impact your ability to add the package to GNU ELPA. > >> We (the Emms developers) are desperately looking for a better way to >> give Emms access to taglib other than compiling glue code like we do >> now. We really don't want to ship C, or C++, or Perl, or anything except >> elisp with Emms. One option we are currently exploring is to ask the >> user to install an existing package such as pytaglib (a GPLv3 python >> wrapper around taglib). Is there any more elegant way to get access to >> taglib through Emacs that anyone can suggest? > > I'm afraid I don't have a better solution to offer. We'll keep on looking. Thank you. I'll post again if we end up with emacs-devel-ish questions, or when we are all done. -- "Cut your own wood and it will warm you twice"