[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