* [gentoo-commits] proj/lisp:master commit in: app-emacs/slime/files/2.11/, app-emacs/slime/
@ 2014-12-19 5:51 Mark Wright
0 siblings, 0 replies; only message in thread
From: Mark Wright @ 2014-12-19 5:51 UTC (permalink / raw
To: gentoo-commits
commit: 0dbb584dc9d588660a059e3c5e0e8d30e4344809
Author: Mark Wright <gienah <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 19 05:51:07 2014 +0000
Commit: Mark Wright <gienah <AT> gentoo <DOT> org>
CommitDate: Fri Dec 19 05:51:07 2014 +0000
URL: http://sources.gentoo.org/gitweb/?p=proj/lisp.git;a=commit;h=0dbb584d
Bump slime to 2.11. Rename old cvs slime-9999.ebuild to slime-2.0_p20130930.ebuild, remove the cvs stuff, change to EAPI=5. symlink slime-2.0_p20130214.ebuild -> slime-2.0_p20130930.ebuild. New slime-9999.ebuild uses git-r3.
---
.../slime/files/2.11/dont-load-sbcl-pprint.patch | 13 +++
.../slime/files/2.11/gentoo-changelog-date.patch | 20 +++++
app-emacs/slime/slime-2.0_p20130214.ebuild | 2 +-
app-emacs/slime/slime-2.0_p20130930.ebuild | 97 +++++++++++++++++++++-
...lime-2.0_p20130214.ebuild => slime-2.11.ebuild} | 0
app-emacs/slime/slime-9999.ebuild | 64 +++++++-------
6 files changed, 164 insertions(+), 32 deletions(-)
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 0000000..c7dafb6
--- /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 0000000..4d7669a
--- /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/slime-2.0_p20130214.ebuild b/app-emacs/slime/slime-2.0_p20130214.ebuild
index acf114b..f61696a 120000
--- a/app-emacs/slime/slime-2.0_p20130214.ebuild
+++ b/app-emacs/slime/slime-2.0_p20130214.ebuild
@@ -1 +1 @@
-slime-9999.ebuild
\ No newline at end of file
+slime-2.0_p20130930.ebuild
\ No newline at end of file
diff --git a/app-emacs/slime/slime-2.0_p20130930.ebuild b/app-emacs/slime/slime-2.0_p20130930.ebuild
deleted file mode 120000
index acf114b..0000000
--- a/app-emacs/slime/slime-2.0_p20130930.ebuild
+++ /dev/null
@@ -1 +0,0 @@
-slime-9999.ebuild
\ No newline at end of file
diff --git a/app-emacs/slime/slime-2.0_p20130930.ebuild b/app-emacs/slime/slime-2.0_p20130930.ebuild
new file mode 100644
index 0000000..c86f8c6
--- /dev/null
+++ b/app-emacs/slime/slime-2.0_p20130930.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=5
+
+inherit common-lisp-3 elisp eutils
+
+DESCRIPTION="SLIME, the Superior Lisp Interaction Mode (Extended)"
+HOMEPAGE="http://common-lisp.net/project/slime/"
+SRC_URI="http://dev.gentoo.org/~gienah/snapshots/${P}.tgz"
+S="${WORKDIR}/slime-${PV:5:4}-${PV:9:2}-${PV:11:2}"
+
+LICENSE="GPL-2 xref? ( xref.lisp )"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+IUSE="doc xref"
+
+RDEPEND="virtual/commonlisp
+ dev-lisp/asdf"
+DEPEND="${RDEPEND}
+ sys-apps/texinfo
+ doc? ( virtual/texi2dvi )"
+
+CLPACKAGE=swank
+CLSYSTEMS=swank
+SITEFILE=70${PN}-gentoo.el
+
+src_prepare() {
+ epatch "${FILESDIR}"/2.0_p20110617/fix-inspect-presentations.patch
+ epatch "${FILESDIR}"/2.0_p20130214/gentoo-module-load.patch
+ epatch "${FILESDIR}"/2.0_p20110617/gentoo-dont-call-init.patch
+
+ # Eliminate Debian-specific rule
+ sed -i '/^section :=/d' doc/Makefile || die "sed doc/Makefile failed"
+
+ # 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.0_p20130930/gentoo-changelog-date.patch
+ if [[ "${PV}" != "2.0_p20130214" ]]; then
+ # lately upstream have not updated ChangeLog, so hard code it to a later date.
+ SLIME_CHANGELOG_DATE="2013-09-30"
+ fi
+ 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 || 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 "${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,scm,goo} \
+ || die "Cannot install contribs"
+ common-lisp-install-sources 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.pdf
+}
diff --git a/app-emacs/slime/slime-2.0_p20130214.ebuild b/app-emacs/slime/slime-2.11.ebuild
similarity index 100%
copy from app-emacs/slime/slime-2.0_p20130214.ebuild
copy to app-emacs/slime/slime-2.11.ebuild
diff --git a/app-emacs/slime/slime-9999.ebuild b/app-emacs/slime/slime-9999.ebuild
index 6d2adf8..de49121 100644
--- a/app-emacs/slime/slime-9999.ebuild
+++ b/app-emacs/slime/slime-9999.ebuild
@@ -1,18 +1,17 @@
-# Copyright 1999-2013 Gentoo Foundation
+# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
-EAPI=4
+EAPI=5
-[[ ${PV} = *9999* ]] && CVS_ECLASS="cvs" || CVS_ECLASS=""
+[[ ${PV} = *9999* ]] && GIT_ECLASS="git-r3" || GIT_ECLASS=""
-inherit common-lisp-3 ${CVS_ECLASS} elisp eutils
+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="http://dev.gentoo.org/~gienah/snapshots/${P}.tgz"
- S="${WORKDIR}/slime-${PV:5:4}-${PV:9:2}-${PV:11:2}"
+ SRC_URI="https://github.com/slime/slime/archive/v${PV}.tar.gz -> ${P}.tar.gz"
fi
LICENSE="GPL-2 xref? ( xref.lisp )"
@@ -23,11 +22,12 @@ 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
+ >=sys-apps/texinfo-5.1
doc? ( virtual/texi2dvi )"
CLPACKAGE=swank
@@ -36,25 +36,19 @@ SITEFILE=70${PN}-gentoo.el
src_unpack() {
if [[ ${PV} == *9999* ]]; then
- ECVS_AUTH="pserver"
- ECVS_SERVER="common-lisp.net:/project/slime/cvsroot"
- ECVS_MODULE="slime"
- ECVS_USER="anonymous"
- ECVS_PASS="anonymous"
- ECVS_CVS_OPTIONS="-d"
- ECVS_LOCALNAME="${P}"
- cvs_src_unpack
+ EGIT_REPO_URI="https://github.com/slime/slime.git"
+ ${GIT_ECLASS}_src_unpack
fi
elisp_src_unpack
}
src_prepare() {
- epatch "${FILESDIR}"/2.0_p20110617/fix-inspect-presentations.patch
+ 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
-
- # Eliminate Debian-specific rule
- sed -i '/^section :=/d' doc/Makefile || die "sed doc/Makefile failed"
+ 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)
@@ -63,11 +57,17 @@ src_prepare() {
# 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.0_p20130930/gentoo-changelog-date.patch
- if [[ "${PV}" != "2.0_p20130214" ]]; then
- # lately upstream have not updated ChangeLog, so hard code it to a later date.
- SLIME_CHANGELOG_DATE="2013-09-30"
- fi
+ 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 \
@@ -82,7 +82,7 @@ src_prepare() {
src_compile() {
elisp-compile *.el || die
BYTECOMPFLAGS="${BYTECOMPFLAGS} -L contrib -l slime" \
- elisp-compile contrib/*.el || die
+ elisp-compile contrib/*.el lib/*.el || die
emake -j1 -C doc slime.info || die "Cannot build info docs"
if use doc; then
@@ -93,7 +93,7 @@ src_compile() {
src_install() {
## install core
- elisp-install ${PN} *.el "${FILESDIR}"/swank-loader.lisp \
+ 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"
@@ -105,14 +105,18 @@ src_install() {
common-lisp-install-asdf swank.asd
## install contribs
- elisp-install ${PN}/contrib/ contrib/*.{el,scm,goo} \
+ 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* ChangeLog HACKING NEWS PROBLEMS
- newdoc contrib/README README.contrib
+ 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/slime.pdf
+ use doc && dodoc doc/*.pdf
}
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2014-12-19 5:51 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-19 5:51 [gentoo-commits] proj/lisp:master commit in: app-emacs/slime/files/2.11/, app-emacs/slime/ Mark Wright
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox