From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Emacs Package Management Date: Tue, 29 Sep 2009 15:18:10 -0400 Message-ID: References: <485b0c380808011427n4d3144eey3f8daf3abac83bf4@mail.gmail.com> <87ej589vku.fsf@hagelb.org> <485b0c380808050609y56042595l42a5bb05b34458f0@mail.gmail.com> <485b0c380909161536t331a71fdg1c45150c418b72b2@mail.gmail.com> <87ab0eai3l.fsf@hagelb.org> <87eipqpwfi.fsf@stupidchicken.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1254251922 16576 80.91.229.12 (29 Sep 2009 19:18:42 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 29 Sep 2009 19:18:42 +0000 (UTC) Cc: tromey@redhat.com, Chong Yidong , phil@hagelb.org, spedrosa@gmail.com, emacs-devel@gnu.org To: rms@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Sep 29 21:18:34 2009 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1MsiDX-0004Xl-DO for ged-emacs-devel@m.gmane.org; Tue, 29 Sep 2009 21:18:31 +0200 Original-Received: from localhost ([127.0.0.1]:42419 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MsiDW-0005rO-Ho for ged-emacs-devel@m.gmane.org; Tue, 29 Sep 2009 15:18:30 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MsiDQ-0005ox-LF for emacs-devel@gnu.org; Tue, 29 Sep 2009 15:18:24 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MsiDL-0005l5-6s for emacs-devel@gnu.org; Tue, 29 Sep 2009 15:18:23 -0400 Original-Received: from [199.232.76.173] (port=60263 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MsiDK-0005kx-VH for emacs-devel@gnu.org; Tue, 29 Sep 2009 15:18:19 -0400 Original-Received: from chene.dit.umontreal.ca ([132.204.246.20]:51422) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MsiDJ-0004D6-2l; Tue, 29 Sep 2009 15:18:17 -0400 Original-Received: from faina.iro.umontreal.ca (faina.iro.umontreal.ca [132.204.26.177]) by chene.dit.umontreal.ca (8.14.1/8.14.1) with ESMTP id n8TJIAmM018147; Tue, 29 Sep 2009 15:18:10 -0400 Original-Received: by faina.iro.umontreal.ca (Postfix, from userid 20848) id 36E6F3A0D6; Tue, 29 Sep 2009 15:18:10 -0400 (EDT) In-Reply-To: (Richard Stallman's message of "Tue, 29 Sep 2009 07:31:59 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux) X-NAI-Spam-Score: 0 X-NAI-Spam-Rules: 1 Rules triggered RV3373=0 X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:115790 Archived-At: In order to move forward on this thing, here's what I'd like to have as a first step: the equivalent of `dpkg', i.e. an elisp package that can take a package (a tarball, most likely) and "install it", list the set of installed packages, uninstall a package. An important feature for me is that this should be able to "install without making available", so you can install various conflicting packages at the same time (e.g. different versions of Gnus). So basically, the installation process would distinguish the following steps: - install: may include byte-compiling and things like that - activate: eval the autoload declarations, adjust the load-path, ... - make available: setup the .emacs so that the package gets activated at startup. Activation should be done by loading a single file. I.e. "make available" is nothing more than add a (load "/foo/bar/baz") in the .emacs. This "dpkg"-equivalent may also want to do dependency checking, although this is not absolutely necessary for the first step. As you can see, this first step is independent from the place and the manner we upload&download the packages, so we can work on it, while we figure out the repository part of the problem. Stefan