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:
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@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