From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: =?UTF-8?Q?Cl=c3=a9ment_Pit-Claudel?= Newsgroups: gmane.emacs.devel Subject: Re: Installing binaries with package.el Date: Thu, 9 Feb 2017 15:11:58 -0500 Message-ID: References: <3fdcbe78-969e-f9e1-2a9d-a5f8494c35b3@mit.edu> <87o9ydlprf.fsf@Rainer.invalid> <26a71145-5c0b-faad-17f1-a34e741ed493@gmail.com> <87inok3472.fsf@Rainer.invalid> <76ef00b6-25ed-5868-9b28-8377b8c80a5e@gmail.com> <87zihvb0zr.fsf@Rainer.invalid> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: blaine.gmane.org 1486671164 23135 195.159.176.226 (9 Feb 2017 20:12:44 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 9 Feb 2017 20:12:44 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 To: Achim Gratz , emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Feb 09 21:12:39 2017 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cbv54-0005hf-3G for ged-emacs-devel@m.gmane.org; Thu, 09 Feb 2017 21:12:38 +0100 Original-Received: from localhost ([::1]:40050 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cbv59-0007Ls-RE for ged-emacs-devel@m.gmane.org; Thu, 09 Feb 2017 15:12:43 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:59082) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cbv4V-0007KG-AW for emacs-devel@gnu.org; Thu, 09 Feb 2017 15:12:04 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cbv4S-0003Xw-1o for emacs-devel@gnu.org; Thu, 09 Feb 2017 15:12:03 -0500 Original-Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:33125) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cbv4R-0003Xn-Tr for emacs-devel@gnu.org; Thu, 09 Feb 2017 15:11:59 -0500 Original-Received: by mail-qt0-x242.google.com with SMTP id n13so2036968qtc.0 for ; Thu, 09 Feb 2017 12:11:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding; bh=se1/GKcBNTGqgLcnBo8s25Wnhre2GsSJFYG356LffDM=; b=cHzyvFVW97B4aRydaGLEc17OwZXa1WhfLFFFo85wdeq5BdRsqT7vt6vkJH96OsZ10j vTuL0VVT+FiolGNm9zfsh53n97Q9nxfPIc7iBk9ftKgsOCYEwnXaBmZT+c2bnHPAnOqD WqGUvzEgODfW53mfvyavEUiKQmZ0KgGWOeNSjPCft7QHQ7d+KqcIDqlgYXtK+2lvdq36 eFgiaNfK1F6GrehfIZZ4iEI7Gk9X2f0rs4OqY965eXbR0eYE2HMI7/Iw5MVXvRz+1cz0 9IusLe7i+ks3pbFt8eVlFReDnTWwHAE//B+H8s+H7ZQcFQf/ttAKn9XNIp6/qBkoyFi4 mGLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=se1/GKcBNTGqgLcnBo8s25Wnhre2GsSJFYG356LffDM=; b=dcz+xSL+5D9j/4qLWQLPNZVvmp8BczeEIpnGVN8AeX5PA6pA7nlaOJMVko0zWqJ05X uRTQj6OZ9cDUiABnG9EYAUYaIdTbQgclBGoxwhJLlKhdzlD+AFBGXkOWv3A4spcTueY5 ykfZQBcpu7UE47iYoL0s/NsrJdytW1Xy0R+5h5U9tgzsyO4IYXeifAqDI1On6nb6FQGB MiWa5JHionbZoMBKwkrLecVidB9nuuuTWR+9mrIIkAxhKJi725B3Q1UwYcOz+2SGeD/7 WgmtexjXv/AC6D7ciLmwMtQXK+rlID2jJXW5E13ayBP1Vt+Sx4C1fGgYfYB3K86d4nZZ AMjQ== X-Gm-Message-State: AMke39lPFX6Y8DTzxH/rzXTZ4cGcFL5goixcDBBclLwzWAVuRNhOew3HplT1heECEtsqhg== X-Received: by 10.237.35.1 with SMTP id h1mr5053227qtc.276.1486671119317; Thu, 09 Feb 2017 12:11:59 -0800 (PST) Original-Received: from [18.111.113.197] (dhcp-18-111-113-197.dyn.mit.edu. [18.111.113.197]) by smtp.gmail.com with ESMTPSA id r10sm10092901qte.1.2017.02.09.12.11.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 09 Feb 2017 12:11:58 -0800 (PST) In-Reply-To: <87zihvb0zr.fsf@Rainer.invalid> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2607:f8b0:400d:c0d::242 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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:212180 Archived-At: On 2017-02-09 14:47, Achim Gratz wrote: > Clément Pit-Claudel writes: >> Sorry, maybe my original question wasn't clear. The question was: >> I wrote a command line utility in ELisp (it doesn't provide >> interactive commands; just a command line interface). What's the >> preferred way for users to install it? > > I understood that to be the case, but it's a very surprising use of > package.el and ELisp. I don't know how common it is, but the support for this has been there this version 22 (shebang lines are skipped by the ELisp interpreter, and emacs can be started with --script). There seems to be a fair number of uses on Github (https://github.com/search?q=emacs+--script&type=Code&utf8=✓) > As I said I don't really have a suggestion at > the moment, but this particular use case should not be handled as an > "Emacs package". You use Emacs as a VM for some scripting here. Not entirely. The above was a bit of an exaggeration: the package does provide interactive commands, in addition to the CLI. And it has dependencies on other Emacs packages, meaning that it isn't trivial to just distribute it as (say) a Debian package. >>> I simply don't think that wrapper scripts and/or compiling >>> binaries is appropriate for ELPA packages, it just opens one big >>> can of worms that I don't really want to deal with in any way. >> >> I don't understand this part too well. Are you saying that ELPA >> isn't the right place to distribute a command line application >> written entirely in ELisp? (Note that the task that I'm describing >> has nothing to do with compiling binaries — sorry if that wasn't >> clear). > > Well, I would want to distinguish between Emacs packages proper and > Emacs as a scripting VM. Do you know of other systems that distinguish in that way? The ones that I'm familiar with (cabal, pip, and opam) are all used to install both applications and libraries. Do you think there's something special about Emacs Lisp that makes it different? > The more I think about it, package.el should guarantee that it > doesn't write outside the package directory unless it has explicit > user consent. That's fine by me: I have no problem with writing to e.g. elpa/bin/. And I'd be even happier if this was taken care of by package.el. I don't have objections to prompts, either. Clément.