From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jambunathan K Subject: ELPA Howto Date: Thu, 30 Sep 2010 13:00:52 +0530 Message-ID: <81pqvvofgz.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from [140.186.70.92] (port=41240 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1P1Dbo-0006Ma-NB for emacs-orgmode@gnu.org; Thu, 30 Sep 2010 03:31:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1P1Dbn-0000H1-9v for emacs-orgmode@gnu.org; Thu, 30 Sep 2010 03:31:16 -0400 Received: from mail-pz0-f41.google.com ([209.85.210.41]:60317) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1P1Dbn-0000Go-5N for emacs-orgmode@gnu.org; Thu, 30 Sep 2010 03:31:15 -0400 Received: by pzk26 with SMTP id 26so954806pzk.0 for ; Thu, 30 Sep 2010 00:31:13 -0700 (PDT) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org I managed to create an elpa compatible tar for orgmode. Recording here what I did in the hope that it will be useful. Creating ELPA-compatible tar: 1. Add the enclosed changes to Makefile. 2. Create an ELPA-compatible tarfile with $ make TAG=20100930 elpa 3. Copy the generated org-20100930.tar to the package server ELPA Server-side setup: 1. Server is running on loopback IP. ,----[ C-h v package-archives RET ] | package-archives is a variable defined in `package.el'. | Its value is | (("self" . "http://127.0.0.1/packages/")) | `---- 2. Directory structure ,---- | > dir packages | 97 archive-contents | 3,778,560 org-20100930.tar | 2 File(s) 3,778,657 bytes | | > cat packages/archive-contents | | (1 | (org . | [(20100930) | nil "Outline-based notes management and organizer" tar]) | ) | `---- 3. .emacs ,---- | (custom-set-variables | '(package-archives (quote (("self" . "http://127.0.0.1/packages/"))))) `---- ,---- [ .emacs ] | (when (load (expand-file-name "~/elisp/package.el")) | (package-initialize)) `---- The tar file is now ready for installation with M-x list-packages etc etc. An Observation: package.el generates an 'org-autoloads.el' as part of compilation and loads the same as part of activation. This means that autoloads such as 'org-agenda' gets served from the newly installed package while non-autoloads like 'org-overview' still point to the old installation. This means that a restart of Emacs is necessary for the new changes to take effect. I am not sure whether it is intended. But this behaviour could surprise the user. Jambunathan K. Attachments: X diff --git a/Makefile b/Makefile X old mode 100644 X new mode 100755 X index 1c1f317..a84b62f X --- a/Makefile X +++ b/Makefile X @@ -53,6 +53,9 @@ CP = cp -p X # Name of the program to install info files X INSTALL_INFO=install-info X X + X +DOCSTRING = "Outline-based notes management and organizer" X + X ##---------------------------------------------------------------------- X ## BELOW THIS LINE ON YOUR OWN RISK! X ##---------------------------------------------------------------------- X @@ -325,6 +328,14 @@ distfile: X zip -r org-$(TAG).zip org-$(TAG) X gtar zcvf org-$(TAG).tar.gz org-$(TAG) X X +elpa: install-info X + $(MKDIR) org-$(TAG) X + cp -r $(LISPFILES0) org-$(TAG)/ X + cp $(infodir)/dir org-$(TAG) X + cp $(INFOFILES) org-$(TAG) X + echo "(define-package \"org\" \"$(TAG)\" \"$(DOCSTRING)\")" > org-$(TAG)/org-pkg.el X + tar cf org-$(TAG).tar org-$(TAG) --remove-files X + X makerelease: X @if [ "X$(TAG)" = "X" ]; then echo "*** No tag ***"; exit 1; fi X ${MAKE} distfile X Jambunathan K.