diff options
Diffstat (limited to 'app-emacs/slime')
-rw-r--r-- | app-emacs/slime/Manifest | 6 | ||||
-rw-r--r-- | app-emacs/slime/files/2.0_p20110617/70slime-gentoo.el | 15 | ||||
-rw-r--r-- | app-emacs/slime/files/2.0_p20110617/gentoo-dont-call-init.patch | 16 | ||||
-rw-r--r-- | app-emacs/slime/files/2.0_p20110617/swank.asd | 98 | ||||
-rw-r--r-- | app-emacs/slime/files/2.0_p20130214/gentoo-module-load.patch | 84 | ||||
-rw-r--r-- | app-emacs/slime/files/2.11/dont-load-sbcl-pprint.patch | 13 | ||||
-rw-r--r-- | app-emacs/slime/files/2.11/gentoo-changelog-date.patch | 20 | ||||
-rw-r--r-- | app-emacs/slime/files/70slime-gentoo.el | 13 | ||||
-rw-r--r-- | app-emacs/slime/files/swank-loader.lisp | 4 | ||||
-rw-r--r-- | app-emacs/slime/metadata.xml | 37 | ||||
-rw-r--r-- | app-emacs/slime/slime-2.0_p20080731-r1.ebuild | 79 | ||||
-rw-r--r-- | app-emacs/slime/slime-2.0_p20080731.ebuild | 78 | ||||
-rw-r--r-- | app-emacs/slime/slime-2.0_p20101103.ebuild | 82 | ||||
-rw-r--r-- | app-emacs/slime/slime-2.11.ebuild | 122 | ||||
-rw-r--r-- | app-emacs/slime/slime-2.12.ebuild | 122 |
15 files changed, 789 insertions, 0 deletions
diff --git a/app-emacs/slime/Manifest b/app-emacs/slime/Manifest new file mode 100644 index 000000000000..ee07c1c27c70 --- /dev/null +++ b/app-emacs/slime/Manifest @@ -0,0 +1,6 @@ +DIST slime-2.0_p20080731-patches.tar.bz2 4966 SHA256 0b032a7f6744dac372bfd2036789efd4e9cc7c509e7836e27fee4abc9072a12a SHA512 12dafeeeeab9bc4b63113e6a3cb4e2695867c0f8dd8e08f38af8c1cc403b25ead6a94b0d3ac2ede2c88e2152f01af49964b811301e761545f9589fa969617d85 WHIRLPOOL 5b99322502466f06ccf22a411053316bb31d510eef4f9189f15a544609cd5d1a47f89de6b5a8366a6c62939dfb012133083305404e3a512077b9e1ac7108e04e +DIST slime-2.0_p20080731.tar.bz2 596093 SHA256 7c5f3ab65a0e76ff042230a34213f558d9a57c00ef22380876bf9cde9717354b SHA512 c991c6d41c5e694a64c71cd9010aeeb7f79ef308ec1d9e1df63ff4031946cf88f7d2b6819725a17f98fcdf6a1a35f82352a817c1c064b7b205b82c363691b7bc WHIRLPOOL 6f62a33600ca7831dfe0cdc0a94db1b5c849fcc3c8392f5709a65c588f45eec70f78c9930e471652f4926398328d2f2ff9a3c6e9475eb14f9c6233213e6c9416 +DIST slime-2.0_p20101103-patches.tar.bz2 4730 SHA256 9cab942f4ea64ec2f0e127db3b5428513c51899e5518d9f8c2bd9143c644fd19 SHA512 7990a3ffa4a5867fe84e326034aa794d3396dd2a74125e256be33524e2e737e052094fa11f2f486db34dc619e89e9343d4c5d2f84f3972139c2c7ac33248ce2c WHIRLPOOL a11ebfdf6b9054ed07ea8af667a5ef909cbe129531ee63dd3b4556fedc4d0e334ed913423a23acab176312b1c781f3c25f1c499184d7f2c6bfe459d4b67c368b +DIST slime-2.0_p20101103.tar.bz2 725888 SHA256 0596532fa8cb78e59f685557474bd0ac5d00a79ac84c361ab93f079797a4041f SHA512 cb0cc3232304ef6efec5e01d3660cc649abb3e5803f17c82785b154b6f0b581889ea3b2dcf261be39b16ff22c912c34c7ec84c400856f5c4a29fbeaf7c49851d WHIRLPOOL 3421ea5aa5ed96a3d7b552fe74804bc3e7e822dd21623c0b36f7f84d7ad726fa57d0eb496e15d4ef9ea5027f0c247a3ba8ae7ae46118851c3f0ed13ec1cf482f +DIST slime-2.11.tar.gz 1054516 SHA256 d63962c22f983a52519fb51b5ca28183aeb23ff6892804d02311e54d73ec8b2a SHA512 9507a4460a2f0d5b4f0857824fcaa36f6efeb09aebde7ca682bdc0214b6a722e471180c34ddce26a8f94d7cf3aae959954565ada314729e803d36767afc3e850 WHIRLPOOL 530c5b341f2ca4a95c954cea848c67cfd027345691feb9c246eb56ecaf6c420b642ed1991f1d615dabc0ca1f54bc6b28482e57c800498cf25a17ce39a7dc0ba3 +DIST slime-2.12.tar.gz 1057243 SHA256 29d57d1036abe69cb62809b5bb31d08c76c3e0e559b7e601b9d76fb7a554d53b SHA512 f18c79cba3eb75761982f2d1f163aab8213b77fa72a689d110fe91b1aa40953516566adc5f771638eee95d33ba8b4c8842ddf99738804483ccfb76a00290b2a1 WHIRLPOOL b0b78101f114514c16cba823dee02aac8a1fee74d23d5623838c2fdedaaa4fda953e6ee9bfcfcd6cf5a174d245f4ba801596c16e0bb67c1729d73a69d0ebc0b1 diff --git a/app-emacs/slime/files/2.0_p20110617/70slime-gentoo.el b/app-emacs/slime/files/2.0_p20110617/70slime-gentoo.el new file mode 100644 index 000000000000..358af67d918d --- /dev/null +++ b/app-emacs/slime/files/2.0_p20110617/70slime-gentoo.el @@ -0,0 +1,15 @@ +;;; site-lisp configuration for SLIME + +(add-to-list 'load-path "@SITELISP@") +(add-to-list 'load-path "@SITELISP@/contrib") +(autoload 'slime-highlight-edits-mode "slime-highlight-edits") + +(require 'slime-autoloads) +(slime-setup '(slime-fancy slime-asdf slime-banner)) + +;; this allows us not to require dev-lisp/hyperspec +;; (which is non-free) as a hard dependency +(setq common-lisp-hyperspec-root + (if (file-exists-p "/usr/share/doc/hyperspec/HyperSpec") + "file:///usr/share/doc/hyperspec/HyperSpec/" + "http://www.lispworks.com/reference/HyperSpec/")) diff --git a/app-emacs/slime/files/2.0_p20110617/gentoo-dont-call-init.patch b/app-emacs/slime/files/2.0_p20110617/gentoo-dont-call-init.patch new file mode 100644 index 000000000000..410c3913a2a1 --- /dev/null +++ b/app-emacs/slime/files/2.0_p20110617/gentoo-dont-call-init.patch @@ -0,0 +1,16 @@ +Author: Stelian Ionescu <sionescu@cddr.org> +Date: 2010-05-14 +Status: Gentoo-only +Description: Dont' call SWANK-LOADER:INIT on startup since we don't use + the upstream swank-loader.lisp + +--- a/slime.el ++++ b/slime.el +@@ -1323,7 +1323,6 @@ See `slime-start'." + `(progn + (load ,(slime-to-lisp-filename (expand-file-name loader)) + :verbose t) +- (funcall (read-from-string "swank-loader:init")) + (funcall (read-from-string "swank:start-server") + ,(slime-to-lisp-filename port-filename) + :coding-system ,encoding))))) diff --git a/app-emacs/slime/files/2.0_p20110617/swank.asd b/app-emacs/slime/files/2.0_p20110617/swank.asd new file mode 100644 index 000000000000..b33ca6e67cb0 --- /dev/null +++ b/app-emacs/slime/files/2.0_p20110617/swank.asd @@ -0,0 +1,98 @@ +;;;; -*- Mode: Lisp; indent-tabs-mode: nil -*- + +(defpackage #:swank-system + (:use #:common-lisp #:asdf)) + +(in-package #:swank-system) + +(defun load-user-init-file () + "Load the user init file, return NIL if it does not exist." + (load (merge-pathnames (user-homedir-pathname) + (make-pathname :name ".swank" :type "lisp")) + :if-does-not-exist nil)) + +(defun load-site-init-file () + (load (make-pathname :name "site-init" :type "lisp" + :defaults (truename + (asdf:system-definition-pathname + (asdf:find-system :swank)))) + :if-does-not-exist nil)) + +(defclass no-load-file (cl-source-file) ()) + +(defmethod perform ((op load-op) (c no-load-file)) nil) + +(defmacro define-swank-system (sysdep-files) + `(defsystem :swank + :description "Swank is the Common Lisp back-end to SLIME" + :serial t + :components ((:file "swank-backend") + (:file "nregex") + ,@(mapcar #'(lambda (component) + (if (atom component) + (list :file component) + component)) + sysdep-files) + (:file "swank-match") + (:file "swank-rpc") + (:file "swank") + (:module "contrib" + :components ((:no-load-file "swank-c-p-c") + (:no-load-file "swank-arglists" + :depends-on ("swank-c-p-c")) + (:no-load-file "swank-asdf") + (:no-load-file "swank-clipboard") + (:no-load-file "swank-fancy-inspector") + (:no-load-file "swank-fuzzy" + :depends-on ("swank-c-p-c")) + (:no-load-file "swank-hyperdoc") + (:no-load-file "swank-indentation") + (:no-load-file "swank-listener-hooks") + (:no-load-file "swank-media") + (:no-load-file "swank-motd") + (:no-load-file "swank-package-fu") + (:no-load-file "swank-presentations") + (:no-load-file "swank-presentation-streams" + :depends-on ("swank-presentations")) + (:no-load-file "swank-sbcl-exts" + :depends-on ("swank-arglists")) + (:no-load-file "swank-snapshot") + (:no-load-file "swank-sprof")))) + :depends-on (#+sbcl sb-bsd-sockets) + :perform (load-op :after (op swank) + (load-site-init-file) + (load-user-init-file)))) + +#+(or cmu scl sbcl openmcl clozurecl lispworks allegro clisp armedbear cormanlisp ecl) +(define-swank-system + #+cmu (swank-source-path-parser swank-source-file-cache swank-cmucl) + #+scl (swank-source-path-parser swank-source-file-cache swank-scl) + #+sbcl (swank-source-path-parser swank-source-file-cache swank-sbcl swank-gray) + #+(or openmcl clozurecl) (metering + #.(if (and (find-package "CCL") + (fboundp (intern "COMPUTE-APPLICABLE-METHODS-USING-CLASSES" "CCL"))) + 'swank-ccl + 'swank-openmcl) + swank-gray) + #+lispworks (swank-lispworks swank-gray) + #+allegro (swank-allegro swank-gray) + #+clisp (xref metering swank-clisp swank-gray) + #+armedbear (swank-abcl) + #+cormanlisp (swank-corman swank-gray) + #+ecl (swank-source-path-parser swank-source-file-cache swank-ecl swank-gray)) + +#-(or cmu scl sbcl openmcl clozurecl lispworks allegro clisp armedbear cormanlisp ecl) +(error "Your CL implementation is not supported !") + +(defpackage #:swank-loader + (:use #:common-lisp) + (:export #:*source-directory*)) + +(in-package #:swank-loader) + +(defparameter *source-directory* + (asdf:component-pathname (asdf:find-system :swank))) + +;; (funcall (intern (string :warn-unimplemented-interfaces) :swank-backend)) + +;; swank.asd ends here diff --git a/app-emacs/slime/files/2.0_p20130214/gentoo-module-load.patch b/app-emacs/slime/files/2.0_p20130214/gentoo-module-load.patch new file mode 100644 index 000000000000..c25a248d04ab --- /dev/null +++ b/app-emacs/slime/files/2.0_p20130214/gentoo-module-load.patch @@ -0,0 +1,84 @@ +--- slime-9999-orig/contrib/swank-arglists.lisp 2012-08-14 06:50:34.000000000 +1000 ++++ slime-9999/contrib/swank-arglists.lisp 2013-02-14 21:33:26.879124163 +1100 +@@ -9,8 +9,7 @@ + + (in-package :swank) + +-(eval-when (:compile-toplevel :load-toplevel :execute) +- (swank-require :swank-c-p-c)) ++(swank-require :swank-c-p-c) + + ;;;; Utilities + +--- slime-9999-orig/contrib/swank-fuzzy.lisp 2013-02-02 20:48:51.000000000 +1100 ++++ slime-9999/contrib/swank-fuzzy.lisp 2013-02-14 21:35:32.059873714 +1100 +@@ -10,9 +10,8 @@ + + (in-package :swank) + +-(eval-when (:compile-toplevel :load-toplevel :execute) +- (swank-require :swank-util) +- (swank-require :swank-c-p-c)) ++(swank-require :swank-util) ++(swank-require :swank-c-p-c) + + ;;; For nomenclature of the fuzzy completion section, please read + ;;; through the following docstring. +--- slime-9999-orig/contrib/swank-sbcl-exts.lisp 2009-09-25 16:43:33.000000000 +1000 ++++ slime-9999/contrib/swank-sbcl-exts.lisp 2013-02-14 21:33:26.880124185 +1100 +@@ -7,8 +7,7 @@ + + (in-package :swank) + +-(eval-when (:compile-toplevel :load-toplevel :execute) +- (swank-require :swank-arglists)) ++(swank-require :swank-arglists) + + ;; We need to do this so users can place `slime-sbcl-exts' into their + ;; ~/.emacs, and still use any implementation they want. +--- slime-9999-orig/swank.lisp 2013-01-11 20:00:30.000000000 +1100 ++++ slime-9999/swank.lisp 2013-02-14 22:15:39.624982175 +1100 +@@ -2535,14 +2535,17 @@ + "Load the module MODULE." + (dolist (module (ensure-list modules)) + (unless (member (string module) *modules* :test #'string=) +- (require module (if filename +- (filename-to-pathname filename) +- (module-filename module))) ++ (let ((*load-print* nil) ++ (*load-verbose* nil) ++ #+cmu (ext:*gc-verbose* nil)) ++ (require module (if filename ++ (filename-to-pathname filename) ++ (module-filename module)))) + (assert (member (string module) *modules* :test #'string=) + () "Required module ~s was not provided" module))) + *modules*) + +-(defvar *find-module* 'find-module ++(defvar *find-module* 'find-module-gentoo + "Pluggable function to locate modules. + The function receives a module name as argument and should return + the filename of the module (or nil if the file doesn't exist).") +@@ -2572,6 +2575,21 @@ + (some (lambda (dir) (some #'probe-file (module-canditates name dir))) + *load-path*))) + ++(defun swank-fasl-pathname () ++ (make-pathname :name nil :type nil ++ :defaults (car (asdf:output-files ++ (make-instance 'asdf:compile-op) ++ (car (asdf:module-components ++ (asdf:find-system :swank))))))) ++ ++(defun append-dir (pathname dir) ++ (make-pathname :directory (append (pathname-directory pathname) dir))) ++ ++(defun find-module-gentoo (module) ++ (or (let ((*load-path* (list (append-dir (swank-fasl-pathname) '("contrib")) ++ (append-dir swank-loader:*source-directory* '("contrib"))))) ++ (find-module module)) ++ (find-module module))) + + ;;;; Macroexpansion + diff --git a/app-emacs/slime/files/2.11/dont-load-sbcl-pprint.patch b/app-emacs/slime/files/2.11/dont-load-sbcl-pprint.patch new file mode 100644 index 000000000000..c7dafb6cb91a --- /dev/null +++ b/app-emacs/slime/files/2.11/dont-load-sbcl-pprint.patch @@ -0,0 +1,13 @@ +diff --git a/contrib/swank-presentation-streams.lisp b/contrib/swank-presentation-streams.lisp +index 0c24bda..bd5a990 100644 +--- a/contrib/swank-presentation-streams.lisp ++++ b/contrib/swank-presentation-streams.lisp +@@ -65,7 +65,7 @@ be sensitive and remember what object it is in the repl if predicate is true" + (funcall ,continue))))) + + ;;; Get pretty printer patches for SBCL at load (not compile) time. +-#+sbcl ++#+#:disable-dangerous-patching ; #+sbcl + (eval-when (:load-toplevel) + (handler-bind ((simple-error + (lambda (c) diff --git a/app-emacs/slime/files/2.11/gentoo-changelog-date.patch b/app-emacs/slime/files/2.11/gentoo-changelog-date.patch new file mode 100644 index 000000000000..4d7669a34d29 --- /dev/null +++ b/app-emacs/slime/files/2.11/gentoo-changelog-date.patch @@ -0,0 +1,20 @@ +--- slime-2.11-orig/slime.el 2014-12-01 21:05:54.000000000 +1100 ++++ slime-2.11/slime.el 2014-12-19 11:57:45.455393436 +1100 +@@ -134,16 +134,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 (expand-file-name "ChangeLog" slime-path)) +- (date nil)) +- (when (file-exists-p changelog) +- (with-temp-buffer +- (insert-file-contents-literally changelog nil 0 100) +- (goto-char (point-min)) +- (setq date (symbol-name (read (current-buffer)))))) +- (when interactivep +- (message "Slime ChangeLog dates %s." date)) +- date))) ++ "@SLIME-CHANGELOG-DATE@")) + + (defvar slime-protocol-version nil) + (setq slime-protocol-version diff --git a/app-emacs/slime/files/70slime-gentoo.el b/app-emacs/slime/files/70slime-gentoo.el new file mode 100644 index 000000000000..6dfd505133e2 --- /dev/null +++ b/app-emacs/slime/files/70slime-gentoo.el @@ -0,0 +1,13 @@ +(add-to-list 'load-path "@SITELISP@") +(add-to-list 'load-path "@SITELISP@/contrib") +(autoload 'slime-highlight-edits-mode "slime-highlight-edits" nil t) + +(require 'slime-autoloads) +(slime-setup '(slime-fancy slime-asdf slime-banner)) + +;; this allows us not to require dev-lisp/hyperspec +;; (which is non-free) as a hard dependency +(setq common-lisp-hyperspec-root + (if (file-exists-p "/usr/share/doc/hyperspec/HyperSpec") + "file:///usr/share/doc/hyperspec/HyperSpec/" + "http://www.lispworks.com/reference/HyperSpec/")) diff --git a/app-emacs/slime/files/swank-loader.lisp b/app-emacs/slime/files/swank-loader.lisp new file mode 100644 index 000000000000..4d9b157312e6 --- /dev/null +++ b/app-emacs/slime/files/swank-loader.lisp @@ -0,0 +1,4 @@ + +;; This file is NOT part of SLIME + +(asdf:oos 'asdf:load-op :swank) diff --git a/app-emacs/slime/metadata.xml b/app-emacs/slime/metadata.xml new file mode 100644 index 000000000000..907cce48a952 --- /dev/null +++ b/app-emacs/slime/metadata.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>emacs</herd> +<herd>common-lisp</herd> +<longdescription> + SLIME: The Superior Lisp Interaction Mode for Emacs. SLIME is a + fresh, new Emacs mode for Common Lisp development inspired by existing + systems such Emacs Lisp and ILISP. Feature highlights include: + + * slime-mode: An Emacs minor-mode to enhance lisp-mode with: + o Code evaluation, compilation, and macroexpansion. + o Online documentation (describe, apropos, hyperspec). + o Definition finding (aka Meta-Point aka M-.). + o Symbol and package name completion. + o Automatic macro indentation based on &body. + o Cross-reference interface (WHO-CALLS, etc). + o ... and more. + + * SLDB: Common Lisp debugger with an Emacs-based user interface. + + * REPL: The Read-Eval-Print Loop ("top-level") is written in Emacs + Lisp for tighter integration with Emacs. The REPL also has builtin + "shortcut" commands similar those of the McCLIM Listener. + + * Compilation notes: SLIME is able to take compiler messages and + annotate them directly into source buffers. + + * Inspector: Interactive object-inspector in an Emacs buffer. +</longdescription> +<use> + <flag name="xref">Install xref.lisp cross-referencing tool</flag> +</use> +<upstream> + <remote-id type="github">slime/slime</remote-id> +</upstream> +</pkgmetadata> diff --git a/app-emacs/slime/slime-2.0_p20080731-r1.ebuild b/app-emacs/slime/slime-2.0_p20080731-r1.ebuild new file mode 100644 index 000000000000..4be63c9c22ed --- /dev/null +++ b/app-emacs/slime/slime-2.0_p20080731-r1.ebuild @@ -0,0 +1,79 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=3 + +inherit common-lisp elisp eutils + +DESCRIPTION="SLIME, the Superior Lisp Interaction Mode (Extended)" +HOMEPAGE="http://common-lisp.net/project/slime/" +SRC_URI="mirror://gentoo/${P}.tar.bz2 + mirror://gentoo/${P}-patches.tar.bz2" + +LICENSE="GPL-2 xref? ( xref.lisp )" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x86-macos" +IUSE="doc xref" + +RDEPEND="virtual/commonlisp + dev-lisp/asdf" +DEPEND="${RDEPEND} + doc? ( virtual/texi2dvi )" + +CLPACKAGE=swank +SITEFILE="70${PN}-gentoo.el" + +src_prepare() { + EPATCH_SUFFIX=patch epatch + mv "${WORKDIR}/swank.asd" "${S}" || die + + # extract date of last update from ChangeLog, bug 233270 + SLIME_CHANGELOG_DATE=$(awk '/^[-0-9]+ / { print $1; exit; }' ChangeLog) + [ -n "${SLIME_CHANGELOG_DATE}" ] || die "cannot determine ChangeLog date" + + sed -i "/(defvar \*swank-wire-protocol-version\*/s:nil:\"${SLIME_CHANGELOG_DATE}\":" swank.lisp || die + sed -i "s:@SLIME-CHANGELOG-DATE@:${SLIME_CHANGELOG_DATE}:" slime.el || die + + # Remove xref.lisp (which is non-free) unless USE flag is set + use xref || rm -f xref.lisp +} + +src_compile() { + elisp-compile *.el || die + BYTECOMPFLAGS="${BYTECOMPFLAGS} -L contrib -l slime" \ + elisp-compile contrib/*.el || die + emake -j1 -C doc slime.info || die + + if use doc; then + VARTEXFONTS="${T}/fonts" emake -j1 -C doc slime.{ps,pdf} || die + fi +} + +src_install() { + ## install core + elisp-install ${PN} *.{el,elc} "${FILESDIR}/swank-loader.lisp" || die + sed "s:/usr/:${EPREFIX}&:g" "${FILESDIR}/${SITEFILE}" >"${T}/${SITEFILE}" \ + || die + elisp-site-file-install "${T}/${SITEFILE}" || die + + # remove upstream swank-loader, since it won't be used + rm "${S}/swank-loader.lisp" + + insinto "${CLSOURCEROOT%/}/swank" + doins *.lisp swank.asd || die + dodir "${CLSYSTEMROOT}" || die + dosym "${CLSOURCEROOT%/}/swank/swank.asd" "${CLSYSTEMROOT}" || die + + ## install contribs + elisp-install ${PN}/contrib/ contrib/*.{el,elc,scm,goo} || die + insinto "${CLSOURCEROOT%/}/swank/contrib" + doins contrib/*.lisp || die + + ## install docs + doinfo doc/slime.info || die + dodoc README* ChangeLog HACKING NEWS PROBLEMS + newdoc contrib/README README.contrib + newdoc contrib/ChangeLog ChangeLog.contrib + use doc && dodoc doc/slime.{ps,pdf} +} diff --git a/app-emacs/slime/slime-2.0_p20080731.ebuild b/app-emacs/slime/slime-2.0_p20080731.ebuild new file mode 100644 index 000000000000..64157e2a78b9 --- /dev/null +++ b/app-emacs/slime/slime-2.0_p20080731.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +inherit common-lisp elisp eutils + +DESCRIPTION="SLIME, the Superior Lisp Interaction Mode (Extended)" +HOMEPAGE="http://common-lisp.net/project/slime/" +SRC_URI="mirror://gentoo/${P}.tar.bz2 + mirror://gentoo/${P}-patches.tar.bz2" + +LICENSE="GPL-2 xref.lisp" +SLOT="0" +KEYWORDS="amd64 ppc ~sparc x86" +IUSE="doc" + +RDEPEND="virtual/commonlisp dev-lisp/asdf" +DEPEND="${RDEPEND} + doc? ( virtual/texi2dvi )" + +CLPACKAGE=swank +SITEFILE=70${PN}-gentoo.el + +src_unpack() { + unpack ${A} + cd "${S}" + + EPATCH_SUFFIX=patch epatch + mv "${WORKDIR}/swank.asd" "${S}" || die + + # extract date of last update from ChangeLog, bug 233270 + SLIME_CHANGELOG_DATE=$(awk '/^[-0-9]+ / { print $1; exit; }' ChangeLog) + [ -n "${SLIME_CHANGELOG_DATE}" ] || die "cannot determine ChangeLog date" + + sed -i "/(defvar \*swank-wire-protocol-version\*/s:nil:\"${SLIME_CHANGELOG_DATE}\":" swank.lisp \ + || die "sed swank.lisp failed" + sed -i "s:@SLIME-CHANGELOG-DATE@:${SLIME_CHANGELOG_DATE}:" slime.el \ + || die "sed slime.el failed" +} + +src_compile() { + elisp-compile *.el || die "Cannot compile core Elisp files" + BYTECOMPFLAGS="${BYTECOMPFLAGS} -L contrib -l slime" \ + elisp-compile contrib/*.el || die "Cannot compile contrib Elisp files" + emake -j1 -C doc slime.info || die "Cannot build info docs" + if use doc; then + VARTEXFONTS="${T}"/fonts \ + emake -j1 -C doc slime.{ps,pdf} || die "emake doc failed" + fi +} + +src_install() { + ## install core + elisp-install ${PN} *.el{,c} "${FILESDIR}"/swank-loader.lisp \ + || die "Cannot install SLIME core" + elisp-site-file-install "${FILESDIR}"/${SITEFILE} \ + || die "elisp-site-file-install failed" + # remove upstream swank-loader, since it won't be used + rm "${S}"/swank-loader.lisp + insinto "${CLSOURCEROOT%/}"/swank + doins *.lisp swank.asd + dodir "${CLSYSTEMROOT}" + dosym "${CLSOURCEROOT%/}"/swank/swank.asd "${CLSYSTEMROOT}" + dosym "${SITELISP}"/${PN}/swank-version.el "${CLSOURCEROOT%/}"/swank + + ## install contribs + elisp-install ${PN}/contrib/ contrib/*.{el,elc,scm,goo} \ + || die "Cannot install contribs" + insinto "${CLSOURCEROOT%/}"/swank/contrib + doins contrib/*.lisp + + ## install docs + dodoc README* ChangeLog HACKING NEWS PROBLEMS + newdoc contrib/README README.contrib + newdoc contrib/ChangeLog ChangeLog.contrib + doinfo doc/slime.info + use doc && dodoc doc/slime.{ps,pdf} +} diff --git a/app-emacs/slime/slime-2.0_p20101103.ebuild b/app-emacs/slime/slime-2.0_p20101103.ebuild new file mode 100644 index 000000000000..69de96669513 --- /dev/null +++ b/app-emacs/slime/slime-2.0_p20101103.ebuild @@ -0,0 +1,82 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=3 + +inherit common-lisp elisp eutils + +DESCRIPTION="SLIME, the Superior Lisp Interaction Mode (Extended)" +HOMEPAGE="http://common-lisp.net/project/slime/" +SRC_URI="mirror://gentoo/${P}.tar.bz2 + mirror://gentoo/${P}-patches.tar.bz2" + +LICENSE="GPL-2 xref? ( xref.lisp )" +SLOT="0" +KEYWORDS="amd64 ppc ~sparc x86 ~amd64-linux ~x86-linux ~x86-macos" +IUSE="doc xref" + +RDEPEND="virtual/commonlisp + dev-lisp/asdf" +DEPEND="${RDEPEND} + doc? ( virtual/texi2dvi )" + +CLPACKAGE=swank +SITEFILE="70${PN}-gentoo.el" + +src_prepare() { + EPATCH_SUFFIX=patch epatch + mv "${WORKDIR}/swank.asd" "${S}" || die + + # extract date of last update from ChangeLog, bug 233270 + SLIME_CHANGELOG_DATE=$(awk '/^[-0-9]+ / { print $1; exit; }' ChangeLog) + [ -n "${SLIME_CHANGELOG_DATE}" ] || die "cannot determine ChangeLog date" + + sed -i '/^section :=/d' doc/Makefile || die + sed -i "/(defvar \*swank-wire-protocol-version\*/s:nil:\"${SLIME_CHANGELOG_DATE}\":" swank.lisp || die + sed -i "s:@SLIME-CHANGELOG-DATE@:${SLIME_CHANGELOG_DATE}:" slime.el || die + sed -i "s/@itemx INIT-FUNCTION/@item INIT-FUNCTION/" doc/slime.texi \ + || die "sed doc/slime.texi failed" + + # Remove xref.lisp (which is non-free) unless USE flag is set + use xref || rm -f xref.lisp +} + +src_compile() { + elisp-compile *.el || die + BYTECOMPFLAGS="${BYTECOMPFLAGS} -L contrib -l slime" \ + elisp-compile contrib/*.el || die + emake -j1 -C doc slime.info || die + + if use doc; then + VARTEXFONTS="${T}/fonts" emake -j1 -C doc slime.pdf || die + fi +} + +src_install() { + ## install core + elisp-install ${PN} *.{el,elc} "${FILESDIR}/swank-loader.lisp" || die + sed "s:/usr/:${EPREFIX}&:g" "${FILESDIR}/${SITEFILE}" >"${T}/${SITEFILE}" \ + || die + elisp-site-file-install "${T}/${SITEFILE}" || die + + # remove upstream swank-loader, since it won't be used + rm "${S}/swank-loader.lisp" + + insinto "${CLSOURCEROOT%/}/swank" + doins *.lisp swank.asd || die + dodir "${CLSYSTEMROOT}" || die + dosym "${CLSOURCEROOT%/}/swank/swank.asd" "${CLSYSTEMROOT}" || die + + ## install contribs + elisp-install ${PN}/contrib/ contrib/*.{el,elc,scm,goo} || die + insinto "${CLSOURCEROOT%/}/swank/contrib" + doins contrib/*.lisp || die + + ## install docs + doinfo doc/slime.info || die + dodoc README* ChangeLog HACKING NEWS PROBLEMS + newdoc contrib/README README.contrib + newdoc contrib/ChangeLog ChangeLog.contrib + use doc && dodoc doc/slime.pdf +} diff --git a/app-emacs/slime/slime-2.11.ebuild b/app-emacs/slime/slime-2.11.ebuild new file mode 100644 index 000000000000..effd2445cafc --- /dev/null +++ b/app-emacs/slime/slime-2.11.ebuild @@ -0,0 +1,122 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +[[ ${PV} = *9999* ]] && GIT_ECLASS="git-r3" || GIT_ECLASS="" + +inherit common-lisp-3 ${GIT_ECLASS} elisp eutils + +DESCRIPTION="SLIME, the Superior Lisp Interaction Mode (Extended)" +HOMEPAGE="http://common-lisp.net/project/slime/" +if [[ ${PV} != *9999* ]]; then + SRC_URI="https://github.com/slime/slime/archive/v${PV}.tar.gz -> ${P}.tar.gz" +fi + +LICENSE="GPL-2 xref? ( xref.lisp )" +SLOT="0" +if [[ ${PV} == *9999* ]]; then + KEYWORDS="" +else + KEYWORDS="~amd64 ~ppc ~sparc ~x86" +fi +IUSE="doc xref" +RESTRICT=test # tests fail to contact sbcl + +RDEPEND="virtual/commonlisp + dev-lisp/asdf" +DEPEND="${RDEPEND} + >=sys-apps/texinfo-5.1 + doc? ( virtual/texi2dvi )" + +CLPACKAGE=swank +CLSYSTEMS=swank +SITEFILE=70${PN}-gentoo.el + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + EGIT_REPO_URI="https://github.com/slime/slime.git" + ${GIT_ECLASS}_src_unpack + fi + elisp_src_unpack +} + +src_prepare() { + if [[ "${PV}" == "2.11" ]]; then + epatch "${FILESDIR}"/2.11/dont-load-sbcl-pprint.patch + fi + epatch "${FILESDIR}"/2.0_p20130214/gentoo-module-load.patch + epatch "${FILESDIR}"/2.0_p20110617/gentoo-dont-call-init.patch + has_version ">=app-editors/emacs-24" && rm -f lib/cl-lib.el + + # extract date of last update from ChangeLog, bug 233270 + SLIME_CHANGELOG_DATE=$(awk '/^[-0-9]+ / { print $1; exit; }' ChangeLog) + [ -n "${SLIME_CHANGELOG_DATE}" ] || die "cannot determine ChangeLog date" + + # SLIME uses the changelog date to make sure that the emacs side and the CL side + # are in sync. We hardcode it instead of letting slime determine it at runtime + # because ChangeLog doesn't get installed to $EMACSDIR + epatch "${FILESDIR}"/2.11/gentoo-changelog-date.patch + + # When starting slime in emacs, slime looks for ${S}/swank/backend.lisp as + # /usr/share/common-lisp/source/swank/swank-backend.lisp + pushd swank || die + for i in *.lisp + do + mv ${i} ../swank-${i} + done + popd + + sed -i "/(defvar \*swank-wire-protocol-version\*/s:nil:\"${SLIME_CHANGELOG_DATE}\":" swank.lisp \ + || die "sed swank.lisp failed" + sed -i "s:@SLIME-CHANGELOG-DATE@:${SLIME_CHANGELOG_DATE}:" slime.el \ + || die "sed slime.el failed" + sed -i "s/@itemx INIT-FUNCTION/@item INIT-FUNCTION/" doc/slime.texi \ + || die "sed doc/slime.texi failed" + + # Remove xref.lisp (which is non-free) unless USE flag is set + use xref || rm -f xref.lisp +} + +src_compile() { + elisp-compile *.el || die + BYTECOMPFLAGS="${BYTECOMPFLAGS} -L contrib -l slime" \ + elisp-compile contrib/*.el lib/*.el || die + emake -j1 -C doc slime.info || die "Cannot build info docs" + + if use doc; then + VARTEXFONTS="${T}"/fonts \ + emake -j1 -C doc slime.pdf || die "emake doc failed" + fi +} + +src_install() { + ## install core + elisp-install ${PN} *.{el,elc} "${FILESDIR}"/swank-loader.lisp \ + || die "Cannot install SLIME core" + sed "s:/usr/:${EPREFIX}&:g" "${FILESDIR}"/2.0_p20110617/${SITEFILE} \ + >"${T}"/${SITEFILE} || die "sed failed" + elisp-site-file-install "${T}"/${SITEFILE} || die + cp "${FILESDIR}"/2.0_p20110617/swank.asd "${S}" + # remove upstream swank-loader, since it won't be used + rm "${S}"/swank-loader.lisp + common-lisp-install-sources *.lisp + common-lisp-install-asdf swank.asd + + ## install contribs + elisp-install ${PN}/contrib/ contrib/*.{el,elc,scm,goo} \ + || die "Cannot install contribs" + common-lisp-install-sources contrib/*.lisp + + ## install lib + elisp-install ${PN}/lib/ lib/*.{el,elc} \ + || die "Cannot install libs" + + ## install docs + dodoc README.md ChangeLog CONTRIBUTING.md NEWS PROBLEMS + newdoc contrib/README.md README-contrib.md + newdoc contrib/ChangeLog ChangeLog.contrib + doinfo doc/slime.info + use doc && dodoc doc/*.pdf +} diff --git a/app-emacs/slime/slime-2.12.ebuild b/app-emacs/slime/slime-2.12.ebuild new file mode 100644 index 000000000000..c0a8ff269529 --- /dev/null +++ b/app-emacs/slime/slime-2.12.ebuild @@ -0,0 +1,122 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +[[ ${PV} = *9999* ]] && GIT_ECLASS="git-r3" || GIT_ECLASS="" + +inherit common-lisp-3 ${GIT_ECLASS} elisp eutils + +DESCRIPTION="SLIME, the Superior Lisp Interaction Mode (Extended)" +HOMEPAGE="http://common-lisp.net/project/slime/" +if [[ ${PV} != *9999* ]]; then + SRC_URI="https://github.com/slime/slime/archive/v${PV}.tar.gz -> ${P}.tar.gz" +fi + +LICENSE="GPL-2 xref? ( xref.lisp )" +SLOT="0" +if [[ ${PV} == *9999* ]]; then + KEYWORDS="" +else + KEYWORDS="~amd64 ~ppc ~sparc ~x86" +fi +IUSE="doc xref" +RESTRICT=test # tests fail to contact sbcl + +RDEPEND="virtual/commonlisp + dev-lisp/asdf" +DEPEND="${RDEPEND} + >=sys-apps/texinfo-5.1 + doc? ( virtual/texi2dvi )" + +CLPACKAGE=swank +CLSYSTEMS=swank +SITEFILE=70${PN}-gentoo.el + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + EGIT_REPO_URI="https://github.com/slime/slime.git" + ${GIT_ECLASS}_src_unpack + fi + elisp_src_unpack +} + +src_prepare() { + if [[ "${PV}" == "2.11" ]]; then + epatch "${FILESDIR}"/2.11/dont-load-sbcl-pprint.patch + fi + epatch "${FILESDIR}"/2.0_p20130214/gentoo-module-load.patch + epatch "${FILESDIR}"/2.0_p20110617/gentoo-dont-call-init.patch + has_version ">=app-editors/emacs-24" && rm -f lib/cl-lib.el + + # extract date of last update from ChangeLog, bug 233270 + SLIME_CHANGELOG_DATE=$(awk '/^[-0-9]+ / { print $1; exit; }' ChangeLog) + [ -n "${SLIME_CHANGELOG_DATE}" ] || die "cannot determine ChangeLog date" + + # SLIME uses the changelog date to make sure that the emacs side and the CL side + # are in sync. We hardcode it instead of letting slime determine it at runtime + # because ChangeLog doesn't get installed to $EMACSDIR + epatch "${FILESDIR}"/2.11/gentoo-changelog-date.patch + + # When starting slime in emacs, slime looks for ${S}/swank/backend.lisp as + # /usr/share/common-lisp/source/swank/swank-backend.lisp + pushd swank || die + for i in *.lisp + do + mv ${i} ../swank-${i} + done + popd + + sed -i "/(defvar \*swank-wire-protocol-version\*/s:nil:\"${SLIME_CHANGELOG_DATE}\":" swank.lisp \ + || die "sed swank.lisp failed" + sed -i "s:@SLIME-CHANGELOG-DATE@:${SLIME_CHANGELOG_DATE}:" slime.el \ + || die "sed slime.el failed" + sed -i "s/@itemx INIT-FUNCTION/@item INIT-FUNCTION/" doc/slime.texi \ + || die "sed doc/slime.texi failed" + + # Remove xref.lisp (which is non-free) unless USE flag is set + use xref || rm -f xref.lisp +} + +src_compile() { + elisp-compile *.el || die + BYTECOMPFLAGS="${BYTECOMPFLAGS} -L contrib -l slime" \ + elisp-compile contrib/*.el lib/*.el || die + emake -j1 -C doc slime.info || die "Cannot build info docs" + + if use doc; then + VARTEXFONTS="${T}"/fonts \ + emake -j1 -C doc slime.pdf || die "emake doc failed" + fi +} + +src_install() { + ## install core + elisp-install ${PN} *.{el,elc} "${FILESDIR}"/swank-loader.lisp \ + || die "Cannot install SLIME core" + sed "s:/usr/:${EPREFIX}&:g" "${FILESDIR}"/2.0_p20110617/${SITEFILE} \ + >"${T}"/${SITEFILE} || die "sed failed" + elisp-site-file-install "${T}"/${SITEFILE} || die + cp "${FILESDIR}"/2.0_p20110617/swank.asd "${S}" + # remove upstream swank-loader, since it won't be used + rm "${S}"/swank-loader.lisp + common-lisp-install-sources *.lisp + common-lisp-install-asdf swank.asd + + ## install contribs + elisp-install ${PN}/contrib/ contrib/*.{el,elc,scm,goo} \ + || die "Cannot install contribs" + common-lisp-install-sources contrib/*.lisp + + ## install lib + elisp-install ${PN}/lib/ lib/*.{el,elc} \ + || die "Cannot install libs" + + ## install docs + dodoc README.md ChangeLog CONTRIBUTING.md NEWS PROBLEMS + newdoc contrib/README.md README-contrib.md + newdoc contrib/ChangeLog ChangeLog.contrib + doinfo doc/slime.info + use doc && dodoc doc/*.pdf +} |