[emacs-slime] Fix bug #675850. new file: changelog.patch modified: emacs-slime.spec new file: fix_paths.p

narasim narasim at fedoraproject.org
Mon Jul 23 16:22:17 UTC 2012


commit 6f829f8f2f4c8b2480bbd0a5f878461fe2b683c5
Author: Lakshmi Narasimhan T V <lakshminaras2002 at gmail.com>
Date:   Mon Jul 23 21:50:38 2012 +0530

    Fix bug #675850.
    	new file:   changelog.patch
    	modified:   emacs-slime.spec
    	new file:   fix_paths.patch
    	new file:   known_implementations.patch
    	modified:   slime-current.tgz

 changelog.patch             |   14 ++++++++
 emacs-slime.spec            |   76 ++++++++++++++++++++++++++++++------------
 fix_paths.patch             |   53 ++++++++++++++++++++++++++++++
 known_implementations.patch |   29 ++++++++++++++++
 slime-current.tgz           |  Bin 906729 -> 922941 bytes
 5 files changed, 150 insertions(+), 22 deletions(-)
---
diff --git a/changelog.patch b/changelog.patch
new file mode 100644
index 0000000..4ad4311
--- /dev/null
+++ b/changelog.patch
@@ -0,0 +1,14 @@
+Index: slime/slime.el
+===================================================================
+--- slime.orig/slime.el	2012-04-21 21:41:50.000000001 +0200
++++ slime/slime.el	2012-04-21 21:46:55.000000001 +0200
+@@ -131,8 +131,7 @@
+       date)))
+ 
+ (defvar slime-protocol-version nil)
+-(setq slime-protocol-version
+-      (eval-when-compile (slime-changelog-date)))
++(setq slime-protocol-version (slime-changelog-date))
+ 
+ 
+ ;;;; Customize groups
diff --git a/emacs-slime.spec b/emacs-slime.spec
index c5ed83d..f4fecca 100644
--- a/emacs-slime.spec
+++ b/emacs-slime.spec
@@ -1,10 +1,10 @@
 %global pkg slime
 %global pkgname Slime
-%global alphatag 20101113cvs
+%global alphatag 20120525cvs
 
 Name:            emacs-%{pkg}
 Version:         3.0
-Release:         0.4.%{alphatag}%{?dist}
+Release:         0.6.%{alphatag}%{?dist}
 Summary:         The superior lisp interaction mode for emacs        
 
 Group:           Applications/Editors
@@ -23,12 +23,14 @@ Requires:        emacs(bin) >= %{_emacs_version} common-lisp-controller
 Requires(post):  info common-lisp-controller
 Requires(preun): info common-lisp-controller
 
-BuildArch:       noarch
+BuildArch:      noarch
+Patch1:         changelog.patch
+Patch2:         fix_paths.patch
+Patch3:         known_implementations.patch
 
 %description
 SLIME is a Emacs mode for common Lisp development.
 
-
 %package el
 Summary:        Elisp source files for %{name}
 Group:          Applications/Editors
@@ -39,7 +41,11 @@ This package contains the Elisp source files for %{name}. You do not need
 to install this package to use %{name}.
 
 %prep
-%setup -q -n %{pkg}-2010-11-13
+%setup -q -n %{pkg}-2012-05-25
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+
 iconv --from=ISO-8859-1 --to=UTF-8 ChangeLog > ChangeLog.conv && mv ChangeLog.conv ChangeLog
 
 %build
@@ -47,23 +53,31 @@ iconv --from=ISO-8859-1 --to=UTF-8 ChangeLog > ChangeLog.conv && mv ChangeLog.co
 cd doc/
 make slime.info
 
-
 %install
 rm -rf %{buildroot}
-install -pm 755 -d %{buildroot}%{_emacs_sitelispdir}/%{pkg}/
-install -pm 644 *.el* %{buildroot}%{_emacs_sitelispdir}/%{pkg}/
+
 install -pm 755 -d %{buildroot}%{_emacs_sitestartdir}
+install -pm 644 *.elc  %{buildroot}%{_emacs_sitestartdir}
+
 install -pm 755 -d %{buildroot}%{_infodir}
 install -pm 644 doc/%{pkg}.info %{buildroot}%{_infodir}/
