[slime-devel] SLIME and ELPA

Tom Tromey elpa at tromey.com
Fri Sep 14 19:44:56 UTC 2007


Hi.  I'd like to upload SLIME to ELPA, the Emacs Lisp Package Archive.
If you don't know about ELPA you can read more here:

    http://tromey.com/elpa/

This patch adds a "-elpa" flag to mkdist.sh, to make an ELPA-ish
package.  It is a bit of a hack, but I hope not too bad.

On the SLIME side, the long-term maintenance burden of ELPA support is
pretty minimal:

* Some of it is "good Emacs mode" stuff, basically properly setting up
  autoloads

* If SLIME adds a non-standard dependency (meaning, on some piece of
  3rd party Emacs Lisp that properly lives outside of SLIME), note it
  in the define-package.  This will require coordination w/ ELPA
  before upload anyhow.

* Send a release .tar (with a new "dotted numeric" version number)
  made with "mkdist.sh -elpa" to the ELPA mailing address.

Let me know what you think.  If you'd prefer I not upload it, or
likewise if you think the burden is too high, that is fine -- just let
me know.

Tom

ChangeLog:
2007-09-13  Tom Tromey  <elpa at tromey.com>

	* slime-pkg.in: New file.
	* mkdist.sh: Handle "-elpa" argument.
	* slime-autoloads.el (slime-setup): Add autoload comment.

Index: mkdist.sh
===================================================================
RCS file: /project/slime/cvsroot/slime/mkdist.sh,v
retrieving revision 1.7
diff -u -r1.7 mkdist.sh
--- mkdist.sh	29 Aug 2005 20:02:58 -0000	1.7
+++ mkdist.sh	14 Sep 2007 18:59:04 -0000
@@ -11,7 +11,23 @@
 mkdir $dist
 cp NEWS README HACKING PROBLEMS ChangeLog *.el *.lisp $dist/
 
-mkdir $dist/doc
-cp doc/Makefile doc/slime.texi doc/texinfo-tabulate.awk $dist/doc
+if [ "$1" = "-elpa" ]; then
+   # Comes in all modern Emacs.
+   rm -f $dist/tree-widget.el
+   # ELPA uses PKG-autoloads.el, but we still want this.
+   mv $dist/slime-autoloads.el $dist/slime-startup.el
+   # Add version info.
+   sed -e "s/VERSION/$version/" < slime-pkg.in > $dist/slime-pkg.el
 
-tar czf $dist.tar.gz $dist
+   cd doc
+   make infodir=../$dist/ install-info
+   cp *.texi ../$dist/
+   cd ..
+
+   tar cf $dist.tar $dist
+else
+   mkdir $dist/doc
+   cp doc/Makefile doc/slime.texi doc/texinfo-tabulate.awk $dist/doc
+
+   tar czf $dist.tar.gz $dist
+fi
Index: slime-autoloads.el
===================================================================
RCS file: /project/slime/cvsroot/slime/slime-autoloads.el,v
retrieving revision 1.1
diff -u -r1.1 slime-autoloads.el
--- slime-autoloads.el	30 Jan 2007 22:22:25 -0000	1.1
+++ slime-autoloads.el	14 Sep 2007 18:59:04 -0000
@@ -28,6 +28,7 @@
 
 (defvar slime-lisp-modes '(lisp-mode))
 
+;;;###autoload
 (defun slime-setup (&rest options)
   "Setup Emacs so that lisp-mode buffers always use SLIME.
 OPTIONS is a keyword list (&key AUTODOC TYPEOUT-FRAME HIGHLIGHT-EDITS):
Index: slime-pkg.in
===================================================================
RCS file: slime-pkg.in
diff -N slime-pkg.in
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ slime-pkg.in	14 Sep 2007 18:59:04 -0000
@@ -0,0 +1,16 @@
+;;; slime-pkg.el --- ELPA definition for SLIME
+
+;; This file is protected by the GNU GPLv2 (or later), as distributed
+;; with GNU Emacs.
+
+;;; Commentary:
+
+;; Package definition for ELPA.  For more information see:
+;;   http://tromey.com/elpa/
+
+;;; Code:
+
+(define-package "slime" "VERSION"
+  "SLIME is the Superior Lisp Interaction Mode for Emacs.")
+
+;;; slime-pkg.el ends here





More information about the slime-devel mailing list