-install -pm 755 -d %{buildroot}%{_datadir}/common-lisp/source/swank
-install -pm 755 -d %{buildroot}%{_datadir}/common-lisp/systems
-install -pm 644 *.lisp %{buildroot}%{_datadir}/common-lisp/source/swank
-install -pm 644 *.asd %{buildroot}%{_datadir}/common-lisp/source/swank/
-cd %{buildroot}%{_datadir}/common-lisp/source/swank/
-for asd in *.asd; do
-  ln -s %{_datadir}/common-lisp/source/swank/$asd ../../systems;
-done
 
+install -pm 755 -d %{buildroot}%{_emacs_sitelispdir}/%{pkg}
+install -pm 755 -d %{buildroot}%{_emacs_sitelispdir}/%{pkg}/contrib
+install -pm 644 *.el* %{buildroot}%{_emacs_sitelispdir}/%{pkg}/
+
+
+install -pm 755 -d %{buildroot}%{_datadir}/common-lisp/source/slime
+install -pm 755 -d %{buildroot}%{_datadir}/common-lisp/source/slime/contrib
+install -pm 644 *.lisp %{buildroot}%{_datadir}/common-lisp/source/slime
+install -pm 644 contrib/*.lisp %{buildroot}%{_datadir}/common-lisp/source/slime/contrib
+install -pm 644 contrib/*.el %{buildroot}%{_datadir}/common-lisp/source/slime/contrib
+install -pm 644 contrib/README %{buildroot}%{_datadir}/common-lisp/source/slime/contrib
+install -pm 644 contrib/ChangeLog %{buildroot}%{_datadir}/common-lisp/source/slime/contrib
+install -pm 644 *.asd %{buildroot}%{_datadir}/common-lisp/source/slime
+
+mv contrib/README contrib/contrib-README
+mv contrib/ChangeLog contrib/contrib-ChangeLog
 
 %clean
 rm -rf %{buildroot}
@@ -80,22 +94,40 @@ fi
 
 %files
 %defattr(-,root,root,-)
-%doc ChangeLog NEWS PROBLEMS README doc/slime-small.pdf doc/slime-refcard.pdf
+%doc ChangeLog NEWS PROBLEMS README doc/slime-small.pdf doc/slime-refcard.pdf contrib/contrib-README contrib/contrib-ChangeLog
+
+%dir %{_emacs_sitestartdir}
+%{_emacs_sitestartdir}/*.elc
+
 %dir %{_emacs_sitelispdir}/%{pkg}
+%dir %{_emacs_sitelispdir}/%{pkg}/contrib
 %{_emacs_sitelispdir}/%{pkg}/*.elc
-%dir %{_datadir}/common-lisp/source/swank
-%{_datadir}/common-lisp/source/swank/*
-%{_datadir}/common-lisp/systems/swank.asd
+
+%dir %{_datadir}/common-lisp/source/slime
+%dir %{_datadir}/common-lisp/source/slime/contrib
+%{_datadir}/common-lisp/source/slime/*.lisp
+%{_datadir}/common-lisp/source/slime/contrib/*.lisp
+%{_datadir}/common-lisp/source/slime/contrib/*.el
+%{_datadir}/common-lisp/source/slime/contrib/README
+%{_datadir}/common-lisp/source/slime/contrib/ChangeLog
+%{_datadir}/common-lisp/source/slime/*.asd
 %{_infodir}/%{pkg}.info.gz
 
 %files el
 %defattr(-,root,root,-)
 %doc HACKING
 %{_emacs_sitelispdir}/%{pkg}/*.el
-%dir %{_emacs_sitelispdir}/%{pkg}
-
 
 %changelog
+* Mon Jul 23 2012 Lakshmi Narasimhan T V <lakshminaras2002 at gmail.com> - 3.0-0.6.20120525cvs
+- All .el files go into -el package except for those under contrib. They go into common-lisp/source/slime
+- Copy readme and changelog into contrib folder. Gives an idea of how to load the definitions into emacs.
+- Rename readme and changelog under contrib and put them into doc folder as well.
+
+* Mon Jul 23 2012 Lakshmi Narasimhan T V <lakshminaras2002 at gmail.com> - 3.0-0.5.20120525cvs
+- Apply patches to fix slime load error.
+- Copy contrib directory in both base and el packages.
+
 * Wed Jul 18 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.0-0.4.20101113cvs
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
 
diff --git a/fix_paths.patch b/fix_paths.patch
new file mode 100644
index 0000000..ea0e0fd
--- /dev/null
+++ b/fix_paths.patch
@@ -0,0 +1,53 @@
+Index: slime/slime.el
+===================================================================
+--- slime.orig/slime.el	2012-04-21 21:47:22.000000001 +0200
++++ slime/slime.el	2012-04-21 21:47:36.000000001 +0200
+@@ -119,7 +119,7 @@
+     "Return the datestring of the latest entry in the ChangeLog file.
+ Return nil if the ChangeLog file cannot be found."
+     (interactive "p")
+-    (let ((changelog (concat slime-path "ChangeLog"))
++    (let ((changelog "/usr/share/doc/emacs-slime-3.0/Changelog")
+           (date nil))
+       (when (file-exists-p changelog)
+         (with-temp-buffer 
+Index: slime/swank-loader.lisp
+===================================================================
+--- slime.orig/swank-loader.lisp	2012-04-21 21:47:09.000000001 +0200
++++ slime/swank-loader.lisp	2012-04-21 21:47:36.000000001 +0200
+@@ -17,6 +17,10 @@
+ ;;   (setq swank-loader::*fasl-directory* "/tmp/fasl/")
+ ;;   (swank-loader:init)
+ 
++
++(handler-case (require :asdf)
++  (error () (load "/usr/share/common-lisp/source/cl-asdf/asdf.lisp")))
++
+ (cl:defpackage :swank-loader
+   (:use :cl)
+   (:export :init
+@@ -122,7 +126,7 @@
+ (defun slime-version-string ()
+   "Return a string identifying the SLIME version.
+ Return nil if nothing appropriate is available."
+-  (with-open-file (s (merge-pathnames "ChangeLog" *source-directory*)
++  (with-open-file (s "/usr/share/doc/emacs-slime-3.0/Changelog" 
+                      :if-does-not-exist nil)
+     (and s (symbol-name (read s)))))
+ 
+@@ -139,10 +143,11 @@
+ 
+ (defun binary-pathname (src-pathname binary-dir)
+   "Return the pathname where SRC-PATHNAME's binary should be compiled."
+-  (let ((cfp (compile-file-pathname src-pathname)))
+-    (merge-pathnames (make-pathname :name (pathname-name cfp)
+-                                    :type (pathname-type cfp))
+-                     binary-dir)))
++  (declare (ignore binary-dir))
++  (let ((cfp (compile-file-pathname src-pathname)))    
++    (merge-pathnames (make-pathname 
++                      :directory `(:relative "swank" "fasl" ,(unique-dir-name)))
++                     (asdf:apply-output-translations cfp))))
+ 
+ (defun handle-swank-load-error (condition context pathname)
+   (fresh-line *error-output*)
diff --git a/known_implementations.patch b/known_implementations.patch
new file mode 100644
index 0000000..87556f9
--- /dev/null
+++ b/known_implementations.patch
@@ -0,0 +1,29 @@
+Index: slime/slime.el
+===================================================================
+--- slime.orig/slime.el	2012-04-21 21:46:55.000000001 +0200
++++ slime/slime.el	2012-04-21 21:47:22.000000001 +0200
+@@ -133,6 +133,15 @@
+ (defvar slime-protocol-version nil)
+ (setq slime-protocol-version (slime-changelog-date))
+ 
++(defun slime-gather-lisp-implementations ()
++  "Compute sane default value for slime-lisp-implementations."
++  (let ((known-lisps '("sbcl" "clisp" "ecl" "cmucl")))
++    (remove-if
++     'null
++     (mapcar 
++      (lambda (l) (if (executable-find l) (list l (list l))))
++      known-lisps))))
++
+ 
+ ;;;; Customize groups
+ ;;
+@@ -1055,7 +1064,7 @@
+ (defvar inferior-lisp-program "lisp" 
+   "*Program name for invoking an inferior Lisp with for Inferior Lisp mode.")
+ 
+-(defvar slime-lisp-implementations nil
++(defvar slime-lisp-implementations (slime-gather-lisp-implementations)
+   "*A list of known Lisp implementations.
+ The list should have the form: 
+   ((NAME (PROGRAM PROGRAM-ARGS...) &key KEYWORD-ARGS) ...)
diff --git a/slime-current.tgz b/slime-current.tgz
index 686a74d..d85fde0 100644
Binary files a/slime-current.tgz and b/slime-current.tgz differ


More information about the scm-commits mailing list