summaryrefslogtreecommitdiff
path: root/dev-lisp
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
commit8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 (patch)
tree7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /dev-lisp
parent30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'dev-lisp')
-rw-r--r--dev-lisp/Manifest.gzbin5157 -> 3044 bytes
-rw-r--r--dev-lisp/abcl-1.5.014
-rw-r--r--dev-lisp/abcl/Manifest3
-rw-r--r--dev-lisp/abcl/abcl-1.5.0.ebuild34
-rw-r--r--dev-lisp/abcl/metadata.xml16
-rw-r--r--dev-lisp/alexandria-2017102913
-rw-r--r--dev-lisp/alexandria/Manifest4
-rw-r--r--dev-lisp/alexandria/alexandria-20171029.ebuild39
-rw-r--r--dev-lisp/alexandria/files/alexandria-fix-docstrings.patch29
-rw-r--r--dev-lisp/alexandria/metadata.xml44
-rw-r--r--dev-lisp/asdf-3.1.513
-rw-r--r--dev-lisp/asdf-3.3.113
-rw-r--r--dev-lisp/asdf-3.3.213
-rw-r--r--dev-lisp/asdf/Manifest9
-rw-r--r--dev-lisp/asdf/asdf-3.1.5.ebuild48
-rw-r--r--dev-lisp/asdf/asdf-3.3.1.ebuild52
-rw-r--r--dev-lisp/asdf/asdf-3.3.2.ebuild52
-rw-r--r--dev-lisp/asdf/files/gentoo-init.lisp12
-rw-r--r--dev-lisp/asdf/files/source-registry.conf5
-rw-r--r--dev-lisp/asdf/metadata.xml8
-rw-r--r--dev-lisp/cl-ppcre-2.0.1112
-rw-r--r--dev-lisp/cl-ppcre-unicode-2.0.1112
-rw-r--r--dev-lisp/cl-ppcre-unicode/Manifest3
-rw-r--r--dev-lisp/cl-ppcre-unicode/cl-ppcre-unicode-2.0.11.ebuild26
-rw-r--r--dev-lisp/cl-ppcre-unicode/metadata.xml22
-rw-r--r--dev-lisp/cl-ppcre/Manifest3
-rw-r--r--dev-lisp/cl-ppcre/cl-ppcre-2.0.11.ebuild30
-rw-r--r--dev-lisp/cl-ppcre/metadata.xml33
-rw-r--r--dev-lisp/cl-unicode-0.1.513
-rw-r--r--dev-lisp/cl-unicode/Manifest3
-rw-r--r--dev-lisp/cl-unicode/cl-unicode-0.1.5.ebuild42
-rw-r--r--dev-lisp/cl-unicode/metadata.xml29
-rw-r--r--dev-lisp/clisp-2.48-r113
-rw-r--r--dev-lisp/clisp-2.49-r913
-rw-r--r--dev-lisp/clisp-2.49.9013
-rw-r--r--dev-lisp/clisp-2.49.9213
-rw-r--r--dev-lisp/clisp/Manifest14
-rw-r--r--dev-lisp/clisp/clisp-2.48-r1.ebuild164
-rw-r--r--dev-lisp/clisp/clisp-2.49-r9.ebuild144
-rw-r--r--dev-lisp/clisp/clisp-2.49.90.ebuild140
-rw-r--r--dev-lisp/clisp/clisp-2.49.92.ebuild140
-rw-r--r--dev-lisp/clisp/files/clisp-2.49-bits_ipctypes_to_sys_ipc.patch21
-rw-r--r--dev-lisp/clisp/files/clisp-2.49-get_hostname.patch56
-rw-r--r--dev-lisp/clisp/files/clisp-2.49-tinfo.patch15
-rw-r--r--dev-lisp/clisp/files/clisp-2.49.90-after_glibc_cfree_bdb.patch185
-rw-r--r--dev-lisp/clisp/files/clisp-2.49.92-after_glibc_cfree_bdb.patch185
-rw-r--r--dev-lisp/clisp/metadata.xml30
-rw-r--r--dev-lisp/clozurecl-1.11.513
-rw-r--r--dev-lisp/clozurecl/Manifest7
-rw-r--r--dev-lisp/clozurecl/clozurecl-1.11.5.ebuild97
-rw-r--r--dev-lisp/clozurecl/metadata.xml11
-rw-r--r--dev-lisp/clx-0.7.514
-rw-r--r--dev-lisp/clx/Manifest3
-rw-r--r--dev-lisp/clx/clx-0.7.5.ebuild36
-rw-r--r--dev-lisp/clx/metadata.xml24
-rw-r--r--dev-lisp/cmucl-21c13
-rw-r--r--dev-lisp/cmucl/Manifest8
-rw-r--r--dev-lisp/cmucl/cmucl-21c.ebuild109
-rw-r--r--dev-lisp/cmucl/files/cmucl-21c-build.patch22
-rw-r--r--dev-lisp/cmucl/files/cmucl-21c-execstack-fixes.patch118
-rw-r--r--dev-lisp/cmucl/files/cmuclrc9
-rw-r--r--dev-lisp/cmucl/files/site-init.lisp.in56
-rw-r--r--dev-lisp/cmucl/metadata.xml37
-rw-r--r--dev-lisp/ecls-16.1.314
-rw-r--r--dev-lisp/ecls/Manifest6
-rw-r--r--dev-lisp/ecls/ecls-16.1.3.ebuild96
-rw-r--r--dev-lisp/ecls/files/README.Gentoo15
-rw-r--r--dev-lisp/ecls/files/ecls-16.1.3-build.patch10
-rw-r--r--dev-lisp/ecls/files/ecls-16.1.3-headers-gentoo.patch15
-rw-r--r--dev-lisp/ecls/metadata.xml22
-rw-r--r--dev-lisp/flexi-streams-1.0.1612
-rw-r--r--dev-lisp/flexi-streams-1.0.1712
-rw-r--r--dev-lisp/flexi-streams/Manifest5
-rw-r--r--dev-lisp/flexi-streams/flexi-streams-1.0.16.ebuild25
-rw-r--r--dev-lisp/flexi-streams/flexi-streams-1.0.17.ebuild25
-rw-r--r--dev-lisp/flexi-streams/metadata.xml27
-rw-r--r--dev-lisp/gcl-2.6.1014
-rw-r--r--dev-lisp/gcl-2.6.1214
-rw-r--r--dev-lisp/gcl/Manifest13
-rw-r--r--dev-lisp/gcl/files/64gcl-gentoo.el5
-rw-r--r--dev-lisp/gcl/files/bootstrap-gcl7
-rw-r--r--dev-lisp/gcl/files/gcl-2.6.12-gcc5.patch8
-rw-r--r--dev-lisp/gcl/files/gcl-gmp-6.patch8
-rw-r--r--dev-lisp/gcl/files/gcl-readline-6.3.patch18
-rw-r--r--dev-lisp/gcl/files/gcl-tcl-8.6.patch103
-rw-r--r--dev-lisp/gcl/gcl-2.6.10.ebuild153
-rw-r--r--dev-lisp/gcl/gcl-2.6.12.ebuild147
-rw-r--r--dev-lisp/gcl/metadata.xml17
-rw-r--r--dev-lisp/hyperspec-7.0-r19
-rw-r--r--dev-lisp/hyperspec/Manifest3
-rw-r--r--dev-lisp/hyperspec/hyperspec-7.0-r1.ebuild24
-rw-r--r--dev-lisp/hyperspec/metadata.xml8
-rw-r--r--dev-lisp/metadata.xml40
-rw-r--r--dev-lisp/sbcl-1.3.1113
-rw-r--r--dev-lisp/sbcl-1.3.2113
-rw-r--r--dev-lisp/sbcl-1.4.713
-rw-r--r--dev-lisp/sbcl-1.4.813
-rw-r--r--dev-lisp/sbcl-1.4.913
-rw-r--r--dev-lisp/sbcl/Manifest42
-rw-r--r--dev-lisp/sbcl/files/bsd-sockets-test-1.2.11.patch350
-rw-r--r--dev-lisp/sbcl/files/concurrency-test-1.2.6.patch24
-rw-r--r--dev-lisp/sbcl/files/concurrency-test-1.3.15.patch17
-rw-r--r--dev-lisp/sbcl/files/gentoo-fix_install_man.patch12
-rw-r--r--dev-lisp/sbcl/files/sb-posix-test-1.2.15.patch40
-rw-r--r--dev-lisp/sbcl/files/sbcl-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch22
-rw-r--r--dev-lisp/sbcl/files/sbcl-1.2.11-solaris.patch12
-rw-r--r--dev-lisp/sbcl/files/sbcl-1.2.13-verbose-build.patch25
-rw-r--r--dev-lisp/sbcl/files/sbcl-1.3.11-config.patch16
-rw-r--r--dev-lisp/sbcl/files/sbcl-1.3.19-bsd-sockets-test.patch363
-rw-r--r--dev-lisp/sbcl/files/sbcl-1.4.0-bsd-sockets-test.patch383
-rw-r--r--dev-lisp/sbcl/files/sbcl-1.4.0-verbose-build.patch29
-rw-r--r--dev-lisp/sbcl/metadata.xml36
-rw-r--r--dev-lisp/sbcl/sbcl-1.3.11.ebuild242
-rw-r--r--dev-lisp/sbcl/sbcl-1.3.21.ebuild237
-rw-r--r--dev-lisp/sbcl/sbcl-1.4.7.ebuild246
-rw-r--r--dev-lisp/sbcl/sbcl-1.4.8.ebuild246
-rw-r--r--dev-lisp/sbcl/sbcl-1.4.9.ebuild246
-rw-r--r--dev-lisp/trivial-gray-streams-2017083012
-rw-r--r--dev-lisp/trivial-gray-streams-9999999911
-rw-r--r--dev-lisp/trivial-gray-streams/Manifest4
-rw-r--r--dev-lisp/trivial-gray-streams/metadata.xml12
-rw-r--r--dev-lisp/trivial-gray-streams/trivial-gray-streams-20170830.ebuild17
-rw-r--r--dev-lisp/trivial-gray-streams/trivial-gray-streams-99999999.ebuild16
-rw-r--r--dev-lisp/uiop-3.1.511
-rw-r--r--dev-lisp/uiop-3.3.112
-rw-r--r--dev-lisp/uiop-3.3.212
-rw-r--r--dev-lisp/uiop/Manifest7
-rw-r--r--dev-lisp/uiop/metadata.xml8
-rw-r--r--dev-lisp/uiop/uiop-3.1.5.ebuild26
-rw-r--r--dev-lisp/uiop/uiop-3.3.1.ebuild27
-rw-r--r--dev-lisp/uiop/uiop-3.3.2.ebuild17
131 files changed, 5699 insertions, 393 deletions
diff --git a/dev-lisp/Manifest.gz b/dev-lisp/Manifest.gz
index c5fa4be8d2a9..d69f524bf58b 100644
--- a/dev-lisp/Manifest.gz
+++ b/dev-lisp/Manifest.gz
Binary files differ
diff --git a/dev-lisp/abcl-1.5.0 b/dev-lisp/abcl-1.5.0
deleted file mode 100644
index cef724c00075..000000000000
--- a/dev-lisp/abcl-1.5.0
+++ /dev/null
@@ -1,14 +0,0 @@
-DEFINED_PHASES=compile configure install preinst prepare setup
-DEPEND=>=virtual/jdk-1.5 >=dev-java/java-config-2.2.0-r3 >=dev-java/ant-core-1.8.2:0 >=dev-java/javatoolkit-0.3.0-r2
-DESCRIPTION=Armed Bear Common Lisp is a Common Lisp implementation for the JVM.
-EAPI=6
-HOMEPAGE=http://common-lisp.net/project/armedbear/
-IUSE=elibc_FreeBSD elibc_FreeBSD
-KEYWORDS=amd64 x86
-LICENSE=GPL-2
-RDEPEND=>=virtual/jre-1.5 >=dev-java/java-config-2.2.0-r3
-RESTRICT=mirror
-SLOT=0
-SRC_URI=http://abcl.org/releases/1.5.0/abcl-src-1.5.0.tar.gz
-_eclasses_=desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc java-ant-2 ea15ab9e838d1062abd6b53de2045d50 java-pkg-2 c4e6af2574fd1dc79b43a6e27af4b5fb java-utils-2 0ee72667014428e01a01df2345244cf3 ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf versionator 26ca8a8bd95d6a74122c08ba98a4ee72
-_md5_=c77f7b7f299d4cef47122c1e988ac238
diff --git a/dev-lisp/abcl/Manifest b/dev-lisp/abcl/Manifest
new file mode 100644
index 000000000000..09350e8c2cd8
--- /dev/null
+++ b/dev-lisp/abcl/Manifest
@@ -0,0 +1,3 @@
+DIST abcl-src-1.5.0.tar.gz 1187678 BLAKE2B 4c6993ab90d6fe12e93bf185ecdc16dd5c69ff5c65881e74db51ba9a8167e3a3de4b25ff9971084e92499f654aacec2a07757d100a5977944076476d47c17438 SHA512 d56c23a82103dfebb3361903af096f923738008e551f3b5e07e00f0423c8ade0b07a388b7834b5d79d9191863b38db2c17fa27bffd848d7cba88d6bb67e32db3
+EBUILD abcl-1.5.0.ebuild 816 BLAKE2B 622259ea3ddb2021630255dbad99de08c89d984fab4c4e6bc5de93a76369f087c30800b53e47f519d91f3f701a4e542331565b31a7d0d744e9dedb1796e7d36b SHA512 4b61bd1d66e585cf1e967080280e36831276274e566fab38f492052441e202016fd7f601abfbe24a272ac3b30c6b0c569633a6b578a3715bec00a3bbf78d564a
+MISC metadata.xml 509 BLAKE2B 484256eac69bd0c0bf0bffadc8513a1f9f7c90e22db8a45d3008517936aad0f00d028ab97987c954c3cd086c0e0824bba3969a24d1c544be47c2221f817bd5cc SHA512 7216031e2c4c73c0d0bcf4b454cfa7d859dc21cd6d1000792357dcda973e6ea78917d06077b283d0ed19bda53c01917fcccd562fab5770499b9cfae4dace1ef5
diff --git a/dev-lisp/abcl/abcl-1.5.0.ebuild b/dev-lisp/abcl/abcl-1.5.0.ebuild
new file mode 100644
index 000000000000..6cb5cefcfec9
--- /dev/null
+++ b/dev-lisp/abcl/abcl-1.5.0.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils java-pkg-2 java-ant-2
+
+MY_P=${PN}-src-${PV}
+
+DESCRIPTION="Armed Bear Common Lisp is a Common Lisp implementation for the JVM."
+HOMEPAGE="http://common-lisp.net/project/armedbear/"
+SRC_URI="http://abcl.org/releases/${PV}/${MY_P}.tar.gz"
+RESTRICT="mirror"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+DEPEND=">=virtual/jdk-1.5"
+RDEPEND=">=virtual/jre-1.5"
+
+S="${WORKDIR}"/${MY_P}
+
+src_compile() {
+ eant abcl.compile || die "Can't compile ABCL"
+ eant abcl.jar || die "Can't make ABCL jar archive"
+}
+
+src_install() {
+ java-pkg_dojar dist/abcl.jar
+ java-pkg_dolauncher ${PN} --java_args "-server -Xrs" --main org.armedbear.lisp.Main
+ dodoc README || die "Can't install README"
+}
diff --git a/dev-lisp/abcl/metadata.xml b/dev-lisp/abcl/metadata.xml
new file mode 100644
index 000000000000..0687231d2b7d
--- /dev/null
+++ b/dev-lisp/abcl/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>java@gentoo.org</email>
+ <name>Java</name>
+ </maintainer>
+ <longdescription>
+ Armed Bear Common Lisp (ABCL) is an implementation of ANSI Common
+ Lisp that runs in a Java virtual machine.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-lisp/alexandria-20171029 b/dev-lisp/alexandria-20171029
deleted file mode 100644
index 72e461d648f9..000000000000
--- a/dev-lisp/alexandria-20171029
+++ /dev/null
@@ -1,13 +0,0 @@
-DEFINED_PHASES=compile install prepare
-DEPEND=doc? ( sys-apps/texinfo )
-DESCRIPTION=A collection of portable utilities for Common Lisp
-EAPI=6
-HOMEPAGE=http://common-lisp.net/project/alexandria/
-IUSE=doc
-KEYWORDS=~amd64 ~ppc ~sparc ~x86
-LICENSE=public-domain
-PDEPEND=virtual/commonlisp
-SLOT=0
-SRC_URI=mirror://gentoo/alexandria-20171029.tar.bz2
-_eclasses_=common-lisp-3 3f23602a5efddf587c5205de7b6de7f8 desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=b8bf26f69fa2c28044cda34308be83e9
diff --git a/dev-lisp/alexandria/Manifest b/dev-lisp/alexandria/Manifest
new file mode 100644
index 000000000000..cdbcd89c0d14
--- /dev/null
+++ b/dev-lisp/alexandria/Manifest
@@ -0,0 +1,4 @@
+AUX alexandria-fix-docstrings.patch 1128 BLAKE2B 2f632045dd9871665b436aff50bf2e2a66058c4cde46e6f337abc98a9252fbdb7ccc69e68fc555e367057e3f9985ae559cee5dce2e2d8482098f7c47e413185b SHA512 04b80319839f3f39f1156a7604eb2565419a203e9c5520f6fd773f1865b57bade58e13769a26c03292ef666839b89fd5abb6dd5f952718513449f4862be5d2e9
+DIST alexandria-20171029.tar.bz2 45812 BLAKE2B 812f43483a0b25e4c4d481deec90ac1681a3c76062f5bf43b14530b239b2978e8d0cf735249b1093298db2761dc80a7d81e54da1e763db469b691b60d6db5d20 SHA512 a0a7386af94bae00139e3d06306169883cb1c5498c84d7a6db552a5dfa2ff8516d62609cb8a059c11f4200d507737ba99032d81b5a97112a2f3e7850572060e2
+EBUILD alexandria-20171029.ebuild 879 BLAKE2B 11cae5a30360b11241d7ccdde4d70af27b1e0afd2d778f6917ead0c74959bd25db30cb95ec824d24a09d27076af9b8082adcb27738fdc2b51078681d54248464 SHA512 60ab44f59f228537ebde62f1c626664e2b11044e29207a18810b70b54c39a4f34de5e536b0f397e5f699de248f71e2dd43cc5a561eafc606c07d7fab93d1773c
+MISC metadata.xml 2284 BLAKE2B 01229d7d3c1f1b8aafbfc3dec01c2d7a1ab4fa055e4ce8b796d5337b297e44c7e3c34faacdfc98176129fabaa57ea2fb05adb1fabe4ff9e737d9fec8769d446e SHA512 b7bcb6e83349e84327ca1b07eb3645b9a682bd8fb0d39569e0c868c9b075cdea4c50101697e354952e64216e1a65617072d137ef2a683bab81afa1d889075838
diff --git a/dev-lisp/alexandria/alexandria-20171029.ebuild b/dev-lisp/alexandria/alexandria-20171029.ebuild
new file mode 100644
index 000000000000..bd042f0736f8
--- /dev/null
+++ b/dev-lisp/alexandria/alexandria-20171029.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit common-lisp-3 eutils
+
+DESCRIPTION="A collection of portable utilities for Common Lisp"
+HOMEPAGE="http://common-lisp.net/project/alexandria/"
+if [[ ${PV} == 9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.common-lisp.net/alexandria/alexandria.git"
+else
+ SRC_URI="mirror://gentoo/${P}.tar.bz2"
+ KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+fi
+
+LICENSE="public-domain"
+SLOT="0"
+IUSE="doc"
+
+DEPEND="doc? ( sys-apps/texinfo )"
+RDEPEND=""
+
+src_prepare() {
+ eapply "${FILESDIR}/${PN}-fix-docstrings.patch"
+ eapply_user
+}
+
+src_compile() {
+ use doc && emake -C doc
+}
+
+src_install() {
+ common-lisp-install-sources -t all *.lisp LICENCE
+ common-lisp-install-asdf
+ dodoc README AUTHORS
+ use doc && doinfo doc/${PN}.info && dodoc doc/{"${PN}.html","${PN}.pdf"}
+}
diff --git a/dev-lisp/alexandria/files/alexandria-fix-docstrings.patch b/dev-lisp/alexandria/files/alexandria-fix-docstrings.patch
new file mode 100644
index 000000000000..747c9e3bf59d
--- /dev/null
+++ b/dev-lisp/alexandria/files/alexandria-fix-docstrings.patch
@@ -0,0 +1,29 @@
+diff -Nuar a/doc/docstrings.lisp b/doc/docstrings.lisp
+--- a/doc/docstrings.lisp 2016-12-11 00:04:21.272877121 +0100
++++ b/doc/docstrings.lisp 2016-12-11 00:05:03.752876882 +0100
+@@ -718,7 +718,7 @@
+ ;; sbcl.texinfo defines macros that expand @&key and friends to &key.
+ (mapcar (lambda (name)
+ (if (member name lambda-list-keywords)
+- (format nil "@~A" name)
++ (format nil "~A" name)
+ name))
+ (lambda-list doc)))))
+
+@@ -833,11 +833,11 @@
+ (flet ((macro (name)
+ (let ((string (string-downcase name)))
+ (format *texinfo-output* "@macro ~A~%~A~%@end macro~%" string string))))
+- (macro '&allow-other-keys)
+- (macro '&optional)
+- (macro '&rest)
+- (macro '&key)
+- (macro '&body)))
++ (macro 'allow-other-keys)
++ (macro 'optional)
++ (macro 'rest)
++ (macro 'key)
++ (macro 'body)))
+
+ (defun generate-includes (directory packages &key (base-package :cl-user))
+ "Create files in `directory' containing Texinfo markup of all
diff --git a/dev-lisp/alexandria/metadata.xml b/dev-lisp/alexandria/metadata.xml
new file mode 100644
index 000000000000..937bb81734f3
--- /dev/null
+++ b/dev-lisp/alexandria/metadata.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+ </maintainer>
+ <longdescription lang="en">
+ Alexandria is a project and a library.
+
+ As a project Alexandria's goal is to reduce duplication of effort and
+ improve portability of Common Lisp code according to its own
+ idiosyncratic and rather conservative aesthetic. What this actually
+ means is open to debate, but each project member has a veto on all
+ project activities, so a degree of conservativism is inevitable.
+
+ As a library Alexandria is one of the means by which the project
+ strives for its goals. Alexandria is a collection of portable public
+ domain utilities that meet the following constraints:
+
+ * Utilities, not extensions: Alexandria will not contain conceptual
+ extensions to Common Lisp, instead limiting itself to tools and
+ utilities that fit well within the framework of standard ANSI Common
+ Lisp. Test-frameworks, system definitions, logging facilities,
+ serialization layers, etc. are all outside the scope of Alexandria
+ as a library, though well within the scope of Alexandria as a project.
+ * Conservative: Alexandria limits itself to what project members
+ consider conservative utilities. Alexandria does not and will not
+ include anaphoric constructs, loop-like binding macros, etc.
+ * Portable: Alexandria limits itself to portable parts of Common
+ Lisp. Even apparently conservative and usefull functions remain
+ outside the scope of Alexandria if they cannot be implemented
+ portably. Portability is here defined as portable within a
+ conforming implementation: implementation bugs are not considered
+ portability issues.
+ * Team player: Alexandria will not (initially, at least) subsume
+ or provide functionality for which good-quality special-purpose
+ packages exist, like split-sequence. Instead, third party packages
+ such as that may be "blessed".
+ </longdescription>
+ <upstream>
+ <remote-id type="gitlab">alexandria/alexandria</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lisp/asdf-3.1.5 b/dev-lisp/asdf-3.1.5
deleted file mode 100644
index c5f62eb05122..000000000000
--- a/dev-lisp/asdf-3.1.5
+++ /dev/null
@@ -1,13 +0,0 @@
-DEFINED_PHASES=compile install
-DEPEND=!dev-lisp/cl-asdf !<dev-lisp/asdf-2.33-r3 doc? ( virtual/texi2dvi )
-DESCRIPTION=ASDF is Another System Definition Facility for Common Lisp
-EAPI=5
-HOMEPAGE=http://common-lisp.net/project/asdf/
-IUSE=doc
-KEYWORDS=alpha amd64 ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris
-LICENSE=MIT
-PDEPEND=~dev-lisp/uiop-3.1.5
-SLOT=0/3.1.5
-SRC_URI=http://common-lisp.net/project/asdf/archives/asdf-3.1.5.tar.gz
-_eclasses_=desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e prefix e51c7882b7b721e54e684f7eb143cbfe preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=833e25a8c6fe6830c3f9433d227f690d
diff --git a/dev-lisp/asdf-3.3.1 b/dev-lisp/asdf-3.3.1
deleted file mode 100644
index 1ff6091f76fc..000000000000
--- a/dev-lisp/asdf-3.3.1
+++ /dev/null
@@ -1,13 +0,0 @@
-DEFINED_PHASES=compile install test
-DEPEND=!dev-lisp/cl-asdf !<dev-lisp/asdf-2.33-r3 doc? ( virtual/texi2dvi )
-DESCRIPTION=ASDF is Another System Definition Facility for Common Lisp
-EAPI=6
-HOMEPAGE=http://common-lisp.net/project/asdf/
-IUSE=doc
-KEYWORDS=~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris
-LICENSE=MIT
-PDEPEND=virtual/commonlisp ~dev-lisp/uiop-3.3.1 virtual/commonlisp
-SLOT=0/3.3.1
-SRC_URI=http://common-lisp.net/project/asdf/archives/asdf-3.3.1.tar.gz
-_eclasses_=common-lisp-3 3f23602a5efddf587c5205de7b6de7f8 desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e prefix e51c7882b7b721e54e684f7eb143cbfe preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=a70320bef3947dc0da446b6eead58947
diff --git a/dev-lisp/asdf-3.3.2 b/dev-lisp/asdf-3.3.2
deleted file mode 100644
index 2b772bdb6372..000000000000
--- a/dev-lisp/asdf-3.3.2
+++ /dev/null
@@ -1,13 +0,0 @@
-DEFINED_PHASES=compile install test
-DEPEND=!dev-lisp/cl-asdf !<dev-lisp/asdf-2.33-r3 doc? ( virtual/texi2dvi )
-DESCRIPTION=ASDF is Another System Definition Facility for Common Lisp
-EAPI=6
-HOMEPAGE=http://common-lisp.net/project/asdf/
-IUSE=doc
-KEYWORDS=~alpha ~amd64 ~ia64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris
-LICENSE=MIT
-PDEPEND=virtual/commonlisp ~dev-lisp/uiop-3.3.2 virtual/commonlisp
-SLOT=0/3.3.2
-SRC_URI=http://common-lisp.net/project/asdf/archives/asdf-3.3.2.tar.gz
-_eclasses_=common-lisp-3 3f23602a5efddf587c5205de7b6de7f8 desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e prefix e51c7882b7b721e54e684f7eb143cbfe preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=fe93764c4c8f715206940d579450ac9d
diff --git a/dev-lisp/asdf/Manifest b/dev-lisp/asdf/Manifest
new file mode 100644
index 000000000000..7623fdaa9987
--- /dev/null
+++ b/dev-lisp/asdf/Manifest
@@ -0,0 +1,9 @@
+AUX gentoo-init.lisp 354 BLAKE2B 201ba124983acd9f86a35742079fa9d9af3c7c5b29c2c2f3021e07907dbd808a59bc82931558aea8bfb6821f600d0b2944eb5a3b518474e203323f7210c4685c SHA512 28a24bdc25b7f2304b1c837eb1ca44d5006de6bae1d8e5cfd2bc4bac800dfad9c9c7b3964fd0667c89da95051a42da9054bda3f94202867dbae7b02dfd2b03e4
+AUX source-registry.conf 138 BLAKE2B 1adc9396d0d23b361c52d70b1c10d7f5e031776b1a5bb168fe55a2fb90e03a6771511cfe52a26256620988f030cdc51d75e0ac3f433eb8a500aa5d8c119e0427 SHA512 244ce3e7cd9c5f483f99c8e43f2d62d16ea35b25897029b7b9038fe5412752f7d8c7ea11396fd87c218e77c63c5efe2f27c2a11fe49ffb79908f8e7b85bf64c9
+DIST asdf-3.1.5.tar.gz 400359 BLAKE2B 586a66799a37259694baa673f2849e183fac5fedfe5ff5c92529d47fc0954d40b48bbc095db926b9ea2214b551729c269d0925e4396a52310b72fd5f21842f49 SHA512 937d45eabea0853cd1b2e78e84cf33e7b55065857ffcf49fd87ccd60e21ae09c6dc7ab3649d48b37aeb1beaeeaf6c816e5ce035f0283707105296fb976044516
+DIST asdf-3.3.1.tar.gz 479255 BLAKE2B 5161b79741a52721eaa4da80a61bbe51e924967ecb744a087fdcbd99407abcc42faf39eafe6d30af7dd8af751a80caaf23e93ce42aa5f584123a1e8b528cc613 SHA512 bf5efec4518eb5312ce743c0fbe60c587bebfe26c36c833c163d67bf8631e18eeb293f2185e547f6be10da061a17f024d9f4a3a0808727d7b9b3a7d7a0faf133
+DIST asdf-3.3.2.tar.gz 482616 BLAKE2B 860728720ccb02debee6a826d8b27bfd8f5fea3daa529ecfc8d2f5564c77340a38582ccbccf4f311c644bdeccd7348004690929185aa70c3dc0f6b4124616df8 SHA512 f8e065383d6e82754c87d309a8b500ad213e09d1375792fd475eb169d9f880d97b26072e608046d61c83512645781cded09dcff22052e214e8e3639f2a978c74
+EBUILD asdf-3.1.5.ebuild 1136 BLAKE2B 983ecadd2a3d49d523d20ccc91a311fd634663c54e240802e88280711b1e83bc40cf2d5a8a5ee9db6ca339d23e78abe64be23a3f53ee44000f30ee843184f5b0 SHA512 40f2823eb5bb0d54907b10f5cd9b3b9a73afea614ff49f9f1ea1c3bb3c350f092bbbffe85e051c2e21bf4c4ee2186889c2e3876a12a9d47cc5d44190ee12ba47
+EBUILD asdf-3.3.1.ebuild 1308 BLAKE2B 54b301b57efd26260595832c141837aa3dce1a6b7fd6a0f40338b756801401e161694f1194be0f94f79ff2bc7f3b449df6e159a84fbf6e4d8e1bf2f7b1689f6c SHA512 1455ea2aac7af52856c84f19646a782ef469e68999746ad0b83d207aaa33b97c2d21be67e28939ce9a87da7d7a8b72da5db3aacf4a856b00f6dafa4467a3646c
+EBUILD asdf-3.3.2.ebuild 1321 BLAKE2B a35727fd7619c5ab761bb034a5ad839eef0aee947b1a94eb5adbad099f7724f38d75d31a55bd372d19c5b4d52996f3470802f8a691e254fecff28c4272aa2173 SHA512 e849a7c753d751e82b3d317dd1b77c7225c592e86d8e21e6245b27c88beb564eeef7453048d1f99493609ebe80501fe14509d8415dee1d4fb3003eb7914ea9d5
+MISC metadata.xml 261 BLAKE2B 161dea7ab371cbcbc08b8aac63e402f9fe994c08d55f2291360e900bf73e21f2c2ea67b6fcc3cb000f1cef03d1c41c6d2e5e16dd06d6916ec90d4e54a1ba3dd7 SHA512 fb754c4ed3579db5dbe303197a05647b7cfab0a3fe47fd2140d5f77641be752d10ccf49a9c267406a0f3ba3dcda8831f778b9596d723f65aff10142bfad60d3d
diff --git a/dev-lisp/asdf/asdf-3.1.5.ebuild b/dev-lisp/asdf/asdf-3.1.5.ebuild
new file mode 100644
index 000000000000..8a067789c189
--- /dev/null
+++ b/dev-lisp/asdf/asdf-3.1.5.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils prefix
+
+DESCRIPTION="ASDF is Another System Definition Facility for Common Lisp"
+HOMEPAGE="http://common-lisp.net/project/asdf/"
+SRC_URI="http://common-lisp.net/project/${PN}/archives/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="doc"
+
+SLOT="0/${PVR}"
+
+DEPEND="!dev-lisp/cl-${PN}
+ !<dev-lisp/asdf-2.33-r3
+ doc? ( virtual/texi2dvi )"
+RDEPEND=""
+PDEPEND="~dev-lisp/uiop-${PV}"
+
+#S="${WORKDIR}"
+
+src_compile() {
+ make
+ use doc && make doc
+}
+
+src_install() {
+ insinto /usr/share/common-lisp/source/${PN}
+ doins -r build version.lisp-expr
+ dodoc README.md TODO
+ dohtml doc/*.{html,css,ico,png}
+ if use doc; then
+ dohtml -r doc/index.html
+ insinto /usr/share/doc/${PF}
+ #doins doc/${PN}.pdf
+ fi
+
+ insinto /etc/common-lisp
+ cd "${T}"
+ cp "${FILESDIR}"/gentoo-init.lisp "${FILESDIR}"/source-registry.conf .
+ eprefixify gentoo-init.lisp source-registry.conf
+ doins gentoo-init.lisp source-registry.conf
+}
diff --git a/dev-lisp/asdf/asdf-3.3.1.ebuild b/dev-lisp/asdf/asdf-3.3.1.ebuild
new file mode 100644
index 000000000000..41961826139a
--- /dev/null
+++ b/dev-lisp/asdf/asdf-3.3.1.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils prefix common-lisp-3
+
+DESCRIPTION="ASDF is Another System Definition Facility for Common Lisp"
+HOMEPAGE="http://common-lisp.net/project/asdf/"
+SRC_URI="http://common-lisp.net/project/${PN}/archives/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="doc"
+
+SLOT="0/${PVR}"
+
+DEPEND="!dev-lisp/cl-${PN}
+ !<dev-lisp/asdf-2.33-r3
+ doc? ( virtual/texi2dvi )"
+PDEPEND="virtual/commonlisp
+ ~dev-lisp/uiop-${PV}"
+
+install_docs() {
+ (cd doc ; dodoc *.{html,css,ico,png} "${PN}.pdf" ; dodoc -r asdf )
+ if has_version ">=dev-lisp/sbcl-1.4.0" ; then
+ (cd doc ; doinfo "${PN}.info" )
+ fi
+}
+
+src_compile() {
+ emake
+ use doc && emake -C doc
+}
+
+src_test() {
+ common-lisp-export-impl-args "$(common-lisp-find-lisp-impl)"
+ test/run-tests.sh ${CL_BINARY}
+}
+
+src_install() {
+ insinto "${CLSOURCEROOT}/${PN}"
+ doins -r build version.lisp-expr
+ dodoc README.md TODO
+ use doc && install_docs
+ insinto /etc/common-lisp
+ cd "${T}" || die
+ cp "${FILESDIR}/gentoo-init.lisp" "${FILESDIR}/source-registry.conf" . || die
+ eprefixify gentoo-init.lisp source-registry.conf
+ doins gentoo-init.lisp source-registry.conf
+}
diff --git a/dev-lisp/asdf/asdf-3.3.2.ebuild b/dev-lisp/asdf/asdf-3.3.2.ebuild
new file mode 100644
index 000000000000..54c65a46a31f
--- /dev/null
+++ b/dev-lisp/asdf/asdf-3.3.2.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils prefix common-lisp-3
+
+DESCRIPTION="ASDF is Another System Definition Facility for Common Lisp"
+HOMEPAGE="http://common-lisp.net/project/asdf/"
+SRC_URI="http://common-lisp.net/project/${PN}/archives/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="doc"
+
+SLOT="0/${PVR}"
+
+DEPEND="!dev-lisp/cl-${PN}
+ !<dev-lisp/asdf-2.33-r3
+ doc? ( virtual/texi2dvi )"
+PDEPEND="virtual/commonlisp
+ ~dev-lisp/uiop-${PV}"
+
+install_docs() {
+ (cd doc ; dodoc *.{html,css,ico,png} "${PN}.pdf" ; dodoc -r asdf )
+ if has_version ">=dev-lisp/sbcl-1.4.0" ; then
+ (cd doc ; doinfo "${PN}.info" )
+ fi
+}
+
+src_compile() {
+ emake
+ use doc && emake -C doc
+}
+
+src_test() {
+ common-lisp-export-impl-args "$(common-lisp-find-lisp-impl)"
+ test/run-tests.sh ${CL_BINARY}
+}
+
+src_install() {
+ insinto "${CLSOURCEROOT}/${PN}"
+ doins -r build version.lisp-expr
+ dodoc README.md TODO
+ use doc && install_docs
+ insinto /etc/common-lisp
+ cd "${T}" || die
+ cp "${FILESDIR}/gentoo-init.lisp" "${FILESDIR}/source-registry.conf" . || die
+ eprefixify gentoo-init.lisp source-registry.conf
+ doins gentoo-init.lisp source-registry.conf
+}
diff --git a/dev-lisp/asdf/files/gentoo-init.lisp b/dev-lisp/asdf/files/gentoo-init.lisp
new file mode 100644
index 000000000000..1a855466a23a
--- /dev/null
+++ b/dev-lisp/asdf/files/gentoo-init.lisp
@@ -0,0 +1,12 @@
+(in-package #:cl-user)
+
+#-(or cmu ccl ecl sbcl)
+(let ((*compile-print* nil)
+ (*compile-verbose* nil)
+ #+cmu (ext:*gc-verbose* nil))
+ (handler-bind ((warning #'muffle-warning))
+ (load #p"@GENTOO_PORTAGE_EPREFIX@/usr/share/common-lisp/source/asdf/build/asdf.lisp"
+ :print nil :verbose nil)))
+
+#+(or cmu ccl ecl sbcl)
+(require :asdf)
diff --git a/dev-lisp/asdf/files/source-registry.conf b/dev-lisp/asdf/files/source-registry.conf
new file mode 100644
index 000000000000..d8cfd7146df9
--- /dev/null
+++ b/dev-lisp/asdf/files/source-registry.conf
@@ -0,0 +1,5 @@
+;; -*- Mode: Lisp; -*-
+
+(:source-registry
+ (:directory "@GENTOO_PORTAGE_EPREFIX@/usr/share/common-lisp/systems")
+ :inherit-configuration)
diff --git a/dev-lisp/asdf/metadata.xml b/dev-lisp/asdf/metadata.xml
new file mode 100644
index 000000000000..7ea645c67e72
--- /dev/null
+++ b/dev-lisp/asdf/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+</maintainer>
+</pkgmetadata>
diff --git a/dev-lisp/cl-ppcre-2.0.11 b/dev-lisp/cl-ppcre-2.0.11
deleted file mode 100644
index 03dfa526fc7e..000000000000
--- a/dev-lisp/cl-ppcre-2.0.11
+++ /dev/null
@@ -1,12 +0,0 @@
-DEFINED_PHASES=compile install unpack
-DESCRIPTION=CL-PPCRE is a portable regular expression library for Common Lisp.
-EAPI=6
-HOMEPAGE=http://weitz.de/cl-ppcre/ http://www.cliki.net/cl-ppcre
-KEYWORDS=amd64 ~ppc ~sparc x86
-LICENSE=BSD-2
-PDEPEND=dev-lisp/cl-ppcre-unicode virtual/commonlisp
-RDEPEND=dev-lisp/flexi-streams
-SLOT=0
-SRC_URI=https://github.com/edicl/cl-ppcre/archive/v2.0.11.tar.gz -> cl-ppcre-2.0.11.tar.gz
-_eclasses_=common-lisp-3 3f23602a5efddf587c5205de7b6de7f8 desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=e15b6bcd65bdee2db0ae2101d607d833
diff --git a/dev-lisp/cl-ppcre-unicode-2.0.11 b/dev-lisp/cl-ppcre-unicode-2.0.11
deleted file mode 100644
index 00a4eec39ee2..000000000000
--- a/dev-lisp/cl-ppcre-unicode-2.0.11
+++ /dev/null
@@ -1,12 +0,0 @@
-DEFINED_PHASES=compile install
-DESCRIPTION=CL-PPCRE is a portable regular expression library for Common Lisp.
-EAPI=6
-HOMEPAGE=http://weitz.de/cl-ppcre/ http://www.cliki.net/cl-ppcre
-KEYWORDS=amd64 ~ppc ~sparc x86
-LICENSE=BSD-2
-PDEPEND=virtual/commonlisp
-RDEPEND==dev-lisp/cl-ppcre-2.0.11 dev-lisp/cl-unicode
-SLOT=0
-SRC_URI=https://github.com/edicl/cl-ppcre/archive/v2.0.11.tar.gz -> cl-ppcre-2.0.11.tar.gz
-_eclasses_=common-lisp-3 3f23602a5efddf587c5205de7b6de7f8 desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=2efd9c3ef0e868f83310baf034ae0205
diff --git a/dev-lisp/cl-ppcre-unicode/Manifest b/dev-lisp/cl-ppcre-unicode/Manifest
new file mode 100644
index 000000000000..319f01746f3d
--- /dev/null
+++ b/dev-lisp/cl-ppcre-unicode/Manifest
@@ -0,0 +1,3 @@
+DIST cl-ppcre-2.0.11.tar.gz 158418 BLAKE2B d65aa1a565dbe6c9d10e4dafe323ab1332929e46e00ea2e9775ad940ed5ac983520c0e423daa17bf0173420d2269b5af2fd9b52f8d3dbcb0c778e03e61ef052d SHA512 c693c568065c0571e5509599018e58951425a857cec3793312af0d22e248e32233f924eafc8ba67fbedad38cb3f4efa11343b785b073eaac53c31871422488b1
+EBUILD cl-ppcre-unicode-2.0.11.ebuild 639 BLAKE2B 85753d445f675c5b3d5be5360dbc63f68c3d03eda705ad2528342911ad815b0e2b4fe7b519b7c92b3e4c89443c635e61c2526ee28b1d1f25e08fc2bc3af5dd39 SHA512 2cd35a3f05ca5e96febb6886abce59229c65abf7b662b32deb8ed47f560606b6e6030a94bb9d19a2ebd43b6bbca1a989b78861dbaa2b82240c9f3162809bbe80
+MISC metadata.xml 647 BLAKE2B d8bfd48db3b7e6b455bbfdb1aeba49c14c3d958ca17089165d18776fc7a18068fdd8080e85944ed57cdb5d9b15ec504511396046308452012551706060b06c8b SHA512 297e93b9bb8205c5729834dcb3f5686001f0f1aeedc1df83701c1350a853104463b37dc902013cd6cbaeddc1b83b1102f29ae55ab7b8f0ad98b6fccecef2ef28
diff --git a/dev-lisp/cl-ppcre-unicode/cl-ppcre-unicode-2.0.11.ebuild b/dev-lisp/cl-ppcre-unicode/cl-ppcre-unicode-2.0.11.ebuild
new file mode 100644
index 000000000000..34ef1cfdf678
--- /dev/null
+++ b/dev-lisp/cl-ppcre-unicode/cl-ppcre-unicode-2.0.11.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit common-lisp-3
+
+DESCRIPTION="CL-PPCRE is a portable regular expression library for Common Lisp."
+HOMEPAGE="http://weitz.de/cl-ppcre/
+ http://www.cliki.net/cl-ppcre"
+SRC_URI="https://github.com/edicl/cl-ppcre/archive/v${PV}.tar.gz -> cl-ppcre-${PV}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~sparc x86"
+IUSE=""
+
+RDEPEND="=dev-lisp/cl-ppcre-${PV}
+ dev-lisp/cl-unicode"
+
+S="${WORKDIR}/cl-ppcre-${PV}"
+
+src_install() {
+ common-lisp-install-sources ${PN}/ test/unicode*
+ common-lisp-install-asdf ${PN}
+}
diff --git a/dev-lisp/cl-ppcre-unicode/metadata.xml b/dev-lisp/cl-ppcre-unicode/metadata.xml
new file mode 100644
index 000000000000..f7036b0f160e
--- /dev/null
+++ b/dev-lisp/cl-ppcre-unicode/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+ </maintainer>
+ <longdescription>
+ CL-PPCRE is a portable regular expression library for Common Lisp
+ which has the following features:
+
+ * compatible with Perl
+ * fast (outperforms Perl)
+ * portable (ANSI Common Lisp)
+ * thread-safe
+ * includes convenience features
+ * well-documented.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">edicl/cl-ppcre</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lisp/cl-ppcre/Manifest b/dev-lisp/cl-ppcre/Manifest
new file mode 100644
index 000000000000..41258222b4bd
--- /dev/null
+++ b/dev-lisp/cl-ppcre/Manifest
@@ -0,0 +1,3 @@
+DIST cl-ppcre-2.0.11.tar.gz 158418 BLAKE2B d65aa1a565dbe6c9d10e4dafe323ab1332929e46e00ea2e9775ad940ed5ac983520c0e423daa17bf0173420d2269b5af2fd9b52f8d3dbcb0c778e03e61ef052d SHA512 c693c568065c0571e5509599018e58951425a857cec3793312af0d22e248e32233f924eafc8ba67fbedad38cb3f4efa11343b785b073eaac53c31871422488b1
+EBUILD cl-ppcre-2.0.11.ebuild 714 BLAKE2B 6ac97f59ba11da102219ac54c28ef70b8880d0104296506c1f4fb348f508c9029d05dbfdf94a943c98e515dd13c6884f6b836812896f4d673c3bbe30473a99d8 SHA512 989a3f6dbf2468d8bf3dfb8e70a6189acd7fc63cee69bea26a81519d777a96b03d7722a2d9651f7cf82d1933dba1a5a912d0782bb520300dbc78e875caf551cc
+MISC metadata.xml 1060 BLAKE2B 0cf37fa128f6a0d3995cee3f201206f60258ec3d9ceb57850880ab12d9b05671ae6061e7970784252bce9f340929dc59f3d48416c55069c8e9380e6bda38436f SHA512 fac4dca2369c4b636209e7406122b2dbb490a2ba35bd0d4e04ec58e6777f09ef5a1a0a4ddecb07beee2aa34a887e819acacac195c1a928ba6c1e06a7af7204b4
diff --git a/dev-lisp/cl-ppcre/cl-ppcre-2.0.11.ebuild b/dev-lisp/cl-ppcre/cl-ppcre-2.0.11.ebuild
new file mode 100644
index 000000000000..df216d535ff0
--- /dev/null
+++ b/dev-lisp/cl-ppcre/cl-ppcre-2.0.11.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit common-lisp-3
+
+DESCRIPTION="CL-PPCRE is a portable regular expression library for Common Lisp."
+HOMEPAGE="http://weitz.de/cl-ppcre/
+ http://www.cliki.net/cl-ppcre"
+SRC_URI="https://github.com/edicl/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~sparc x86"
+IUSE=""
+
+RDEPEND="dev-lisp/flexi-streams"
+PDEPEND="dev-lisp/cl-ppcre-unicode"
+
+src_unpack() {
+ unpack ${A} && cd "${S}"
+ rm -rf cl-ppcre-unicode test/unicode*
+}
+
+src_install() {
+ common-lisp-install-sources *.lisp test/
+ common-lisp-install-asdf ${PN}
+ dodoc CHANGELOG doc/index.html
+}
diff --git a/dev-lisp/cl-ppcre/metadata.xml b/dev-lisp/cl-ppcre/metadata.xml
new file mode 100644
index 000000000000..36bca3f8dbdf
--- /dev/null
+++ b/dev-lisp/cl-ppcre/metadata.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+ </maintainer>
+ <longdescription lang="en">
+ CL-PPCRE is a portable regular expression library for Common Lisp
+ which has the following features:
+
+ * compatible with Perl
+ * fast (outperforms Perl)
+ * portable (ANSI Common Lisp)
+ * thread-safe
+ * includes convenience features
+ * well-documented
+ </longdescription>
+ <longdescription lang="es">
+ CL-PPCRE es una biblioteca de expressiones regulares portable
+ para Common Lisp que tiene las siguientes características:
+
+ * Compatible con Perl
+ * Rápida (más rápida que la versión para Perl)
+ * Portable (ANSI Common Lisp)
+ * Segura en la ejecución de hilos (thread-safe)
+ * Incluye características para hacerla cómoda
+ * Bien documentada
+ </longdescription>
+ <upstream>
+ <remote-id type="github">edicl/cl-ppcre</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lisp/cl-unicode-0.1.5 b/dev-lisp/cl-unicode-0.1.5
deleted file mode 100644
index 412731698583..000000000000
--- a/dev-lisp/cl-unicode-0.1.5
+++ /dev/null
@@ -1,13 +0,0 @@
-DEFINED_PHASES=compile configure install
-DEPEND=virtual/commonlisp dev-lisp/flexi-streams
-DESCRIPTION=Provides Common Lisp implementations with knowledge about Unicode characters.
-EAPI=6
-HOMEPAGE=http://weitz.de/cl-unicode/
-KEYWORDS=amd64 ~ppc ~sparc x86
-LICENSE=BSD-2
-PDEPEND=virtual/commonlisp
-RDEPEND=dev-lisp/cl-ppcre
-SLOT=0
-SRC_URI=https://github.com/edicl/cl-unicode/archive/v0.1.5.tar.gz -> cl-unicode-0.1.5.tar.gz
-_eclasses_=common-lisp-3 3f23602a5efddf587c5205de7b6de7f8 desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf xdg-utils f2c8335407f0b935b0a96d4adf23ef25
-_md5_=24dd4a26e02a9e53256deca583e60d88
diff --git a/dev-lisp/cl-unicode/Manifest b/dev-lisp/cl-unicode/Manifest
new file mode 100644
index 000000000000..a283f8bafd0c
--- /dev/null
+++ b/dev-lisp/cl-unicode/Manifest
@@ -0,0 +1,3 @@
+DIST cl-unicode-0.1.5.tar.gz 485666 BLAKE2B 9db0714c24de4c5c79f3d7eeb471ac5d7a06dd29abd1c3c4b728c9ce98b175ea97ed20923c957a75ac7dee290f095a5c28c92da5ddc7e808d28ca624d84a37cd SHA512 0b66c0e711f7e37423aa638b43017adff648189a32032702b082dff140b2255847a15572a20f21e6f82a2e8cbd547f7f99bf9176e4fa464aa1d938575d8a2390
+EBUILD cl-unicode-0.1.5.ebuild 1068 BLAKE2B 934f0abff66f151646c4e884c540bc80ff58e50cfb6ae6b9c7a21c4c4499c7727c64c61a4cb30fefd990bd4bb26b121be91cb4ee2b78405fe6d979c35832b8ff SHA512 0b314acfac0367f59ec5690e71052a78a400f7e1631845a82152eff78328322b5f065ad227a3c74174385fe1ef4387361a9048dcc0e65bd6bb736daf48bc0a7a
+MISC metadata.xml 1362 BLAKE2B 667231d4f1487ab486db549b0fbc7d641909596712ded57569f9eedb60f73952fd87e7d3a54057eba0f042c63a725715839f8f49736fbcac89d95a947d5ed34c SHA512 cde1545cbd82dbe5758fca85783022153f2f19a187128082c0f58f10740af62eae8be0abf800bb9c58a1037868fb6eaeab7ba7e3f52aae5eafd0f8a1a226a0bb
diff --git a/dev-lisp/cl-unicode/cl-unicode-0.1.5.ebuild b/dev-lisp/cl-unicode/cl-unicode-0.1.5.ebuild
new file mode 100644
index 000000000000..bff440548364
--- /dev/null
+++ b/dev-lisp/cl-unicode/cl-unicode-0.1.5.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit common-lisp-3 xdg-utils
+
+MY_P="v${PV}"
+
+DESCRIPTION="Provides Common Lisp implementations with knowledge about Unicode characters."
+HOMEPAGE="http://weitz.de/cl-unicode/"
+SRC_URI="https://github.com/edicl/${PN}/archive/${MY_P}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~sparc x86"
+IUSE=""
+
+DEPEND="virtual/commonlisp
+ dev-lisp/flexi-streams"
+RDEPEND="dev-lisp/cl-ppcre"
+
+src_configure() {
+ xdg_environment_reset
+}
+
+src_compile() {
+ # cl-unicode builds parts of its source code automatically the first time it
+ # is compiled, so we compile it here.
+ local initclunicode="(progn (push \"${S}/\" asdf:*central-registry*) (require :${PN}))"
+
+ common-lisp-export-impl-args "$(common-lisp-find-lisp-impl)"
+ ${CL_BINARY} ${CL_EVAL} "${initclunicode}"
+}
+
+src_install() {
+ common-lisp-install-sources *.lisp test/
+ common-lisp-install-sources -t all build/
+ common-lisp-install-asdf
+ dodoc CHANGELOG
+ dodoc doc/index.html
+}
diff --git a/dev-lisp/cl-unicode/metadata.xml b/dev-lisp/cl-unicode/metadata.xml
new file mode 100644
index 000000000000..739846335fdf
--- /dev/null
+++ b/dev-lisp/cl-unicode/metadata.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+ </maintainer>
+ <longdescription lang="en">
+ CL-UNICODE is a library which provides Common Lisp implementations
+ with knowledge about Unicode characters including their name, their
+ general category, the scripts and blocks they belong to, their
+ numerical value, and several other properties. It also provides the
+ ability to replace the standard syntax for reading Lisp characters
+ with one that is Unicode-aware and is used to enhance CL-PPCRE with
+ Unicode properties.
+ </longdescription>
+ <longdescription lang="es">
+ CL-UNICODE es una biblioteca que ofrece implmentaciones de Common
+ Lisp que reconoce caracteres Unicode incluyendo su nombre, categoría
+ general, los guiones y bloques a los que pertenecen, su valor
+ numérico y algunas otras propiedades. También ofrece la capacidad
+ de reemplazar la sintaxis estándar para la lectura de caracteres
+ Lisp por otra que reconoce Unicode y se utiliza para mejorar
+ CL-PPCRE con propiedades Unicode.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">edicl/cl-unicode</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lisp/clisp-2.48-r1 b/dev-lisp/clisp-2.48-r1
deleted file mode 100644
index 7f5cea2efe49..000000000000
--- a/dev-lisp/clisp-2.48-r1
+++ /dev/null
@@ -1,13 +0,0 @@
-DEFINED_PHASES=compile configure install postinst prepare
-DEPEND=virtual/libiconv >=dev-libs/libsigsegv-2.4 >=dev-libs/ffcall-1.10 dbus? ( sys-apps/dbus ) fastcgi? ( dev-libs/fcgi ) gdbm? ( sys-libs/gdbm ) gtk? ( >=x11-libs/gtk+-2.10:2 >=gnome-base/libglade-2.6:2.0 ) postgres? ( >=dev-db/postgresql-8.0 ) readline? ( >=sys-libs/readline-5.0 ) pcre? ( dev-libs/libpcre ) svm? ( sci-libs/libsvm ) zlib? ( sys-libs/zlib ) X? ( new-clx? ( x11-libs/libXpm ) ) hyperspec? ( dev-lisp/hyperspec ) berkdb? ( sys-libs/db:4.5 ) X? ( new-clx? ( x11-base/xorg-proto x11-misc/imake ) )
-DESCRIPTION=A portable, bytecode-compiled implementation of Common Lisp
-EAPI=2
-HOMEPAGE=http://clisp.sourceforge.net/
-IUSE=berkdb hyperspec X new-clx dbus fastcgi gdbm gtk +pcre postgres +readline svm -threads +unicode +zlib
-KEYWORDS=alpha amd64 ia64 ppc -sparc x86
-LICENSE=GPL-2
-RDEPEND=virtual/libiconv >=dev-libs/libsigsegv-2.4 >=dev-libs/ffcall-1.10 dbus? ( sys-apps/dbus ) fastcgi? ( dev-libs/fcgi ) gdbm? ( sys-libs/gdbm ) gtk? ( >=x11-libs/gtk+-2.10:2 >=gnome-base/libglade-2.6:2.0 ) postgres? ( >=dev-db/postgresql-8.0 ) readline? ( >=sys-libs/readline-5.0 ) pcre? ( dev-libs/libpcre ) svm? ( sci-libs/libsvm ) zlib? ( sys-libs/zlib ) X? ( new-clx? ( x11-libs/libXpm ) ) hyperspec? ( dev-lisp/hyperspec ) berkdb? ( sys-libs/db:4.5 )
-SLOT=2
-SRC_URI=mirror://sourceforge/clisp/clisp-2.48.tar.bz2
-_eclasses_=desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc flag-o-matic 5128c4729303400bd8d4b0b966530955 ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf xdg-utils f2c8335407f0b935b0a96d4adf23ef25
-_md5_=881fd497d4fab8173d7aad8f5a703733
diff --git a/dev-lisp/clisp-2.49-r9 b/dev-lisp/clisp-2.49-r9
deleted file mode 100644
index 89a51fbbc2eb..000000000000
--- a/dev-lisp/clisp-2.49-r9
+++ /dev/null
@@ -1,13 +0,0 @@
-DEFINED_PHASES=compile configure install prepare
-DEPEND=>=dev-lisp/asdf-2.33-r3 virtual/libiconv >=dev-libs/libsigsegv-2.4 >=dev-libs/ffcall-1.10 dbus? ( sys-apps/dbus ) fastcgi? ( dev-libs/fcgi ) gdbm? ( sys-libs/gdbm ) gtk? ( >=x11-libs/gtk+-2.10 >=gnome-base/libglade-2.6 ) postgres? ( >=dev-db/postgresql-8.0 ) readline? ( >=sys-libs/readline-5.0 <sys-libs/readline-7.0 ) pcre? ( dev-libs/libpcre ) svm? ( sci-libs/libsvm ) zlib? ( sys-libs/zlib ) X? ( x11-libs/libXpm ) hyperspec? ( dev-lisp/hyperspec ) berkdb? ( sys-libs/db:4.8 ) X? ( x11-base/xorg-proto x11-misc/imake )
-DESCRIPTION=A portable, bytecode-compiled implementation of Common Lisp
-EAPI=5
-HOMEPAGE=http://clisp.sourceforge.net/
-IUSE=hyperspec X berkdb dbus fastcgi gdbm gtk +pcre postgres +readline svm -threads +unicode +zlib
-KEYWORDS=amd64 ~ppc ~sparc x86
-LICENSE=GPL-2
-RDEPEND=>=dev-lisp/asdf-2.33-r3 virtual/libiconv >=dev-libs/libsigsegv-2.4 >=dev-libs/ffcall-1.10 dbus? ( sys-apps/dbus ) fastcgi? ( dev-libs/fcgi ) gdbm? ( sys-libs/gdbm ) gtk? ( >=x11-libs/gtk+-2.10 >=gnome-base/libglade-2.6 ) postgres? ( >=dev-db/postgresql-8.0 ) readline? ( >=sys-libs/readline-5.0 <sys-libs/readline-7.0 ) pcre? ( dev-libs/libpcre ) svm? ( sci-libs/libsvm ) zlib? ( sys-libs/zlib ) X? ( x11-libs/libXpm ) hyperspec? ( dev-lisp/hyperspec ) berkdb? ( sys-libs/db:4.8 )
-SLOT=2/2.49
-SRC_URI=mirror://sourceforge/clisp/clisp-2.49.tar.bz2
-_eclasses_=desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc flag-o-matic 5128c4729303400bd8d4b0b966530955 ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf xdg-utils f2c8335407f0b935b0a96d4adf23ef25
-_md5_=67cbe03550f75b33d05c87f2ddddb029
diff --git a/dev-lisp/clisp-2.49.90 b/dev-lisp/clisp-2.49.90
deleted file mode 100644
index 6c6a8bb92723..000000000000
--- a/dev-lisp/clisp-2.49.90
+++ /dev/null
@@ -1,13 +0,0 @@
-DEFINED_PHASES=compile configure install prepare
-DEPEND=>=dev-lisp/asdf-2.33-r3 virtual/libiconv >=dev-libs/libsigsegv-2.10 >=dev-libs/ffcall-1.10 dbus? ( sys-apps/dbus ) fastcgi? ( dev-libs/fcgi ) gdbm? ( sys-libs/gdbm ) gtk? ( >=x11-libs/gtk+-2.10:2 >=gnome-base/libglade-2.6 ) postgres? ( >=dev-db/postgresql-8.0:* ) readline? ( >=sys-libs/readline-7.0:0= ) pcre? ( dev-libs/libpcre:3 ) svm? ( sci-libs/libsvm ) zlib? ( sys-libs/zlib ) X? ( x11-libs/libXpm ) hyperspec? ( dev-lisp/hyperspec ) berkdb? ( sys-libs/db:4.8 ) X? ( x11-base/xorg-proto x11-misc/imake )
-DESCRIPTION=A portable, bytecode-compiled implementation of Common Lisp
-EAPI=6
-HOMEPAGE=http://clisp.sourceforge.net/
-IUSE=hyperspec X berkdb dbus fastcgi gdbm gtk +pcre postgres +readline svm -threads +unicode +zlib
-KEYWORDS=~amd64 ~ia64 ~ppc ~sparc ~x86
-LICENSE=GPL-2
-RDEPEND=>=dev-lisp/asdf-2.33-r3 virtual/libiconv >=dev-libs/libsigsegv-2.10 >=dev-libs/ffcall-1.10 dbus? ( sys-apps/dbus ) fastcgi? ( dev-libs/fcgi ) gdbm? ( sys-libs/gdbm ) gtk? ( >=x11-libs/gtk+-2.10:2 >=gnome-base/libglade-2.6 ) postgres? ( >=dev-db/postgresql-8.0:* ) readline? ( >=sys-libs/readline-7.0:0= ) pcre? ( dev-libs/libpcre:3 ) svm? ( sci-libs/libsvm ) zlib? ( sys-libs/zlib ) X? ( x11-libs/libXpm ) hyperspec? ( dev-lisp/hyperspec ) berkdb? ( sys-libs/db:4.8 )
-SLOT=2/8
-SRC_URI=https://haible.de/bruno/gnu/clisp-2.49.90.tar.bz2
-_eclasses_=desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc flag-o-matic 5128c4729303400bd8d4b0b966530955 ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf xdg-utils f2c8335407f0b935b0a96d4adf23ef25
-_md5_=5b31113f94b256f840fd4448e79de7a3
diff --git a/dev-lisp/clisp-2.49.92 b/dev-lisp/clisp-2.49.92
deleted file mode 100644
index e219f7acc18f..000000000000
--- a/dev-lisp/clisp-2.49.92
+++ /dev/null
@@ -1,13 +0,0 @@
-DEFINED_PHASES=compile configure install prepare
-DEPEND=>=dev-lisp/asdf-2.33-r3 virtual/libiconv >=dev-libs/libsigsegv-2.10 >=dev-libs/ffcall-1.10 dbus? ( sys-apps/dbus ) fastcgi? ( dev-libs/fcgi ) gdbm? ( sys-libs/gdbm ) gtk? ( >=x11-libs/gtk+-2.10:2 >=gnome-base/libglade-2.6 ) postgres? ( >=dev-db/postgresql-8.0:* ) readline? ( >=sys-libs/readline-7.0:0= ) pcre? ( dev-libs/libpcre:3 ) svm? ( sci-libs/libsvm ) zlib? ( sys-libs/zlib ) X? ( x11-libs/libXpm ) hyperspec? ( dev-lisp/hyperspec ) berkdb? ( sys-libs/db:4.8 ) X? ( x11-base/xorg-proto x11-misc/imake )
-DESCRIPTION=A portable, bytecode-compiled implementation of Common Lisp
-EAPI=6
-HOMEPAGE=http://clisp.sourceforge.net/
-IUSE=hyperspec X berkdb dbus fastcgi gdbm gtk +pcre postgres +readline svm -threads +unicode +zlib
-KEYWORDS=~amd64 ~ia64 ~ppc ~sparc ~x86
-LICENSE=GPL-2
-RDEPEND=>=dev-lisp/asdf-2.33-r3 virtual/libiconv >=dev-libs/libsigsegv-2.10 >=dev-libs/ffcall-1.10 dbus? ( sys-apps/dbus ) fastcgi? ( dev-libs/fcgi ) gdbm? ( sys-libs/gdbm ) gtk? ( >=x11-libs/gtk+-2.10:2 >=gnome-base/libglade-2.6 ) postgres? ( >=dev-db/postgresql-8.0:* ) readline? ( >=sys-libs/readline-7.0:0= ) pcre? ( dev-libs/libpcre:3 ) svm? ( sci-libs/libsvm ) zlib? ( sys-libs/zlib ) X? ( x11-libs/libXpm ) hyperspec? ( dev-lisp/hyperspec ) berkdb? ( sys-libs/db:4.8 )
-SLOT=2/8
-SRC_URI=mirror://gentoo/clisp-2.49.92.tar.bz2
-_eclasses_=desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc flag-o-matic 5128c4729303400bd8d4b0b966530955 ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf xdg-utils f2c8335407f0b935b0a96d4adf23ef25
-_md5_=3ae56b5cd4b418e8f67ccf9ffb6bc99a
diff --git a/dev-lisp/clisp/Manifest b/dev-lisp/clisp/Manifest
new file mode 100644
index 000000000000..48da4c75f68c
--- /dev/null
+++ b/dev-lisp/clisp/Manifest
@@ -0,0 +1,14 @@
+AUX clisp-2.49-bits_ipctypes_to_sys_ipc.patch 784 BLAKE2B 5d8934fa9d430b193321fbfc8dd9250cae072d58f63c29945fd05d3a4f10579785e5d25b9a9239695d2f0fa25b57ad21dcba912644dd61f63f92caa2e72e87b1 SHA512 163d9e29135268272ae3316709c60a25408158dda6649b79bedd07bd0f2e216d8eef113418230e983ad1115ecd1870f9e6c52ce94f02c09eff484f709ed3cd3f
+AUX clisp-2.49-get_hostname.patch 2356 BLAKE2B fc1e5e8c2e3b9f1db8c144390564801af508845e0029f130bebb8f377c540f662fe046e92821c6bb3c77ccfd31c5ed73e4ed10386619f1a1ebe0a6a9d39a215f SHA512 5e9dfc70f017fef08c24ede15c2312a2a54a5c8433a5a952ad4e41113ee0ce01febc631818c4cb506883d9992ef4468c429752e4924b8d1ce00f21b33a209a9b
+AUX clisp-2.49-tinfo.patch 404 BLAKE2B 12d9c2a7b6f83b4c0de6f8ab4e57fc2db2f3bfffbb535c0d5793052268a6d12ca21126a8b71895353b37c0a05e268f3eee192d827e63eb71ceb01c3c03cfe176 SHA512 10f27e205557cb48fe0165bd5ee7e3a33b0dbe403fa2d10df62854c44eb762a44ef005c78e8c23a67f7ed6d3c6317c893c7760f9c2ca72b6b088adae5f03247c
+AUX clisp-2.49.90-after_glibc_cfree_bdb.patch 8499 BLAKE2B d093b76cdf25b0822aaca87bd6055c6b58edc68e387d78d7fd979171d881fe585b674246b3a2a6f37a8412b5aef1b997210b4019a1595a07b64471cb9324656f SHA512 1b8cb29bf9caa30ca05474a67202f72f013e57d6b0d2dff1fb5ab0472df9f5c5a5b5de46922c931fa9a4d4a0a25890a05e1f7d38ddfb56c967026eef80001919
+AUX clisp-2.49.92-after_glibc_cfree_bdb.patch 8499 BLAKE2B d093b76cdf25b0822aaca87bd6055c6b58edc68e387d78d7fd979171d881fe585b674246b3a2a6f37a8412b5aef1b997210b4019a1595a07b64471cb9324656f SHA512 1b8cb29bf9caa30ca05474a67202f72f013e57d6b0d2dff1fb5ab0472df9f5c5a5b5de46922c931fa9a4d4a0a25890a05e1f7d38ddfb56c967026eef80001919
+DIST clisp-2.48.tar.bz2 7885098 BLAKE2B 42ebfe4721015f522184bce710bf95d79aa7f2a239410af249a8e85d80f140344ec80daaa34f7cdbfd2ae86407984657163ce3f6e4201eb132f7c71e21523cba SHA512 3288b6a2973c924006b14bbed1e8e3e688276a187ac2a6c7851dc7ae699e7832d30e5e7eecdabc76c08c7e8e8ce1b562eb97a44570d3035e558ea2310de2b719
+DIST clisp-2.49.90.tar.bz2 8921458 BLAKE2B 3be7cfe41038f42d8844d500877fa5c20e5c21dc0e162aa0018b297e4dfcd5374ef608793c9d809852e1f9885a155bb5b25fef8efe66016dd0ee400007386b70 SHA512 1fa7205e38883dcc863160b5418ddaaa2c45ee2d2f936de4067d1ea4a1e5043bf1235361bbbfc366afd6d8f1144497ccdccf1767ecf327f7a672b18742ceb651
+DIST clisp-2.49.92.tar.bz2 9055207 BLAKE2B 6cf331eb9f99f62579e35469e2d01cae066083592ccc71cf483b70b4d1be349cdee9d403e0a7ed1ad1c8c5d805c1dab51c1a5031d77469ff8c4dc52eb58913df SHA512 cc9412a7b3f21c85b040bf5e660380fafb3c2374765a1c00272feb3f7838f2161e27a5d6295cef9976f0c4522f10796cf5ee5447716090d1cc69ecfe598ef306
+DIST clisp-2.49.tar.bz2 8091011 BLAKE2B e034c581b8100837b34d0adf1ef45bd667272d062945875175958178b4ef5b11e899dfb76505eb8cb51fca6101c11a9f21fb2cc9a78a3c0f82b06166211434f7 SHA512 eef66fc85199a2c283b616db61bf67ff103eeb0f19fa907da48994dc790b6f5f8d0c74fb3bd723c6b827c0ff3cfd89fa6ba67934fc669ed5d5249044b5140d81
+EBUILD clisp-2.48-r1.ebuild 4688 BLAKE2B 1a5331be11adf15fffee902aa13e17c4b706715f08b222532b434cd50650258431d5cc5eb5d83ded7eac11ee9c9c3022fcf079cf2aa019a20d24c23b89a87de2 SHA512 55cbc29c08a82984d7dc53ce97ab552225108798a99024096d0631b3fe9487fe6aa9755d4a003b02a9d3f9c1222ccdc7f6685fca3a914503513644c94eb2f023
+EBUILD clisp-2.49-r9.ebuild 4238 BLAKE2B 5b7e7c11289fd988c3b7bf100559148f0642f352a78d680bcb5fcdf3bf01e26b6f27a5ce30b8fb8e9b094a0198d3f88e649ea8a243fdf3b4d6bf0c14050f7f19 SHA512 c55753beff28fc7fd488004cb17bd23ea68707eafb263678f86615965f7db6bdd4cc521ac814c1b6e287ffb85a035b5411d8ce0a9dbdb73b77aa959519fb8b14
+EBUILD clisp-2.49.90.ebuild 4038 BLAKE2B 1a64a5a04440410b18a1f793cdbbdb5ea10a623cc758d2068b2129e29ae7ba03c19e14d6eb3dd8db18e1fc33dff86e9d1de46d0c741592ddc7a940d2503c271c SHA512 513fdffda70208b877cf88043ad42a42b9dce7eeaba6ad3412a01d252e279e958679b3f806f181209806dd5616794b4569da7dd7c59ac216909e8b7a9e4ec1df
+EBUILD clisp-2.49.92.ebuild 4026 BLAKE2B 07a221bebc8ff592e7c0f22eb5e02f23a65a6eb966fd67c0750f55ddf1241a946fe1bae5cc50e4fbadf5ed9240701398494f9479ac660e57b34b4c76d8240168 SHA512 9b3144f9264c50b638e4c5d2b448430297eaab2f1609d476de4ca0b0402c31ec09b7161111df31f0cec4be83d16ebf040b853ed1cd2d2c0afdf46864924a0052
+MISC metadata.xml 1362 BLAKE2B 707ff26161455d73fc21e7f22341e829e9310600a73f9ca28fa39f530f11bb497cc6eb781a628092fabde3eb342582fe34bd456ddd40022b5e4c5277e7be5fb2 SHA512 dc7eb6ebc84df7653de78f6a397677992a7c4c9f20e58562a78e409f8c83304de4ef9eb931db8fc23edee2157d92e9cfa9c08d6e129973bfd8c2cd767ace9a49
diff --git a/dev-lisp/clisp/clisp-2.48-r1.ebuild b/dev-lisp/clisp/clisp-2.48-r1.ebuild
new file mode 100644
index 000000000000..72cda6b64d06
--- /dev/null
+++ b/dev-lisp/clisp/clisp-2.48-r1.ebuild
@@ -0,0 +1,164 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="2"
+
+inherit flag-o-matic eutils toolchain-funcs multilib xdg-utils
+
+DESCRIPTION="A portable, bytecode-compiled implementation of Common Lisp"
+HOMEPAGE="http://clisp.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="2"
+KEYWORDS="alpha amd64 ia64 ppc -sparc x86"
+IUSE="berkdb hyperspec X new-clx dbus fastcgi gdbm gtk +pcre postgres +readline svm -threads +unicode +zlib"
+
+RDEPEND="virtual/libiconv
+ >=dev-libs/libsigsegv-2.4
+ >=dev-libs/ffcall-1.10
+ dbus? ( sys-apps/dbus )
+ fastcgi? ( dev-libs/fcgi )
+ gdbm? ( sys-libs/gdbm )
+ gtk? ( >=x11-libs/gtk+-2.10:2 >=gnome-base/libglade-2.6:2.0 )
+ postgres? ( >=dev-db/postgresql-8.0 )
+ readline? ( >=sys-libs/readline-5.0 )
+ pcre? ( dev-libs/libpcre )
+ svm? ( sci-libs/libsvm )
+ zlib? ( sys-libs/zlib )
+ X? ( new-clx? ( x11-libs/libXpm ) )
+ hyperspec? ( dev-lisp/hyperspec )
+ berkdb? ( sys-libs/db:4.5 )"
+
+DEPEND="${RDEPEND}
+ X? ( new-clx? ( x11-base/xorg-proto x11-misc/imake ) )"
+
+# dev-lisp/gentoo-init is obsolete, it will be dropped soon
+# This version of clisp is its last consumer
+# Bug 648448
+#PDEPEND="dev-lisp/gentoo-init"
+
+enable_modules() {
+ [[ $# = 0 ]] && die "${FUNCNAME[0]} must receive at least one argument"
+ for m in "$@" ; do
+ einfo "enabling module $m"
+ myconf+=" --with-module=${m}"
+ done
+}
+
+BUILDDIR="builddir"
+
+# modules not enabled:
+# * berkdb: must figure out a way to make the configure script pick up the
+# currect version of the library and headers
+# * dirkey: fails to compile, requiring windows.h, possibly wrong #ifdefs
+# * matlab, netica: not in portage
+# * oracle: can't install oracle-instantclient
+
+src_prepare() {
+ # More than -O1 breaks alpha/ia64
+ if use alpha || use ia64; then
+ sed -i -e 's/-O2//g' src/makemake.in || die
+ fi
+ xdg_environment_reset
+}
+
+src_configure() {
+ # We need this to build on alpha/ia64
+ if use alpha || use ia64; then
+ replace-flags -O? -O1
+ append-flags '-D NO_MULTIMAP_SHM -D NO_MULTIMAP_FILE -D NO_SINGLEMAP -D NO_TRIVIALMAP'
+ fi
+
+ # QA issue with lisp.run
+ append-flags -Wa,--noexecstack
+
+ # built-in features
+ local myconf="--with-ffcall --without-dynamic-modules"
+# There's a problem with jit_allocai function
+# if use jit; then
+# myconf+=" --with-jitc=lightning"
+# fi
+ if use threads; then
+ myconf+=" --with-threads=POSIX_THREADS"
+ fi
+
+ # default modules
+ enable_modules wildcard rawsock
+ # optional modules
+ use elibc_glibc && enable_modules bindings/glibc
+ if use X; then
+ if use new-clx; then
+ enable_modules clx/new-clx
+ else
+ enable_modules clx/mit-clx
+ fi
+ fi
+ if use postgres; then
+ enable_modules postgresql
+ append-flags -I$(pg_config --includedir)
+ fi
+ if use berkdb; then
+ enable_modules berkeley-db
+ append-flags -I/usr/include/db4.5
+ fi
+ use dbus && enable_modules dbus
+ use fastcgi && enable_modules fastcgi
+ use gdbm && enable_modules gdbm
+ use gtk && enable_modules gtk2
+ use pcre && enable_modules pcre
+ use svm && enable_modules libsvm
+ use zlib && enable_modules zlib
+
+ if use hyperspec; then
+ CLHSROOT="file:///usr/share/doc/hyperspec/HyperSpec/"
+ else
+ CLHSROOT="http://www.lispworks.com/reference/HyperSpec/"
+ fi
+
+ # configure chokes on --sysconfdir option
+ local configure="./configure --prefix=/usr --libdir=/usr/$(get_libdir) \
+ $(use_with readline) $(use_with unicode) \
+ ${myconf} --hyperspec=${CLHSROOT} ${BUILDDIR}"
+ einfo "${configure}"
+ ${configure} || die "./configure failed"
+
+ sed -i 's,"vi","nano",g' "${BUILDDIR}"/config.lisp || die
+
+ IMPNOTES="file://${ROOT%/}/usr/share/doc/${PN}-${PVR}/html/impnotes.html"
+ sed -i "s,http://clisp.cons.org/impnotes/,${IMPNOTES},g" \
+ "${BUILDDIR}"/config.lisp || die
+}
+
+src_compile() {
+ export VARTEXFONTS="${T}"/fonts
+ cd "${BUILDDIR}"
+ # parallel build fails
+ emake -j1 || die "emake failed"
+}
+
+src_install() {
+ pushd "${BUILDDIR}"
+ make DESTDIR="${D}" prefix=/usr install-bin || die
+ doman clisp.1 || die
+ dodoc SUMMARY README* NEWS MAGIC.add ANNOUNCE || die
+ fperms a+x /usr/$(get_libdir)/clisp-${PV/_*/}/clisp-link || die
+ popd
+ dohtml doc/impnotes.{css,html} doc/regexp.html doc/clisp.png || die
+ dodoc doc/{CLOS-guide,LISP-tutorial}.txt || die
+}
+
+pkg_postinst() {
+ if use threads || use jit; then
+ while read line; do elog ${line}; done <<EOF
+
+Upstream considers threads to be of Alpha quality, therefore
+it is likely that you will encounter bugs in using them. If you do,
+please report bugs upstream:
+
+Mailing list: https://lists.sourceforge.net/lists/listinfo/clisp-devel
+Bug tracker: https://sourceforge.net/tracker/?atid=101355&group_id=1355
+
+EOF
+ fi
+}
diff --git a/dev-lisp/clisp/clisp-2.49-r9.ebuild b/dev-lisp/clisp/clisp-2.49-r9.ebuild
new file mode 100644
index 000000000000..f26813fdcd3d
--- /dev/null
+++ b/dev-lisp/clisp/clisp-2.49-r9.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit eutils flag-o-matic multilib toolchain-funcs xdg-utils
+
+DESCRIPTION="A portable, bytecode-compiled implementation of Common Lisp"
+HOMEPAGE="http://clisp.sourceforge.net/"
+SRC_URI="mirror://sourceforge/clisp/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="2/${PV}"
+KEYWORDS="amd64 ~ppc ~sparc x86"
+IUSE="hyperspec X berkdb dbus fastcgi gdbm gtk +pcre postgres +readline svm -threads +unicode +zlib"
+# "jit" disabled ATM
+
+RDEPEND=">=dev-lisp/asdf-2.33-r3
+ virtual/libiconv
+ >=dev-libs/libsigsegv-2.4
+ >=dev-libs/ffcall-1.10
+ dbus? ( sys-apps/dbus )
+ fastcgi? ( dev-libs/fcgi )
+ gdbm? ( sys-libs/gdbm )
+ gtk? ( >=x11-libs/gtk+-2.10 >=gnome-base/libglade-2.6 )
+ postgres? ( >=dev-db/postgresql-8.0 )
+ readline? ( >=sys-libs/readline-5.0 <sys-libs/readline-7.0 )
+ pcre? ( dev-libs/libpcre )
+ svm? ( sci-libs/libsvm )
+ zlib? ( sys-libs/zlib )
+ X? ( x11-libs/libXpm )
+ hyperspec? ( dev-lisp/hyperspec )
+ berkdb? ( sys-libs/db:4.8 )"
+# jit? ( >=dev-libs/lightning-1.2 )
+
+DEPEND="${RDEPEND}
+ X? ( x11-base/xorg-proto x11-misc/imake )"
+
+enable_modules() {
+ [[ $# = 0 ]] && die "${FUNCNAME[0]} must receive at least one argument"
+ for m in "$@" ; do
+ einfo "enabling module $m"
+ myconf+=" --with-module=${m}"
+ done
+}
+
+BUILDDIR="builddir"
+
+# modules not enabled:
+# * berkdb: must figure out a way to make the configure script pick up the
+# currect version of the library and headers
+# * dirkey: fails to compile, requiring windows.h, possibly wrong #ifdefs
+# * matlab, netica: not in portage
+# * oracle: can't install oracle-instantclient
+
+src_prepare() {
+ # More than -O1 breaks alpha/ia64
+ if use alpha || use ia64; then
+ sed -i -e 's/-O2//g' src/makemake.in || die
+ fi
+ epatch "${FILESDIR}"/${P}-bits_ipctypes_to_sys_ipc.patch
+ epatch "${FILESDIR}"/${P}-get_hostname.patch
+ epatch "${FILESDIR}"/${P}-tinfo.patch
+
+ xdg_environment_reset
+}
+
+src_configure() {
+ # Bug 618170. If anyone has a better idea...
+ append-flags -fno-pie
+
+ # We need this to build on alpha/ia64
+ if use alpha || use ia64; then
+ replace-flags -O? -O1
+ append-flags '-D NO_MULTIMAP_SHM -D NO_MULTIMAP_FILE -D NO_SINGLEMAP -D NO_TRIVIALMAP'
+ fi
+
+ # QA issue with lisp.run
+ append-flags -Wa,--noexecstack
+
+ # built-in features
+ local myconf="--with-ffcall --without-dynamic-modules"
+# There's a problem with jit_allocai function
+# if use jit; then
+# myconf+=" --with-jitc=lightning"
+# fi
+ if use threads; then
+ myconf+=" --with-threads=POSIX_THREADS"
+ fi
+
+ # default modules
+ enable_modules wildcard rawsock
+ # optional modules
+ use elibc_glibc && enable_modules bindings/glibc
+ use X && enable_modules clx/new-clx
+ if use postgres; then
+ enable_modules postgresql
+ append-cppflags -I$(pg_config --includedir)
+ fi
+ if use berkdb; then
+ enable_modules berkeley-db
+ append-cppflags -I/usr/include/db4.8
+ fi
+ use dbus && enable_modules dbus
+ use fastcgi && enable_modules fastcgi
+ use gdbm && enable_modules gdbm
+ use gtk && enable_modules gtk2
+ use pcre && enable_modules pcre
+ use svm && enable_modules libsvm
+ use zlib && enable_modules zlib
+
+ if use hyperspec; then
+ CLHSROOT="file:///usr/share/doc/hyperspec/HyperSpec/"
+ else
+ CLHSROOT="http://www.lispworks.com/reference/HyperSpec/"
+ fi
+
+ # configure chokes on --sysconfdir option
+ local configure="./configure --prefix=/usr --libdir=/usr/$(get_libdir) \
+ $(use_with readline) $(use_with unicode) \
+ ${myconf} --hyperspec=${CLHSROOT} ${BUILDDIR}"
+ einfo "${configure}"
+ ${configure} || die "./configure failed"
+
+ IMPNOTES="file://${ROOT%/}/usr/share/doc/${PN}-${PVR}/html/impnotes.html"
+ sed -i "s,http://clisp.cons.org/impnotes/,${IMPNOTES},g" \
+ "${BUILDDIR}"/config.lisp || die "Cannot fix link to implementation notes"
+}
+
+src_compile() {
+ export VARTEXFONTS="${T}"/fonts
+ cd "${BUILDDIR}"
+ # parallel build fails
+ emake -j1
+}
+
+src_install() {
+ pushd "${BUILDDIR}"
+ make DESTDIR="${D}" prefix=/usr install-bin || die "Installation failed"
+ doman clisp.1
+ dodoc ../SUMMARY README* ../src/NEWS ../unix/MAGIC.add ../ANNOUNCE
+ popd
+ dohtml doc/impnotes.{css,html} doc/regexp.html doc/clisp.png
+ dodoc doc/{CLOS-guide,LISP-tutorial}.txt
+}
diff --git a/dev-lisp/clisp/clisp-2.49.90.ebuild b/dev-lisp/clisp/clisp-2.49.90.ebuild
new file mode 100644
index 000000000000..8bf41b361b25
--- /dev/null
+++ b/dev-lisp/clisp/clisp-2.49.90.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic multilib toolchain-funcs xdg-utils
+
+DESCRIPTION="A portable, bytecode-compiled implementation of Common Lisp"
+HOMEPAGE="http://clisp.sourceforge.net/"
+SRC_URI="https://haible.de/bruno/gnu/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="2/8"
+KEYWORDS="~amd64 ~ia64 ~ppc ~sparc ~x86"
+IUSE="hyperspec X berkdb dbus fastcgi gdbm gtk +pcre postgres +readline svm -threads +unicode +zlib"
+# "jit" disabled ATM
+
+RDEPEND=">=dev-lisp/asdf-2.33-r3
+ virtual/libiconv
+ >=dev-libs/libsigsegv-2.10
+ >=dev-libs/ffcall-1.10
+ dbus? ( sys-apps/dbus )
+ fastcgi? ( dev-libs/fcgi )
+ gdbm? ( sys-libs/gdbm )
+ gtk? ( >=x11-libs/gtk+-2.10:2 >=gnome-base/libglade-2.6 )
+ postgres? ( >=dev-db/postgresql-8.0:* )
+ readline? ( >=sys-libs/readline-7.0:0= )
+ pcre? ( dev-libs/libpcre:3 )
+ svm? ( sci-libs/libsvm )
+ zlib? ( sys-libs/zlib )
+ X? ( x11-libs/libXpm )
+ hyperspec? ( dev-lisp/hyperspec )
+ berkdb? ( sys-libs/db:4.8 )"
+
+DEPEND="${RDEPEND}
+ X? ( x11-base/xorg-proto x11-misc/imake )"
+
+enable_modules() {
+ [[ $# = 0 ]] && die "${FUNCNAME[0]} must receive at least one argument"
+ for m in "$@" ; do
+ einfo "enabling module $m"
+ myconf+=" --with-module=${m}"
+ done
+}
+
+BUILDDIR="builddir"
+
+# modules not enabled:
+# * berkdb: must figure out a way to make the configure script pick up the
+# currect version of the library and headers
+# * dirkey: fails to compile, requiring windows.h, possibly wrong #ifdefs
+# * matlab, netica: not in portage
+# * oracle: can't install oracle-instantclient
+
+src_prepare() {
+ # More than -O1 breaks alpha/ia64
+ if use alpha || use ia64; then
+ sed -i -e 's/-O2//g' src/makemake.in || die
+ fi
+ eapply "${FILESDIR}"/"${P}"-after_glibc_cfree_bdb.patch
+ eapply_user
+
+ xdg_environment_reset
+}
+
+src_configure() {
+ # We need this to build on alpha/ia64
+ if use alpha || use ia64; then
+ replace-flags -O? -O1
+ fi
+
+ if use x86; then
+ append-flags -falign-functions=4
+ fi
+
+ # built-in features
+ local myconf="--with-ffcall --without-dynamic-modules"
+# There's a problem with jit_allocai function
+# if use jit; then
+# myconf+=" --with-jitc=lightning"
+# fi
+ if use threads; then
+ myconf+=" --with-threads=POSIX_THREADS"
+ fi
+
+ # default modules
+ enable_modules rawsock
+ # optional modules
+ use elibc_glibc && enable_modules bindings/glibc
+ use X && enable_modules clx/new-clx
+ if use postgres; then
+ enable_modules postgresql
+ append-cppflags -I$(pg_config --includedir)
+ fi
+ if use berkdb; then
+ enable_modules berkeley-db
+ append-cppflags -I"${EPREFIX}"/usr/include/db4.8
+ fi
+ use dbus && enable_modules dbus
+ use fastcgi && enable_modules fastcgi
+ use gdbm && enable_modules gdbm
+ use gtk && enable_modules gtk2
+ use pcre && enable_modules pcre
+ use svm && enable_modules libsvm
+ use zlib && enable_modules zlib
+
+ if use hyperspec; then
+ CLHSROOT="file:///${EPREFIX}/usr/share/doc/hyperspec/HyperSpec/"
+ else
+ CLHSROOT="http://www.lispworks.com/reference/HyperSpec/"
+ fi
+
+ # configure chokes on --sysconfdir option
+ local configure="./configure --prefix=${EPREFIX}/usr --enable-portability \
+ --libdir=${EPREFIX}/usr/$(get_libdir) $(use_with readline) $(use_with unicode) \
+ ${myconf} --hyperspec=${CLHSROOT} ${BUILDDIR}"
+ einfo "${configure}"
+ ${configure} || die "./configure failed"
+
+ IMPNOTES="file://${ROOT%/}/usr/share/doc/${PN}-${PVR}/html/impnotes.html"
+ sed -i "s,http://clisp.cons.org/impnotes/,${IMPNOTES},g" \
+ "${BUILDDIR}"/config.lisp || die "Cannot fix link to implementation notes"
+}
+
+src_compile() {
+ export VARTEXFONTS="${T}"/fonts
+ cd "${BUILDDIR}" || die
+ # parallel build fails
+ emake -j1
+}
+
+src_install() {
+ pushd "${BUILDDIR}"
+ make DESTDIR="${D}" prefix="${EPREFIX}"/usr install-bin || die "Installation failed"
+ doman clisp.1
+ dodoc ../SUMMARY README* ../src/NEWS ../unix/MAGIC.add ../ANNOUNCE
+ popd
+ dohtml doc/impnotes.{css,html} doc/regexp.html doc/clisp.png
+ dodoc doc/{CLOS-guide,LISP-tutorial}.txt
+}
diff --git a/dev-lisp/clisp/clisp-2.49.92.ebuild b/dev-lisp/clisp/clisp-2.49.92.ebuild
new file mode 100644
index 000000000000..83c982ee82d1
--- /dev/null
+++ b/dev-lisp/clisp/clisp-2.49.92.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic multilib toolchain-funcs xdg-utils
+
+DESCRIPTION="A portable, bytecode-compiled implementation of Common Lisp"
+HOMEPAGE="http://clisp.sourceforge.net/"
+SRC_URI="mirror://gentoo/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="2/8"
+KEYWORDS="~amd64 ~ia64 ~ppc ~sparc ~x86"
+IUSE="hyperspec X berkdb dbus fastcgi gdbm gtk +pcre postgres +readline svm -threads +unicode +zlib"
+# "jit" disabled ATM
+
+RDEPEND=">=dev-lisp/asdf-2.33-r3
+ virtual/libiconv
+ >=dev-libs/libsigsegv-2.10
+ >=dev-libs/ffcall-1.10
+ dbus? ( sys-apps/dbus )
+ fastcgi? ( dev-libs/fcgi )
+ gdbm? ( sys-libs/gdbm )
+ gtk? ( >=x11-libs/gtk+-2.10:2 >=gnome-base/libglade-2.6 )
+ postgres? ( >=dev-db/postgresql-8.0:* )
+ readline? ( >=sys-libs/readline-7.0:0= )
+ pcre? ( dev-libs/libpcre:3 )
+ svm? ( sci-libs/libsvm )
+ zlib? ( sys-libs/zlib )
+ X? ( x11-libs/libXpm )
+ hyperspec? ( dev-lisp/hyperspec )
+ berkdb? ( sys-libs/db:4.8 )"
+
+DEPEND="${RDEPEND}
+ X? ( x11-base/xorg-proto x11-misc/imake )"
+
+enable_modules() {
+ [[ $# = 0 ]] && die "${FUNCNAME[0]} must receive at least one argument"
+ for m in "$@" ; do
+ einfo "enabling module $m"
+ myconf+=" --with-module=${m}"
+ done
+}
+
+BUILDDIR="builddir"
+
+# modules not enabled:
+# * berkdb: must figure out a way to make the configure script pick up the
+# currect version of the library and headers
+# * dirkey: fails to compile, requiring windows.h, possibly wrong #ifdefs
+# * matlab, netica: not in portage
+# * oracle: can't install oracle-instantclient
+
+src_prepare() {
+ # More than -O1 breaks alpha/ia64
+ if use alpha || use ia64; then
+ sed -i -e 's/-O2//g' src/makemake.in || die
+ fi
+ eapply "${FILESDIR}"/"${P}"-after_glibc_cfree_bdb.patch
+ eapply_user
+
+ xdg_environment_reset
+}
+
+src_configure() {
+ # We need this to build on alpha/ia64
+ if use alpha || use ia64; then
+ replace-flags -O? -O1
+ fi
+
+ if use x86; then
+ append-flags -falign-functions=4
+ fi
+
+ # built-in features
+ local myconf="--with-ffcall --without-dynamic-modules"
+# There's a problem with jit_allocai function
+# if use jit; then
+# myconf+=" --with-jitc=lightning"
+# fi
+ if use threads; then
+ myconf+=" --with-threads=POSIX_THREADS"
+ fi
+
+ # default modules
+ enable_modules rawsock
+ # optional modules
+ use elibc_glibc && enable_modules bindings/glibc
+ use X && enable_modules clx/new-clx
+ if use postgres; then
+ enable_modules postgresql
+ append-cppflags -I$(pg_config --includedir)
+ fi
+ if use berkdb; then
+ enable_modules berkeley-db
+ append-cppflags -I"${EPREFIX}"/usr/include/db4.8
+ fi
+ use dbus && enable_modules dbus
+ use fastcgi && enable_modules fastcgi
+ use gdbm && enable_modules gdbm
+ use gtk && enable_modules gtk2
+ use pcre && enable_modules pcre
+ use svm && enable_modules libsvm
+ use zlib && enable_modules zlib
+
+ if use hyperspec; then
+ CLHSROOT="file:///${EPREFIX}/usr/share/doc/hyperspec/HyperSpec/"
+ else
+ CLHSROOT="http://www.lispworks.com/reference/HyperSpec/"
+ fi
+
+ # configure chokes on --sysconfdir option
+ local configure="./configure --prefix=${EPREFIX}/usr --enable-portability \
+ --libdir=${EPREFIX}/usr/$(get_libdir) $(use_with readline) $(use_with unicode) \
+ ${myconf} --hyperspec=${CLHSROOT} ${BUILDDIR}"
+ einfo "${configure}"
+ ${configure} || die "./configure failed"
+
+ IMPNOTES="file://${ROOT%/}/usr/share/doc/${PN}-${PVR}/html/impnotes.html"
+ sed -i "s,http://clisp.cons.org/impnotes/,${IMPNOTES},g" \
+ "${BUILDDIR}"/config.lisp || die "Cannot fix link to implementation notes"
+}
+
+src_compile() {
+ export VARTEXFONTS="${T}"/fonts
+ cd "${BUILDDIR}" || die
+ # parallel build fails
+ emake -j1
+}
+
+src_install() {
+ pushd "${BUILDDIR}"
+ make DESTDIR="${D}" prefix="${EPREFIX}"/usr install-bin || die "Installation failed"
+ doman clisp.1
+ dodoc ../SUMMARY README* ../src/NEWS ../unix/MAGIC.add ../ANNOUNCE
+ popd
+ dohtml doc/impnotes.{css,html} doc/regexp.html doc/clisp.png
+ dodoc doc/{CLOS-guide,LISP-tutorial}.txt
+}
diff --git a/dev-lisp/clisp/files/clisp-2.49-bits_ipctypes_to_sys_ipc.patch b/dev-lisp/clisp/files/clisp-2.49-bits_ipctypes_to_sys_ipc.patch
new file mode 100644
index 000000000000..8037157c9512
--- /dev/null
+++ b/dev-lisp/clisp/files/clisp-2.49-bits_ipctypes_to_sys_ipc.patch
@@ -0,0 +1,21 @@
+diff -ru a/modules/bindings/glibc/linux.lisp b/modules/bindings/glibc/linux.lisp
+--- a/modules/bindings/glibc/linux.lisp 2008-10-08 19:36:19.000000000 +0300
++++ b/modules/bindings/glibc/linux.lisp 2013-04-08 00:05:06.028305248 +0300
+@@ -67,7 +67,7 @@
+ (def-c-type __daddr_t) ; int
+ (def-c-type __caddr_t) ; c-pointer
+ (def-c-type __time_t) ; long
+-(def-c-type __swblk_t) ; long
++;(def-c-type __swblk_t) ; long
+
+ (def-c-type __fd_mask ulong)
+ (eval-when (load compile eval)
+@@ -86,7 +86,7 @@
+
+ (def-c-type __key_t) ; int
+
+-(c-lines "#include <bits/ipctypes.h>~%")
++(c-lines "#include <sys/ipc.h>~%")
+ (def-c-type __ipc_pid_t) ; ushort
+
+ ; --------------------------- <sys/types.h> -----------------------------------
diff --git a/dev-lisp/clisp/files/clisp-2.49-get_hostname.patch b/dev-lisp/clisp/files/clisp-2.49-get_hostname.patch
new file mode 100644
index 000000000000..5db3a71efbc3
--- /dev/null
+++ b/dev-lisp/clisp/files/clisp-2.49-get_hostname.patch
@@ -0,0 +1,56 @@
+diff -r -U1 clisp-2.49.orig/src/socket.d clisp-2.49/src/socket.d
+--- clisp-2.49.orig/src/socket.d 2009-10-08 21:45:13.000000000 +0700
++++ clisp-2.49/src/socket.d 2013-04-20 16:24:11.133895050 +0700
+@@ -59,5 +59,5 @@
+ Fetches the machine's host name.
+- get_hostname(host =);
+- The name is allocated on the stack, with dynamic extent.
+- < const char* host: The host name.
++ get_hostname(hostname);
++ where hostname is an array of MAXHOTNAMELEN+1 characters.
++ < const char host[]: The host name.
+ (Note: In some cases we could get away with less system calls by simply
+@@ -69,10 +69,8 @@
+ /* present on all supported unix systems and on woe32 */
+- #define get_hostname(host_assignment) \
+- do { var char hostname[MAXHOSTNAMELEN+1]; \
+- begin_system_call(); \
+- if ( gethostname(&hostname[0],MAXHOSTNAMELEN) <0) { SOCK_error(); } \
+- end_system_call(); \
+- hostname[MAXHOSTNAMELEN] = '\0'; \
+- host_assignment &hostname[0]; \
+- } while(0)
++static void get_hostname (char *hostname) {
++ begin_system_call();
++ if (gethostname(hostname,MAXHOSTNAMELEN) < 0) { ANSIC_error(); }
++ end_system_call();
++ hostname[MAXHOSTNAMELEN] = '\0';
++}
+ #else
+@@ -209,4 +207,4 @@
+ (apply #'string-concat hostname " [" (inet-ntop address) "]"))) */
+- var const char* host;
+- get_hostname(host =);
++ var char host[MAXHOSTNAMELEN+1];
++ get_hostname(host);
+ result = asciz_to_string(host,O(misc_encoding)); /* hostname as result */
+@@ -391,4 +389,4 @@
+ if (eq(arg,S(Kdefault))) {
+- var char* host;
+- get_hostname(host =);
++ var char host[MAXHOSTNAMELEN+1];
++ get_hostname(host);
+ begin_system_call();
+@@ -726,3 +724,4 @@
+ if (host[0] == '\0') {
+- get_hostname(host =);
++ var char host[MAXHOSTNAMELEN+1];
++ get_hostname(host);
+ fd = with_host_port(host,port,&connect_to_x_via_ip,NULL);
+@@ -800,4 +799,4 @@
+ if (resolve_p) { /* Fill in hd->truename. */
+- var const char* host;
+- get_hostname(host =); /* was: host = "localhost"; */
++ var char host[MAXHOSTNAMELEN+1];
++ get_hostname(host);
+ ASSERT(strlen(host) <= MAXHOSTNAMELEN);
diff --git a/dev-lisp/clisp/files/clisp-2.49-tinfo.patch b/dev-lisp/clisp/files/clisp-2.49-tinfo.patch
new file mode 100644
index 000000000000..72f40d585b5b
--- /dev/null
+++ b/dev-lisp/clisp/files/clisp-2.49-tinfo.patch
@@ -0,0 +1,15 @@
+clisp does not need a full blown ncurses, but it does require a termcap or tinfo
+I would have changed this in src/m4/termcap.m4 but configure.in fails terribly - JeR
+
+
+--- a/src/configure
++++ b/src/configure
+@@ -28613,7 +28613,7 @@
+ return 0;
+ }
+ _ACEOF
+-for ac_lib in '' ncurses termcap; do
++for ac_lib in '' tinfo ncurses termcap; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
diff --git a/dev-lisp/clisp/files/clisp-2.49.90-after_glibc_cfree_bdb.patch b/dev-lisp/clisp/files/clisp-2.49.90-after_glibc_cfree_bdb.patch
new file mode 100644
index 000000000000..ae83bbb8770d
--- /dev/null
+++ b/dev-lisp/clisp/files/clisp-2.49.90-after_glibc_cfree_bdb.patch
@@ -0,0 +1,185 @@
+diff -r -U3 clisp-2.49.90.orig/modules/berkeley-db/bdb.c clisp-2.49.90/modules/berkeley-db/bdb.c
+--- clisp-2.49.90.orig/modules/berkeley-db/bdb.c 2018-01-27 12:03:01.000000000 +0100
++++ clisp-2.49.90/modules/berkeley-db/bdb.c 2018-02-12 20:37:24.203803219 +0100
+@@ -2216,7 +2216,13 @@
+ c_data.compact_timeout = timeout;
+ c_data.compact_pages = pages;
+ SYSCALL(db->compact,(db,txn,pstart,pstop,&c_data,flags,&end));
+- pushSTACK(uint32_to_I(c_data.compact_empty_buckets));
++ /* ====
++ * compact_empty_buckets is in bdb-5.3 as part of output stats
++ * however this version use bdb-4.8 which does not have it
++ * ====
++ *
++ * pushSTACK(uint32_to_I(c_data.compact_empty_buckets));
++ * */
+ pushSTACK(uint32_to_I(c_data.compact_pages_free));
+ pushSTACK(uint32_to_I(c_data.compact_pages_examine));
+ pushSTACK(uint32_to_I(c_data.compact_levels));
+diff -r -U3 clisp-2.49.90.orig/modules/bindings/glibc/linux.lisp clisp-2.49.90/modules/bindings/glibc/linux.lisp
+--- clisp-2.49.90.orig/modules/bindings/glibc/linux.lisp 2018-01-10 00:32:25.000000000 +0100
++++ clisp-2.49.90/modules/bindings/glibc/linux.lisp 2018-02-12 20:48:22.467775536 +0100
+@@ -1,7 +1,7 @@
+ ;; Foreign functions provided by the Linux C library version 6,
+ ;; i.e. the GNU C library version 2.0.7.
+ ;; Bruno Haible 10.4.1998, 19.4.1998
+-;; Sam Steingold 2002-2008, 2011
++;; Sam Steingold 2002-2008, 2011, 2013, 2016-2017
+
+ ;; NB: quite a few functions here have more portable counterparts in POSIX
+
+@@ -686,9 +686,8 @@
+ (def-call-out system? (:arguments (null c-string))
+ (:return-type boolean) (:name "system"))
+
+-; You can uncomment this if your compiler sets __USE_GNU
+-; (def-call-out canonicalize_file_name (:arguments (name c-string))
+-; (:return-type c-string :malloc-free))
++(def-call-out canonicalize_file_name (:arguments (name c-string))
++ (:return-type c-string :malloc-free))
+
+ (def-call-out realpath
+ (:arguments (name c-string)
+@@ -1040,9 +1039,8 @@
+ (def-call-out access (:arguments (name c-string) (type int))
+ (:return-type int))
+
+-; You can uncomment this if your compiler sets __USE_GNU
+-; (def-call-out euidaccess (:arguments (name c-string) (type int))
+-; (:return-type int))
++(def-call-out euidaccess (:arguments (name c-string) (type int))
++ (:return-type int))
+
+ (defconstant SEEK_SET 0)
+ (defconstant SEEK_CUR 1)
+@@ -1093,9 +1091,8 @@
+ ;(def-call-out getcwd (:arguments (buf c-string :out) (size size_t)) ; ??
+ ; (:return-type c-string))
+
+-; You can uncomment this if your compiler sets __USE_GNU
+-; (def-call-out get_current_dir_name (:arguments)
+-; (:return-type c-string :malloc-free))
++(def-call-out get_current_dir_name (:arguments)
++ (:return-type c-string :malloc-free))
+
+ ;(def-call-out getwd (:arguments (buf c-string :out)) ; ??
+ ; (:return-type c-string))
+@@ -1323,8 +1320,7 @@
+ ; (:arguments (size int) (list (c-ptr (c-array gid_t ??)) :out)) ; ??
+ ; (:return-type int))
+
+-; You can uncomment this if your compiler sets __USE_GNU
+-; (def-call-out group_member (:arguments (gid gid_t)) (:return-type boolean))
++(def-call-out group_member (:arguments (gid gid_t)) (:return-type boolean))
+ (def-call-out setuid (:arguments (uid uid_t)) (:return-type int))
+ (def-call-out setreuid (:arguments (ruid uid_t) (euid uid_t))
+ (:return-type int))
+@@ -1821,8 +1817,7 @@
+ (:return-type c-string :malloc-free))
+ (def-call-out ungetc (:arguments (c int) (fp FILE))
+ (:return-type int))
+-; You can uncomment this if your compiler sets __USE_GNU
+-; (def-call-out fcloseall (:arguments) (:return-type int))
++(def-call-out fcloseall (:arguments) (:return-type int))
+ (def-call-out fdopen (:arguments (fildes int) (mode c-string))
+ (:return-type c-pointer))
+ (def-call-out fileno (:arguments (fp FILE)) (:return-type int))
+@@ -1900,11 +1895,11 @@
+ (:return-type (c-ptr-null dirent)))
+ (def-call-out readdir64 (:arguments (dirp c-pointer))
+ (:return-type (c-ptr-null dirent64)))
+-(def-call-out readdir_r
++(def-call-out readdir_r ; deprecated
+ (:arguments (dirp c-pointer) (entry (c-ptr dirent) :out :alloca)
+ (result (c-ptr (c-ptr dirent)) :out :alloca)) ; ??
+ (:return-type int))
+-(def-call-out readdir64_r
++(def-call-out readdir64_r ; deprecated
+ (:arguments (dirp c-pointer) (entry (c-ptr dirent64) :out :alloca)
+ (result (c-ptr (c-ptr dirent64)) :out :alloca)) ; ??
+ (:return-type int))
+diff -r -U3 clisp-2.49.90.orig/modules/bindings/glibc/test.tst clisp-2.49.90/modules/bindings/glibc/test.tst
+--- clisp-2.49.90.orig/modules/bindings/glibc/test.tst 2018-01-10 00:04:26.000000000 +0100
++++ clisp-2.49.90/modules/bindings/glibc/test.tst 2018-02-12 20:50:48.225769407 +0100
+@@ -14,6 +14,16 @@
+ (= linux:DT_DIR (linux:dirent64-d_type (show (linux:readdir64 *d*)))) T
+ (linux:closedir *d*) 0
+
++(stringp (show (linux:get-domain-name))) T
++(stringp (show (linux:get-host-name))) T
++
++;; usually __USE_GNU is defined, so this should work:
++(let* ((d (linux:get_current_dir_name))
++ (c (linux:canonicalize_file_name (concatenate 'string d "/."))))
++ (or (string= d c)
++ (list :cur-dir d :canonical c)))
++T
++
+ (defparameter *d* (show (linux:opendir "."))) *D*
+ (linux:dirent-d_name (show (linux:readdir *d*))) "."
+ (linux:dirent-d_name (show (linux:readdir *d*))) ".."
+diff -r -U3 clisp-2.49.90.orig/src/foreign1.lisp clisp-2.49.90/src/foreign1.lisp
+--- clisp-2.49.90.orig/src/foreign1.lisp 2018-01-10 00:04:26.000000000 +0100
++++ clisp-2.49.90/src/foreign1.lisp 2018-02-12 21:03:56.768736245 +0100
+@@ -805,14 +805,17 @@
+ c-name (to-c-string c-name) (third variable) (first variable))
+ (when *foreign-guard* (format *coutput-stream* "# endif~%"))))
+ (dolist (function *function-list*)
+- (let ((c-name (first function)))
+- (when *foreign-guard*
+- (format *coutput-stream* "# if defined(HAVE_~A)~%"
+- (string-upcase c-name)))
++ (let ((c-name (first function))
++ (guard (fourth function)))
++ (when guard
++ (format *coutput-stream* "# if ~A~%"
++ (if (eq guard t)
++ (format nil "defined(HAVE_~A)" (string-upcase c-name))
++ guard)))
+ (format *coutput-stream*
+ " register_foreign_function((void*)&~A,~A,~D);~%"
+ c-name (to-c-string c-name) (svref (second function) 3))
+- (when *foreign-guard* (format *coutput-stream* "# endif~%"))))
++ (when guard (format *coutput-stream* "# endif~%"))))
+ (maphash (lambda (type fun-vec)
+ (declare (ignore type))
+ (let ((c-name (to-c-name (car fun-vec))))
+@@ -1083,7 +1086,7 @@
+ (defmacro DEF-CALL-OUT (&whole whole-form name &rest options)
+ (setq name (check-symbol name (first whole-form)))
+ (let* ((alist
+- (parse-options options '(:name :arguments :return-type :language
++ (parse-options options '(:name :arguments :return-type :language :guard
+ :built-in :library :version :documentation)
+ whole-form))
+ (def (gensym "DEF-CALL-OUT-"))
+@@ -1095,6 +1098,7 @@
+ (version (second (assoc :version alist)))
+ (c-name (foreign-name name (assoc :name alist)))
+ (built-in (second (assoc :built-in alist)))
++ (guard (get-assoc :guard alist '*foreign-guard*))
+ ;; Maximize sharing in .fas file, reuse options
+ ;; parse-c-function ignores unknown options, e.g. :name
+ (ctype `(PARSE-C-FUNCTION ',options ',whole-form)))
+@@ -1102,7 +1106,7 @@
+ ',c-name ,ctype ',properties ,library ,version NIL)))
+ (EXT:COMPILER-LET ((,def ,ctype))
+ (EVAL-WHEN (COMPILE)
+- (UNLESS ,LIBRARY (NOTE-C-FUN ',c-name ,def ',built-in)))
++ (UNLESS ,LIBRARY (NOTE-C-FUN ',c-name ,def ',built-in ,guard)))
+ (SYSTEM::EVAL-WHEN-COMPILE
+ (SYSTEM::C-DEFUN ',name (C-TYPE-TO-SIGNATURE ,ctype))))
+ (WHEN ,def ; found library function
+@@ -1110,10 +1114,10 @@
+ (SYSTEM::%PUTD ',name ,def))
+ ',name)))
+
+-(defun note-c-fun (c-name ctype built-in) ; not ABI, compile-time only
++(defun note-c-fun (c-name ctype built-in guard) ; not ABI, compile-time only
+ (when (system::prepare-coutput-file)
+ (prepare-module)
+- (push (list c-name ctype built-in)
++ (push (list c-name ctype built-in guard)
+ *function-list*)))
+
+ (defun count-inarguments (arg-vector)
diff --git a/dev-lisp/clisp/files/clisp-2.49.92-after_glibc_cfree_bdb.patch b/dev-lisp/clisp/files/clisp-2.49.92-after_glibc_cfree_bdb.patch
new file mode 100644
index 000000000000..ae83bbb8770d
--- /dev/null
+++ b/dev-lisp/clisp/files/clisp-2.49.92-after_glibc_cfree_bdb.patch
@@ -0,0 +1,185 @@
+diff -r -U3 clisp-2.49.90.orig/modules/berkeley-db/bdb.c clisp-2.49.90/modules/berkeley-db/bdb.c
+--- clisp-2.49.90.orig/modules/berkeley-db/bdb.c 2018-01-27 12:03:01.000000000 +0100
++++ clisp-2.49.90/modules/berkeley-db/bdb.c 2018-02-12 20:37:24.203803219 +0100
+@@ -2216,7 +2216,13 @@
+ c_data.compact_timeout = timeout;
+ c_data.compact_pages = pages;
+ SYSCALL(db->compact,(db,txn,pstart,pstop,&c_data,flags,&end));
+- pushSTACK(uint32_to_I(c_data.compact_empty_buckets));
++ /* ====
++ * compact_empty_buckets is in bdb-5.3 as part of output stats
++ * however this version use bdb-4.8 which does not have it
++ * ====
++ *
++ * pushSTACK(uint32_to_I(c_data.compact_empty_buckets));
++ * */
+ pushSTACK(uint32_to_I(c_data.compact_pages_free));
+ pushSTACK(uint32_to_I(c_data.compact_pages_examine));
+ pushSTACK(uint32_to_I(c_data.compact_levels));
+diff -r -U3 clisp-2.49.90.orig/modules/bindings/glibc/linux.lisp clisp-2.49.90/modules/bindings/glibc/linux.lisp
+--- clisp-2.49.90.orig/modules/bindings/glibc/linux.lisp 2018-01-10 00:32:25.000000000 +0100
++++ clisp-2.49.90/modules/bindings/glibc/linux.lisp 2018-02-12 20:48:22.467775536 +0100
+@@ -1,7 +1,7 @@
+ ;; Foreign functions provided by the Linux C library version 6,
+ ;; i.e. the GNU C library version 2.0.7.
+ ;; Bruno Haible 10.4.1998, 19.4.1998
+-;; Sam Steingold 2002-2008, 2011
++;; Sam Steingold 2002-2008, 2011, 2013, 2016-2017
+
+ ;; NB: quite a few functions here have more portable counterparts in POSIX
+
+@@ -686,9 +686,8 @@
+ (def-call-out system? (:arguments (null c-string))
+ (:return-type boolean) (:name "system"))
+
+-; You can uncomment this if your compiler sets __USE_GNU
+-; (def-call-out canonicalize_file_name (:arguments (name c-string))
+-; (:return-type c-string :malloc-free))
++(def-call-out canonicalize_file_name (:arguments (name c-string))
++ (:return-type c-string :malloc-free))
+
+ (def-call-out realpath
+ (:arguments (name c-string)
+@@ -1040,9 +1039,8 @@
+ (def-call-out access (:arguments (name c-string) (type int))
+ (:return-type int))
+
+-; You can uncomment this if your compiler sets __USE_GNU
+-; (def-call-out euidaccess (:arguments (name c-string) (type int))
+-; (:return-type int))
++(def-call-out euidaccess (:arguments (name c-string) (type int))
++ (:return-type int))
+
+ (defconstant SEEK_SET 0)
+ (defconstant SEEK_CUR 1)
+@@ -1093,9 +1091,8 @@
+ ;(def-call-out getcwd (:arguments (buf c-string :out) (size size_t)) ; ??
+ ; (:return-type c-string))
+
+-; You can uncomment this if your compiler sets __USE_GNU
+-; (def-call-out get_current_dir_name (:arguments)
+-; (:return-type c-string :malloc-free))
++(def-call-out get_current_dir_name (:arguments)
++ (:return-type c-string :malloc-free))
+
+ ;(def-call-out getwd (:arguments (buf c-string :out)) ; ??
+ ; (:return-type c-string))
+@@ -1323,8 +1320,7 @@
+ ; (:arguments (size int) (list (c-ptr (c-array gid_t ??)) :out)) ; ??
+ ; (:return-type int))
+
+-; You can uncomment this if your compiler sets __USE_GNU
+-; (def-call-out group_member (:arguments (gid gid_t)) (:return-type boolean))
++(def-call-out group_member (:arguments (gid gid_t)) (:return-type boolean))
+ (def-call-out setuid (:arguments (uid uid_t)) (:return-type int))
+ (def-call-out setreuid (:arguments (ruid uid_t) (euid uid_t))
+ (:return-type int))
+@@ -1821,8 +1817,7 @@
+ (:return-type c-string :malloc-free))
+ (def-call-out ungetc (:arguments (c int) (fp FILE))
+ (:return-type int))
+-; You can uncomment this if your compiler sets __USE_GNU
+-; (def-call-out fcloseall (:arguments) (:return-type int))
++(def-call-out fcloseall (:arguments) (:return-type int))
+ (def-call-out fdopen (:arguments (fildes int) (mode c-string))
+ (:return-type c-pointer))
+ (def-call-out fileno (:arguments (fp FILE)) (:return-type int))
+@@ -1900,11 +1895,11 @@
+ (:return-type (c-ptr-null dirent)))
+ (def-call-out readdir64 (:arguments (dirp c-pointer))
+ (:return-type (c-ptr-null dirent64)))
+-(def-call-out readdir_r
++(def-call-out readdir_r ; deprecated
+ (:arguments (dirp c-pointer) (entry (c-ptr dirent) :out :alloca)
+ (result (c-ptr (c-ptr dirent)) :out :alloca)) ; ??
+ (:return-type int))
+-(def-call-out readdir64_r
++(def-call-out readdir64_r ; deprecated
+ (:arguments (dirp c-pointer) (entry (c-ptr dirent64) :out :alloca)
+ (result (c-ptr (c-ptr dirent64)) :out :alloca)) ; ??
+ (:return-type int))
+diff -r -U3 clisp-2.49.90.orig/modules/bindings/glibc/test.tst clisp-2.49.90/modules/bindings/glibc/test.tst
+--- clisp-2.49.90.orig/modules/bindings/glibc/test.tst 2018-01-10 00:04:26.000000000 +0100
++++ clisp-2.49.90/modules/bindings/glibc/test.tst 2018-02-12 20:50:48.225769407 +0100
+@@ -14,6 +14,16 @@
+ (= linux:DT_DIR (linux:dirent64-d_type (show (linux:readdir64 *d*)))) T
+ (linux:closedir *d*) 0
+
++(stringp (show (linux:get-domain-name))) T
++(stringp (show (linux:get-host-name))) T
++
++;; usually __USE_GNU is defined, so this should work:
++(let* ((d (linux:get_current_dir_name))
++ (c (linux:canonicalize_file_name (concatenate 'string d "/."))))
++ (or (string= d c)
++ (list :cur-dir d :canonical c)))
++T
++
+ (defparameter *d* (show (linux:opendir "."))) *D*
+ (linux:dirent-d_name (show (linux:readdir *d*))) "."
+ (linux:dirent-d_name (show (linux:readdir *d*))) ".."
+diff -r -U3 clisp-2.49.90.orig/src/foreign1.lisp clisp-2.49.90/src/foreign1.lisp
+--- clisp-2.49.90.orig/src/foreign1.lisp 2018-01-10 00:04:26.000000000 +0100
++++ clisp-2.49.90/src/foreign1.lisp 2018-02-12 21:03:56.768736245 +0100
+@@ -805,14 +805,17 @@
+ c-name (to-c-string c-name) (third variable) (first variable))
+ (when *foreign-guard* (format *coutput-stream* "# endif~%"))))
+ (dolist (function *function-list*)
+- (let ((c-name (first function)))
+- (when *foreign-guard*
+- (format *coutput-stream* "# if defined(HAVE_~A)~%"
+- (string-upcase c-name)))
++ (let ((c-name (first function))
++ (guard (fourth function)))
++ (when guard
++ (format *coutput-stream* "# if ~A~%"
++ (if (eq guard t)
++ (format nil "defined(HAVE_~A)" (string-upcase c-name))
++ guard)))
+ (format *coutput-stream*
+ " register_foreign_function((void*)&~A,~A,~D);~%"
+ c-name (to-c-string c-name) (svref (second function) 3))
+- (when *foreign-guard* (format *coutput-stream* "# endif~%"))))
++ (when guard (format *coutput-stream* "# endif~%"))))
+ (maphash (lambda (type fun-vec)
+ (declare (ignore type))
+ (let ((c-name (to-c-name (car fun-vec))))
+@@ -1083,7 +1086,7 @@
+ (defmacro DEF-CALL-OUT (&whole whole-form name &rest options)
+ (setq name (check-symbol name (first whole-form)))
+ (let* ((alist
+- (parse-options options '(:name :arguments :return-type :language
++ (parse-options options '(:name :arguments :return-type :language :guard
+ :built-in :library :version :documentation)
+ whole-form))
+ (def (gensym "DEF-CALL-OUT-"))
+@@ -1095,6 +1098,7 @@
+ (version (second (assoc :version alist)))
+ (c-name (foreign-name name (assoc :name alist)))
+ (built-in (second (assoc :built-in alist)))
++ (guard (get-assoc :guard alist '*foreign-guard*))
+ ;; Maximize sharing in .fas file, reuse options
+ ;; parse-c-function ignores unknown options, e.g. :name
+ (ctype `(PARSE-C-FUNCTION ',options ',whole-form)))
+@@ -1102,7 +1106,7 @@
+ ',c-name ,ctype ',properties ,library ,version NIL)))
+ (EXT:COMPILER-LET ((,def ,ctype))
+ (EVAL-WHEN (COMPILE)
+- (UNLESS ,LIBRARY (NOTE-C-FUN ',c-name ,def ',built-in)))
++ (UNLESS ,LIBRARY (NOTE-C-FUN ',c-name ,def ',built-in ,guard)))
+ (SYSTEM::EVAL-WHEN-COMPILE
+ (SYSTEM::C-DEFUN ',name (C-TYPE-TO-SIGNATURE ,ctype))))
+ (WHEN ,def ; found library function
+@@ -1110,10 +1114,10 @@
+ (SYSTEM::%PUTD ',name ,def))
+ ',name)))
+
+-(defun note-c-fun (c-name ctype built-in) ; not ABI, compile-time only
++(defun note-c-fun (c-name ctype built-in guard) ; not ABI, compile-time only
+ (when (system::prepare-coutput-file)
+ (prepare-module)
+- (push (list c-name ctype built-in)
++ (push (list c-name ctype built-in guard)
+ *function-list*)))
+
+ (defun count-inarguments (arg-vector)
diff --git a/dev-lisp/clisp/metadata.xml b/dev-lisp/clisp/metadata.xml
new file mode 100644
index 000000000000..cb525b83d172
--- /dev/null
+++ b/dev-lisp/clisp/metadata.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+ </maintainer>
+ <longdescription>
+CLISP is a Common Lisp implementation. It mostly supports the Lisp
+described in the ANSI Common Lisp standard. It includes an
+interpreter, a compiler, almost all of CLOS, a foreign language
+interface and a socket interface. An X11 interface is available
+through CLX and Garnet. Command line editing is provided by readline.
+CLISP runs on microcomputers (OS/2, Windows 95/98/NT/2000/XP, Amiga
+500-4000, Acorn RISC PC) as well as on Unix workstations (GNU/Linux,
+BSD, SVR4, Sun4, DEC Alpha OSF, HP-UX, NeXTstep, SGI, AIX, Sun3 and
+others) and needs only 2 MB of RAM. The user interface comes in
+German, English, French, Spanish, Dutch and Russian, and can be
+changed at run time.
+</longdescription>
+ <use>
+ <flag name="hyperspec">Use local hyperspec instead of online version</flag>
+ <flag name="new-clx">Build CLISP with support for the NEW-CLX module which is a
+-C binding to the Xorg libraries</flag>
+ <flag name="svm">Build CLISP with support for the Support Vector Machine module</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">clisp</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lisp/clozurecl-1.11.5 b/dev-lisp/clozurecl-1.11.5
deleted file mode 100644
index 09f6c58fccb7..000000000000
--- a/dev-lisp/clozurecl-1.11.5
+++ /dev/null
@@ -1,13 +0,0 @@
-DEFINED_PHASES=compile configure install prepare
-DEPEND=>=dev-lisp/asdf-2.33-r3:=
-DESCRIPTION=Common Lisp implementation, derived from Digitool's MCL product
-EAPI=6
-HOMEPAGE=https://ccl.clozure.com
-IUSE=doc
-KEYWORDS=amd64 x86 ~amd64-linux ~x86-linux ~x64-macos
-LICENSE=Apache-2.0
-RDEPEND=>=dev-lisp/asdf-2.33-r3:=
-SLOT=0
-SRC_URI=x86? ( https://github.com/Clozure/ccl/releases/download/v1.11.5/ccl-1.11.5-linuxx86.tar.gz ) amd64? ( https://github.com/Clozure/ccl/releases/download/v1.11.5/ccl-1.11.5-linuxx86.tar.gz ) arm? ( https://github.com/Clozure/ccl/releases/download/v1.11.5/ccl-1.11.5-linuxarm.tar.gz ) x86-macos? ( https://github.com/Clozure/ccl/releases/download/v1.11.5/ccl-1.11.5-darwinx86.tar.gz ) x64-macos? ( https://github.com/Clozure/ccl/releases/download/v1.11.5/ccl-1.11.5-darwinx86.tar.gz ) x86-solaris? ( https://github.com/Clozure/ccl/releases/download/v1.11.5/ccl-1.11.5-solarisx86.tar.gz ) x64-solaris? ( https://github.com/Clozure/ccl/releases/download/v1.11.5/ccl-1.11.5-solarisx86.tar.gz ) doc? ( https://ccl.clozure.com/docs/ccl.html )
-_eclasses_=desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc flag-o-matic 5128c4729303400bd8d4b0b966530955 ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=4f095790181be0abc20545bfc887cd06
diff --git a/dev-lisp/clozurecl/Manifest b/dev-lisp/clozurecl/Manifest
new file mode 100644
index 000000000000..1274efbde68a
--- /dev/null
+++ b/dev-lisp/clozurecl/Manifest
@@ -0,0 +1,7 @@
+DIST ccl-1.11.5-darwinx86.tar.gz 100515656 BLAKE2B d9ae52f7d0c481211fdf53bf6bb4bb65a66ab60bf1c3548e9f2d502e60906163121a85330e547d15e3d4bcb6ad47564e86dd93b4228a9391558463347011990f SHA512 1016ab9672839d1303809e9f5b849cf36dc300963672dfa5888b75f6dadee3106cd6f1375e544437a92c7307dc8639e423e12663ca157b851925d0e82f0cd4b7
+DIST ccl-1.11.5-linuxarm.tar.gz 40288609 BLAKE2B 5217de314e6c59e5bbee7d5608b4e92088fb57dc0d8a90454ec4653c1710857748776d9a7ee2e89e86613f64fc028aca324ea5cb3bc7eb5e9bc582e2b50766cf SHA512 0305baa66263a2182ba8deb02837287ffb6c1472987d4953caa8839cad6503815ded7fe6bfde72a823b90d3ff86322602ee3d0934e179fb2418e3b049f55be4e
+DIST ccl-1.11.5-linuxx86.tar.gz 50652181 BLAKE2B 2ed6e747a72816c6f79f58715261c41a1c3b98fa84ef4ee82ca5683383741777a46a566c7884d7fdc3dcd2e5959dab2f3fde9432945a4dc73bcece8f741ed753 SHA512 b6c16d9bba27a901f942237ed42d6b3e832910951270820a2a3d61afe2a8e7f59d383c854382cfcaa0bf8253c8d624be66d905b4170211ea39a106ca85b9a23d
+DIST ccl-1.11.5-solarisx86.tar.gz 59139069 BLAKE2B db1a904dd4e794127e7c966a9734aa92bb0415520a6af35d92008fd785004bd2ea04deb66f600b1d1dd60c0b95519e86d412b208878aaa6c2f9f8c05a27efe38 SHA512 4ae7cee7e35de41ab20d79e073b12b6bd98a23beea95c0de7d882a1f4e1ea3f9f3162844df0578aeeadb671d30a0a488092ee93b35245c693051a4ab9193fc5b
+DIST ccl.html 962003 BLAKE2B fc95ec5abbea7c2f5f247293691a5c5a7eddaa049156c38766ec9df4d1920fdee902c89db976cc6687535aef5ddda3c672b62156bf0f61b6369ade548dcb0141 SHA512 0cb9ee8f7eb6007e08241a0797519ff3bfc3d3adc0b5ac86e6a2e9e8b2e316fc421bea3b04159decc0a2b37ff7098147e25266946cc3c1ac367b93e4821a8b64
+EBUILD clozurecl-1.11.5.ebuild 3233 BLAKE2B 721bb2bf8c358aa27bfd21e5a057979f7a43510772ece6abfe4d396bca710e3e75f92fac51be9020590e7b1cb56e834dafb99e45bb28112a04ace088fe98299d SHA512 83e18a90a1bd20cc7d29eebde24b5e7cc44181978b656a3ebfbc9c27e11cc82bfcf50a4f05c68d98741b229f0903d9c6b947ce7b2b04c29222a4556b6e869a9d
+MISC metadata.xml 370 BLAKE2B 413aa932df7c52eb916d4e60093bb86eebbc6a6d5c87fe5987bd4731bc982eb707fa3e827bb659f047d9ae8ad89ae0585aac60e04d0a24ff5ac61c49833789ad SHA512 d961c24b6532aa9e5b8a2727b3ada479743434549a9aaf9ac9c7cdd4d2414a4ba078fd153537afd0daa940eb435fcfb7852bed594ad807f5bbc62a99b8503d12
diff --git a/dev-lisp/clozurecl/clozurecl-1.11.5.ebuild b/dev-lisp/clozurecl/clozurecl-1.11.5.ebuild
new file mode 100644
index 000000000000..f67f277c60af
--- /dev/null
+++ b/dev-lisp/clozurecl/clozurecl-1.11.5.ebuild
@@ -0,0 +1,97 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic multilib toolchain-funcs
+
+MY_PN=ccl
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Common Lisp implementation, derived from Digitool's MCL product"
+HOMEPAGE="https://ccl.clozure.com"
+SRC_URI="
+ x86? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-linuxx86.tar.gz )
+ amd64? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-linuxx86.tar.gz )
+ arm? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-linuxarm.tar.gz )
+ x86-macos? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-darwinx86.tar.gz )
+ x64-macos? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-darwinx86.tar.gz )
+ x86-solaris? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-solarisx86.tar.gz )
+ x64-solaris? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-solarisx86.tar.gz )
+ doc? ( ${HOMEPAGE}/docs/ccl.html )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux ~x64-macos"
+IUSE="doc"
+
+RDEPEND=">=dev-lisp/asdf-2.33-r3:="
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}"/${MY_PN}
+ENVD="${T}/50ccl"
+
+src_prepare() {
+ default
+ cp "${EPREFIX}/usr/share/common-lisp/source/asdf/build/asdf.lisp" tools/ || die
+}
+
+src_configure() {
+ if use x86-macos; then
+ CCL_RUNTIME=dx86cl; CCL_HEADERS=darwin-x86-headers; CCL_KERNEL=darwinx8632
+ elif use x64-macos; then
+ CCL_RUNTIME=dx86cl64; CCL_HEADERS=darwin-x86-headers64; CCL_KERNEL=darwinx8664
+ elif use x86-solaris; then
+ CCL_RUNTIME=sx86cl; CCL_HEADERS=solarisx86-headers; CCL_KERNEL=solarisx86
+ elif use x64-solaris; then
+ CCL_RUNTIME=sx86cl64; CCL_HEADERS=solarisx64-headers; CCL_KERNEL=solarisx64
+ elif use x86; then
+ CCL_RUNTIME=lx86cl; CCL_HEADERS=x86-headers; CCL_KERNEL=linuxx8632
+ elif use amd64; then
+ CCL_RUNTIME=lx86cl64; CCL_HEADERS=x86-headers64; CCL_KERNEL=linuxx8664
+ elif use arm; then
+ CCL_RUNTIME=armcl; CCL_HEADERS=arm-headers; CCL_KERNEL=linuxarm
+ elif use ppc; then
+ CCL_RUNTIME=ppccl; CCL_HEADERS=headers; CCL_KERNEL=linuxppc
+ elif use ppc64; then
+ CCL_RUNTIME=ppccl64; CCL_HEADERS=headers64; CCL_KERNEL=linuxppc64
+ fi
+}
+
+src_compile() {
+ emake -C lisp-kernel/${CCL_KERNEL} clean
+ emake -C lisp-kernel/${CCL_KERNEL} all CC="$(tc-getCC)"
+
+ unset CCL_DEFAULT_DIRECTORY
+ ./${CCL_RUNTIME} -n -b -Q -e '(ccl:rebuild-ccl :full t)' -e '(ccl:quit)' || die "Compilation failed"
+
+ # remove non-owner write permissions on the full-image
+ chmod go-w ${CCL_RUNTIME}{,.image} || die
+
+ esvn_clean
+}
+
+src_install() {
+ local target_dir="/usr/$(get_libdir)/${PN}"
+ local prefix_dir="${EPREFIX}/${target_dir#/}"
+
+ mkdir -p "${D}/${prefix_dir#/}"
+
+ find . -type f -name '*fsl' -delete || die
+ rm -f lisp-kernel/${CCL_KERNEL}/*.o || die
+ cp -a compiler level-0 level-1 lib library lisp-kernel scripts \
+ tools xdump ${CCL_HEADERS} ${CCL_RUNTIME} ${CCL_RUNTIME}.image \
+ "${D}/${prefix_dir#/}" || die
+
+ echo "CCL_DEFAULT_DIRECTORY=${prefix_dir}" > "${ENVD}"
+ doenvd "${ENVD}"
+
+ dosym "${target_dir}/${CCL_RUNTIME}" /usr/bin/ccl
+ dodoc doc/release-notes.txt
+
+ if use doc ; then
+ dodoc "${DISTDIR}/ccl.html"
+ dodoc -r doc/manual
+ dodoc -r examples
+ fi
+}
diff --git a/dev-lisp/clozurecl/metadata.xml b/dev-lisp/clozurecl/metadata.xml
new file mode 100644
index 000000000000..ee9b0de2aad2
--- /dev/null
+++ b/dev-lisp/clozurecl/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+</maintainer>
+<longdescription>
+Clozure Common Lisp (formerly OpenMCL) is a Common Lisp implementation.
+</longdescription>
+</pkgmetadata>
diff --git a/dev-lisp/clx-0.7.5 b/dev-lisp/clx-0.7.5
deleted file mode 100644
index b000d0347376..000000000000
--- a/dev-lisp/clx-0.7.5
+++ /dev/null
@@ -1,14 +0,0 @@
-DEFINED_PHASES=compile install
-DEPEND=sys-apps/texinfo doc? ( virtual/texi2dvi )
-DESCRIPTION=CLX is the Common Lisp interface to the X11 protocol primarily for SBCL.
-EAPI=6
-HOMEPAGE=http://www.cliki.net/CLX
-IUSE=doc
-KEYWORDS=~amd64 ~ppc ~sparc ~x86
-LICENSE=MIT
-PDEPEND=virtual/commonlisp
-RDEPEND=!dev-lisp/cl-clx
-SLOT=0
-SRC_URI=https://github.com/sharplispers/clx/archive/0.7.5.tar.gz -> clx-0.7.5.tar.gz
-_eclasses_=common-lisp-3 3f23602a5efddf587c5205de7b6de7f8 desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=89177febec4377ff81cee19543b4e7a4
diff --git a/dev-lisp/clx/Manifest b/dev-lisp/clx/Manifest
new file mode 100644
index 000000000000..065ef2c08cbf
--- /dev/null
+++ b/dev-lisp/clx/Manifest
@@ -0,0 +1,3 @@
+DIST clx-0.7.5.tar.gz 468904 BLAKE2B 30ce4de52fdbbc935bf5653f54a588537670b7d55dc038f32b4527e5f3d7b2dfe6afde3d28debf7ab5a08994155ec390f1e70dfbe45e8831fe7a977d245c9d7a SHA512 9228c37a99dcaee637c64c58183220c1ed3745e683c877f843c7de5b052d7355a3ddd50687371e8388c05bcedda062008299476b82dc8a3d26b605dde1dfa997
+EBUILD clx-0.7.5.ebuild 883 BLAKE2B 9f6a8c53c9b897c611f60700ce3c8c97bc070ba261f4ca1a60a463e7de1704edecaa6ee35325660195d8ed4848088fbcbcd7c300bb51c9e17df5a96c50057fcf SHA512 879b0aab64d4c832527c78d2e8fd8963fbb31f5b89b8ffc9c171f0459aa672d95a06ff3845eb55e54253a69fe652c2200aedd2cd3661ea477a3e9fc604801e0e
+MISC metadata.xml 840 BLAKE2B 283ee4024f59acbeb52d5db29d133000ceeefb797535b9e264f37af1141c9889dc2e965a7a431978a845194a4388567cb0df42fa7f303757fd0111fab592e79f SHA512 3106a77aee90f41316844316d1c33195f2ea9489f2d45ce6f632d9146a3e820c7c762d9e6fcbb671ad979caa96106435bd2d8f7652b60e75b49b6cbb527d9589
diff --git a/dev-lisp/clx/clx-0.7.5.ebuild b/dev-lisp/clx/clx-0.7.5.ebuild
new file mode 100644
index 000000000000..8cd18ea3e421
--- /dev/null
+++ b/dev-lisp/clx/clx-0.7.5.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit common-lisp-3 eutils
+
+DESCRIPTION="CLX is the Common Lisp interface to the X11 protocol primarily for SBCL."
+HOMEPAGE="http://www.cliki.net/CLX"
+SRC_URI="https://github.com/sharplispers/clx/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+IUSE="doc"
+
+DEPEND="sys-apps/texinfo
+ doc? ( virtual/texi2dvi )"
+RDEPEND="!dev-lisp/cl-${PN}"
+
+src_compile() {
+ cd manual || die
+ makeinfo ${PN}.texinfo -o ${PN}.info || die
+ if use doc ; then
+ VARTEXFONTS="${T}"/fonts \
+ texi2pdf ${PN}.texinfo -o ${PN}.pdf || die
+ fi
+}
+
+src_install() {
+ common-lisp-install-sources *.lisp debug demo extensions tests
+ common-lisp-install-asdf
+ dodoc NEWS CHANGES README*
+ doinfo manual/${PN}.info
+ use doc && dodoc manual/${PN}.pdf
+}
diff --git a/dev-lisp/clx/metadata.xml b/dev-lisp/clx/metadata.xml
new file mode 100644
index 000000000000..47c41000f413
--- /dev/null
+++ b/dev-lisp/clx/metadata.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+ </maintainer>
+ <longdescription lang="en">
+ CLX provides an implementation of the X Window System protocol to
+ Lisp graphics library[ies] and applications. It is the Common Lisp
+ equivalent of Xlib.
+ </longdescription>
+ <longdescription lang="es">
+ CLX ofrece una implementación del protocolo del sistema X Window
+ a las librerías y aplicaciones gráficas escritas en Lisp. Es el
+ equivamente en Common Lisp a Xlib.
+ </longdescription>
+ <use>
+ <flag name="doc">Builds documentation</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">sharplispers/clx</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lisp/cmucl-21c b/dev-lisp/cmucl-21c
deleted file mode 100644
index 61901b18176e..000000000000
--- a/dev-lisp/cmucl-21c
+++ /dev/null
@@ -1,13 +0,0 @@
-DEFINED_PHASES=compile install prepare
-DEPEND=>=dev-lisp/asdf-2.33-r3:= x11-libs/motif:0 sys-devel/bc doc? ( virtual/latex-base )
-DESCRIPTION=CMU Common Lisp is an implementation of ANSI Common Lisp
-EAPI=6
-HOMEPAGE=http://www.cons.org/cmucl/
-IUSE=X doc source
-KEYWORDS=x86
-LICENSE=public-domain
-RDEPEND=>=dev-lisp/asdf-2.33-r3:= x11-libs/motif:0
-SLOT=0
-SRC_URI=http://common-lisp.net/project/cmucl/downloads/release/21c/cmucl-src-21c.tar.bz2 http://common-lisp.net/project/cmucl/downloads/release/21c/cmucl-21c-x86-linux.tar.bz2
-_eclasses_=desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=106d8c7b78a1926b67413cb2a7ab49e5
diff --git a/dev-lisp/cmucl/Manifest b/dev-lisp/cmucl/Manifest
new file mode 100644
index 000000000000..20c6443cad1a
--- /dev/null
+++ b/dev-lisp/cmucl/Manifest
@@ -0,0 +1,8 @@
+AUX cmucl-21c-build.patch 733 BLAKE2B 51df14314e979b919ff307aa2b165106bf7d977cee7dee1002bc89cee9f8b175494ca2d9e7b1a87447b3c11e944a75ec58af661d54adeceef61a8a4c5435824b SHA512 ca4bab7ac344ef83064081252e30d4704fe5f3006f58e90024cd51a02ab82341c651ec4117e8b14912b071d730acee76e330e237e7942597bb73b94eb73fbdda
+AUX cmucl-21c-execstack-fixes.patch 3990 BLAKE2B 962e4aa31d703128e871c39bafb1be7e42be56619c8c803e745a68a0b94faa43c392b78e96d4a10758dd564c3e1791bed103edcbf986717960c1129e7f019de9 SHA512 bb32dfffa6b737af8be924f194112863b64010b00b30caf92c023a16ac1d2884f51ee724b57cdeb2786f10aad6bd0054a835c94f03b911eca4648c2e5927ce3b
+AUX cmuclrc 305 BLAKE2B 1943c5ca8f43ce890e37949fa71cbeb24a5f849c827b3e05ec240ce22527b3bea550eaf9a74c1e98f2a9c7adda4f2caf84341cf1f42e6a26f17d784769ef1f62 SHA512 36ae348795f27a7aae2e1cf10376606b9a6898b4c4f0e6da692b3e60bed21e2825ac766a51fb648f1365b238046efd155e80d70421ff65ecffe5b68342895740
+AUX site-init.lisp.in 1839 BLAKE2B d4bd6da1c3d0902b96af4abac48f981f21d4494f3da6dab9d398c3af873c4fbf23a6c9cda878099a522787875e3882fc635859253769f56d6275721bea0a7853 SHA512 374e5acf970b1bd26d2318b678cba509296f2356a4672648f8522387c216288e8f43b514004b0d0c98da5d03a5db10435d5f42f57db88c916691eb4ae93f126a
+DIST cmucl-21c-x86-linux.tar.bz2 11127872 BLAKE2B b9089a40b4a0738f9faccdfddb7b33256a561a07cedc3ef9b3ec7afddbbb9de493c2ffb9af4a8d6b6ce70ef857576870901a6b7a607f52bdaf8a0f53ddd2d07e SHA512 9097220aef612aa3d8367a86a86dc62d86d918190d2688f6e90d415c9f9d881f97f0829e9d310f700b014821d30bf5a15f7a05cdb9201c9deab10a7231e0bcb6
+DIST cmucl-src-21c.tar.bz2 6947775 BLAKE2B 828075c71ddf459d09076199af4a02f2294063bd9ef0beb6d4bcbb473dd0ff8cfdff7faa9416f640e125603301fa37c73a280db597bf4301c22fbe88c4cc2dbb SHA512 98ea0516b71af7c6f92b5f67f6c1545949fcd1dc95e1238a989c1c2858a75e2751e5eb765b29812ad5cc5de015333787dac2a63a9ddea9bb83cfd72fef6794f4
+EBUILD cmucl-21c.ebuild 3010 BLAKE2B 531d2db1b0f1b1c96eb2a43c49e76ae75c2fa6c3a611b558c539f5d136484683e0c50e22305820786b14963144531ede1a98a6dd62aba29f9f8395b05ac77447 SHA512 946baf5f68faf88410816aca55859b69256c12b4a9524c8736a773429e240febfae906c98e11a0ab0444c0358d67da85d14e4fea41a51a6960134d133e12d35b
+MISC metadata.xml 1392 BLAKE2B b301abf6448e0cd35a3dfc4c500666daabddc0d76c5b9f544963f19e8296e8a194cbc8bcdc542279ee120ab3b68d01af6626c76bb631cb12aaf41cbfc97c3759 SHA512 7e5316859890925b1e197d93339ea13067dd72a3e8d450163ea23d73656c9d203ccbbb731e762fa9def713f1debf610377620a1a2f9939e38d067b2f8e960551
diff --git a/dev-lisp/cmucl/cmucl-21c.ebuild b/dev-lisp/cmucl/cmucl-21c.ebuild
new file mode 100644
index 000000000000..1970e290a1c6
--- /dev/null
+++ b/dev-lisp/cmucl/cmucl-21c.ebuild
@@ -0,0 +1,109 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils toolchain-funcs multilib
+
+MY_PV=${PV:0:3}
+
+DESCRIPTION="CMU Common Lisp is an implementation of ANSI Common Lisp"
+HOMEPAGE="http://www.cons.org/cmucl/"
+SRC_URI="http://common-lisp.net/project/cmucl/downloads/release/${MY_PV}/cmucl-src-${MY_PV}.tar.bz2
+ http://common-lisp.net/project/cmucl/downloads/release/${MY_PV}/cmucl-${MY_PV}-x86-linux.tar.bz2"
+
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="x86"
+IUSE="X doc source"
+
+CDEPEND=">=dev-lisp/asdf-2.33-r3:=
+ x11-libs/motif:0"
+DEPEND="${CDEPEND}
+ sys-devel/bc
+ doc? ( virtual/latex-base )"
+RDEPEND="${CDEPEND}"
+
+S="${WORKDIR}"
+
+TARGET=linux-4
+
+src_prepare() {
+ eapply "${FILESDIR}"/${P}-execstack-fixes.patch
+ eapply "${FILESDIR}"/${P}-build.patch
+ eapply_user
+ #cp "${FILESDIR}"/os-common.h src/lisp/ || die
+ cp /usr/share/common-lisp/source/asdf/build/asdf.lisp src/contrib/asdf/ || die
+}
+
+src_compile() {
+ local cmuopts buildimage
+
+ if use X ; then
+ cmuopts=""
+ else
+ cmuopts="-u"
+ fi
+
+ buildimage="bin/lisp -batch"
+
+ env CC="$(tc-getCC)" bin/build.sh -v "-gentoo-${PR}" -C "" -o "${buildimage}" ${cmuopts} || die "Cannot build the compiler"
+
+ # Compile up the asdf and defsystem modules
+ ${TARGET}/lisp/lisp -noinit -nositeinit -batch << EOF || die
+(in-package :cl-user)
+(setf (ext:search-list "target:")
+ '("$TARGET/" "src/"))
+(setf (ext:search-list "modules:")
+ '("target:contrib/"))
+
+(compile-file "modules:asdf/asdf")
+(compile-file "modules:defsystem/defsystem")
+EOF
+
+ # Documentation
+ if use doc; then
+ pushd src/docs/cmu-user > /dev/null || die "directory src/docs/cmu-user does not exist"
+ emake
+ cd ../internals || die "directory src/docs/internals does not exist"
+ emake
+ popd > /dev/null
+ fi
+}
+
+src_install() {
+ bin/make-dist.sh -S -g -G root -O root -M share/man/man1 -V ${MY_PV} -A x86 -o linux ${TARGET} \
+ || die "Cannot build installation archive"
+ # Necessary otherwise tar will fail
+ dodir /usr
+ pushd "${D}"/usr > /dev/null
+ tar xzpf "${WORKDIR}"/cmucl-${MY_PV}-x86-linux.tar.gz \
+ || die "Cannot install main system"
+ if use X ; then
+ tar xzpf "${WORKDIR}"/cmucl-${MY_PV}-x86-linux.extra.tar.gz \
+ || die "Cannot install extra files"
+ fi
+ if use source; then
+ # Necessary otherwise tar will fail
+ dodir /usr/share/common-lisp/source/${PN}
+ cd "${D}"/usr/share/common-lisp/source/${PN} || die
+ tar --strip-components 1 -xzpf "${WORKDIR}"/cmucl-src-${MY_PV}.tar.gz \
+ || die "Cannot install sources"
+ fi
+ popd > /dev/null
+
+ # Install site config file
+ sed "s,@PF@,${PF},g ; s,@VERSION@,$(date +%F),g" \
+ < "${FILESDIR}"/site-init.lisp.in \
+ > "${D}"/usr/$(get_libdir)/cmucl/site-init.lisp \
+ || die "Cannot fix site-init.lisp"
+ insinto /etc/common-lisp
+ doins "${FILESDIR}"/cmuclrc || die "Failed to install cmuclrc"
+
+ # Documentation
+ dodoc doc/cmucl/README
+ if use doc; then
+ insinto /usr/share/doc/${PF}
+ doins src/docs/cmu-user/cmu-user.pdf src/docs/internals/design.pdf
+ fi
+}
diff --git a/dev-lisp/cmucl/files/cmucl-21c-build.patch b/dev-lisp/cmucl/files/cmucl-21c-build.patch
new file mode 100644
index 000000000000..4d7e4061c924
--- /dev/null
+++ b/dev-lisp/cmucl/files/cmucl-21c-build.patch
@@ -0,0 +1,22 @@
+diff -r -U2 21a.orig/bin/build.sh 21a/bin/build.sh
+--- 21a.orig/bin/build.sh 2015-05-19 07:42:40.000000000 +0600
++++ 21a/bin/build.sh 2016-04-03 20:54:08.597016537 +0600
+@@ -40,5 +40,5 @@
+ ENABLE4="yes"
+
+-version=21b
++version=21c
+ SRCDIR=src
+ BINDIR=bin
+@@ -145,10 +145,9 @@
+ $TOOLDIR/load-world.sh $TARGET "$VERSION" || { echo "Failed: $TOOLDIR/load-world.sh"; exit 1; }
+
+- $TARGET/lisp/lisp -batch -noinit -nositeinit $FPU_MODE < /dev/null || { echo "Failed: $TARGET/lisp/lisp -batch -noinit $FPU_MODE"; exit 1; }
++ $TARGET/lisp/lisp -batch -noinit -nositeinit < /dev/null || { echo "Failed: $TARGET/lisp/lisp -batch -noinit"; exit 1; }
+ return 0;
+ fi
+ }
+
+-FPU_MODE=
+ BUILDWORLD="$TOOLDIR/build-world.sh"
+ BUILD_POT="yes"
diff --git a/dev-lisp/cmucl/files/cmucl-21c-execstack-fixes.patch b/dev-lisp/cmucl/files/cmucl-21c-execstack-fixes.patch
new file mode 100644
index 000000000000..034848d64a26
--- /dev/null
+++ b/dev-lisp/cmucl/files/cmucl-21c-execstack-fixes.patch
@@ -0,0 +1,118 @@
+diff -Naur work.old/src/lisp/alpha-assem.S work/src/lisp/alpha-assem.S
+--- work.old/src/lisp/alpha-assem.S 2003-03-06 11:13:09.000000000 -0300
++++ work/src/lisp/alpha-assem.S 2010-05-10 00:06:34.000000000 -0300
+@@ -297,3 +297,7 @@
+ function_end_breakpoint_end:
+
+
++
++#if defined(__linux__) && defined(__ELF__)
++.section .note.GNU-stack,"",%progbits
++#endif
+diff -Naur work.old/src/lisp/amd64-assem.S work/src/lisp/amd64-assem.S
+--- work.old/src/lisp/amd64-assem.S 2004-07-27 19:03:53.000000000 -0300
++++ work/src/lisp/amd64-assem.S 2010-05-10 00:06:34.000000000 -0300
+@@ -1051,3 +1051,7 @@
+ .end
+
+ #endif /* LINKAGE_TABLE */
++
++#if defined(__linux__) && defined(__ELF__)
++.section .note.GNU-stack,"",%progbits
++#endif
+diff -Naur work.old/src/lisp/backtrace.c work/src/lisp/backtrace.c
+--- work.old/src/lisp/backtrace.c 2009-06-11 13:04:01.000000000 -0300
++++ work/src/lisp/backtrace.c 2010-05-10 00:06:22.000000000 -0300
+@@ -3,6 +3,8 @@
+ * Simple backtrace facility. More or less from Rob's lisp version.
+ */
+
++#include "os-common.h"
++
+ #include <stdio.h>
+ #include <signal.h>
+ #include "lisp.h"
+diff -Naur work.old/src/lisp/hppa-assem.S work/src/lisp/hppa-assem.S
+--- work.old/src/lisp/hppa-assem.S 2002-08-23 14:05:35.000000000 -0300
++++ work/src/lisp/hppa-assem.S 2010-05-10 00:06:34.000000000 -0300
+@@ -460,3 +460,7 @@
+
+ .export function_end_breakpoint_end
+ function_end_breakpoint_end
++
++#if defined(__linux__) && defined(__ELF__)
++.section .note.GNU-stack,"",%progbits
++#endif
+diff -Naur work.old/src/lisp/linux-stubs.S work/src/lisp/linux-stubs.S
+--- work.old/src/lisp/linux-stubs.S 2005-08-17 00:40:16.000000000 -0300
++++ work/src/lisp/linux-stubs.S 2010-05-10 00:06:34.000000000 -0300
+@@ -995,3 +995,7 @@
+ /* doe(yperr_string) */
+ /* doe(ypprot_err) */
+ #endif /* defined(LINKAGE_TABLE) && !defined(__FreeBSD__) */
++
++#if defined(__linux__) && defined(__ELF__)
++.section .note.GNU-stack,"",%progbits
++#endif
+diff -Naur work.old/src/lisp/lisp.c work/src/lisp/lisp.c
+--- work.old/src/lisp/lisp.c 2009-07-13 16:41:54.000000000 -0300
++++ work/src/lisp/lisp.c 2010-05-10 00:05:55.000000000 -0300
+@@ -5,6 +5,9 @@
+ *
+ */
+
++#include "os-common.h"
++#include <time.h>
++
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <limits.h>
+diff -Naur work.old/src/lisp/mips-assem.S work/src/lisp/mips-assem.S
+--- work.old/src/lisp/mips-assem.S 2002-08-23 14:01:02.000000000 -0300
++++ work/src/lisp/mips-assem.S 2010-05-10 00:06:34.000000000 -0300
+@@ -402,3 +402,7 @@
+ move v0, a1
+ j _restore_state
+ .end save_state
++
++#if defined(__linux__) && defined(__ELF__)
++.section .note.GNU-stack,"",%progbits
++#endif
+diff -Naur work.old/src/lisp/os-common.h work/src/lisp/os-common.h
+--- work.old/src/lisp/os-common.h 1969-12-31 21:00:00.000000000 -0300
++++ work/src/lisp/os-common.h 2010-05-10 00:06:22.000000000 -0300
+@@ -0,0 +1 @@
++char* convert_lisp_string(char *c_string, void *lisp_string, int len);
+diff -Naur work.old/src/lisp/ppc-assem.S work/src/lisp/ppc-assem.S
+--- work.old/src/lisp/ppc-assem.S 2006-02-25 01:35:58.000000000 -0300
++++ work/src/lisp/ppc-assem.S 2010-05-10 00:06:34.000000000 -0300
+@@ -721,3 +721,7 @@
+ SET_SIZE(fpu_restore)
+
+ #endif
++
++#if defined(__linux__) && defined(__ELF__)
++.section .note.GNU-stack,"",%progbits
++#endif
+diff -Naur work.old/src/lisp/sparc-assem.S work/src/lisp/sparc-assem.S
+--- work.old/src/lisp/sparc-assem.S 2003-10-23 23:57:00.000000000 -0300
++++ work/src/lisp/sparc-assem.S 2010-05-10 00:06:34.000000000 -0300
+@@ -837,3 +837,7 @@
+ * End:
+ */
+
++
++#if defined(__linux__) && defined(__ELF__)
++.section .note.GNU-stack,"",%progbits
++#endif
+diff -Naur work.old/src/lisp/x86-assem.S work/src/lisp/x86-assem.S
+--- work.old/src/lisp/x86-assem.S 2008-12-24 02:36:40.000000000 -0200
++++ work/src/lisp/x86-assem.S 2010-05-10 00:06:34.000000000 -0300
+@@ -798,3 +798,7 @@
+ ENDFUNC(undefined_foreign_symbol_trap)
+
+ #endif /* LINKAGE_TABLE */
++
++#if defined(__linux__) && defined(__ELF__)
++.section .note.GNU-stack,"",%progbits
++#endif
diff --git a/dev-lisp/cmucl/files/cmuclrc b/dev-lisp/cmucl/files/cmuclrc
new file mode 100644
index 000000000000..e663e92af87a
--- /dev/null
+++ b/dev-lisp/cmucl/files/cmuclrc
@@ -0,0 +1,9 @@
+;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; indent-tabs-mode: nil -*-
+;;;
+
+(in-package :common-lisp-user)
+
+(if (probe-file "/etc/gentoo-init.lisp")
+ (load "/etc/gentoo-init.lisp")
+ (format t "~%;;; Warning: There is no /etc/gentoo-init.lisp file ~
+\(which should be provided by dev-lisp/gentoo-init"))
diff --git a/dev-lisp/cmucl/files/site-init.lisp.in b/dev-lisp/cmucl/files/site-init.lisp.in
new file mode 100644
index 000000000000..1b232166c889
--- /dev/null
+++ b/dev-lisp/cmucl/files/site-init.lisp.in
@@ -0,0 +1,56 @@
+;;; -*- Mode: Lisp; Package: System -*-
+;;;
+;;; **********************************************************************
+;;; This code was written as part of the CMU Common Lisp project at
+;;; Carnegie Mellon University, and has been placed in the public domain.
+;;;
+
+;;; Heavy modifications by Peter Van Eynde
+
+;;; More modifications for Gentoo by Matthew Kennedy
+;;; <mkennedy@gentoo.org>
+
+(in-package "SYSTEM")
+
+(if (probe-file "/etc/cmuclrc")
+ (load "/etc/cmuclrc")
+ (format t "~%;;; Warning: There is no /etc/cmuclrc file (which should have been created during emerge"))
+
+;;; If you have sources installed on your system, un-comment the following form
+;;; and change it to point to the source location. This will allow the Hemlock
+;;; "Edit Definition" command and the debugger to find sources for functions in
+;;; the core.
+(when (probe-file #p"/usr/share/common-lisp/source/cmucl/")
+ (setf (ext:search-list "target:")
+ '(
+ "/usr/share/common-lisp/source/cmucl/" ; object dir
+ )))
+
+;;; (setf (ext:search-list "library:") '("/usr/lib/cmucl/lib/"))
+;;; for safety...
+
+;;; Put your site name here...
+(setq *short-site-name* "Unknown")
+(setq *long-site-name* "Site name not initialized")
+
+(in-package :common-lisp-user)
+
+;;; newbie functions, delete if you don't like them
+
+(defun help ()
+ (format t "~
+Welcome to the Gentoo GNU/Linux port of CMUCL.
+
+The CMUCL REPL does not have GNU Readline-like support, however
+you may wish to install rlwap (see: app-misc/rlwrap) to achieve
+the same effect.
+
+If you think you found a bug, please use http://bugs.gentoo.org/
+
+Read the documentation in /usr/share/doc/@PF@.
+
+\(quit) exit Lisp
+\(describe 'foo) gives information about foo
+\(inspect '*foo*) interactively inspects *foo*
+\(apropos \"foo\") briefly describe all symbols which match \"foo\"
+"))
diff --git a/dev-lisp/cmucl/metadata.xml b/dev-lisp/cmucl/metadata.xml
new file mode 100644
index 000000000000..914e477a115a
--- /dev/null
+++ b/dev-lisp/cmucl/metadata.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+<email>common-lisp@gentoo.org</email>
+<name>Gentoo Common Lisp Project</name>
+</maintainer>
+<longdescription>
+CMUCL is a free implementation of the Common Lisp programming language
+which runs on most major Unix platforms. It mainly conforms to the
+ANSI Common Lisp standard. Here is a summary of its main features:
+
+ * a sophisticated native-code compiler which is capable of powerful
+ type inferences, and generates code competitive in speed with C
+ compilers.
+
+ * generational garbage collection and multiprocessing capability on
+ the x86 ports.
+
+ * a foreign function interface which allows interfacing with C code
+ and system libraries, including shared libraries on most platforms,
+ and direct access to Unix system calls.
+
+ * support for interprocess communication and remote procedure calls.
+
+ * an implementation of CLOS, the Common Lisp Object System, which
+ includes multimethods and a metaobject protocol.
+
+ * a graphical source-level debugger using a Motif interface, and a
+ code profiler.
+</longdescription>
+<use>
+<flag name="doc">Installs package documentation</flag>
+<flag name="source">Include source code for CMUCL in installation</flag>
+<flag name="X">Build CLX, CLM, or Hemlock</flag>
+</use>
+</pkgmetadata>
diff --git a/dev-lisp/ecls-16.1.3 b/dev-lisp/ecls-16.1.3
deleted file mode 100644
index cea4fcbf1a07..000000000000
--- a/dev-lisp/ecls-16.1.3
+++ /dev/null
@@ -1,14 +0,0 @@
-DEFINED_PHASES=compile configure install prepare setup
-DEPEND=dev-libs/gmp:0 virtual/libffi libatomic? ( dev-libs/libatomic_ops ) >=dev-libs/boehm-gc-7.1[threads?] >=dev-lisp/asdf-2.33-r3:= app-text/texi2html emacs? ( virtual/emacs >=app-eselect/eselect-emacs-1.12 )
-DESCRIPTION=ECL is an embeddable Common Lisp implementation
-EAPI=6
-HOMEPAGE=https://common-lisp.net/project/ecl/
-IUSE=cxx debug emacs gengc precisegc cpu_flags_x86_sse +threads +unicode +libatomic X
-KEYWORDS=amd64 ~ppc ~sparc x86
-LICENSE=BSD-2 LGPL-2.1+
-RDEPEND=dev-libs/gmp:0 virtual/libffi libatomic? ( dev-libs/libatomic_ops ) >=dev-libs/boehm-gc-7.1[threads?] >=dev-lisp/asdf-2.33-r3:=
-RESTRICT=test
-SLOT=0/16.1.3
-SRC_URI=https://common-lisp.net/project/ecl/static/files/release/ecl-16.1.3.tgz
-_eclasses_=desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=c3c742cd36536e143d27f6330a7653bd
diff --git a/dev-lisp/ecls/Manifest b/dev-lisp/ecls/Manifest
new file mode 100644
index 000000000000..25c581b0617f
--- /dev/null
+++ b/dev-lisp/ecls/Manifest
@@ -0,0 +1,6 @@
+AUX README.Gentoo 632 BLAKE2B 3067b3165fb18fb2ef83a70513e73df3a10b94d97920931a15764e1f01d62db5c908fffd9bde06d1cee7b507884470025189aa3e4ab3c2273246071922d95744 SHA512 df0640792271d01f84437645fe8854740b17dd349e36b76711c55f6f4fefa7d2fd810176ece2a25d8cab88192f31a6df38e67dfcb7992857e5d038ad74b11c8a
+AUX ecls-16.1.3-build.patch 341 BLAKE2B 6a3b588010b66b6e060dfa29642bacea08e77e64cb9674c5677da69c3f3d7668e7893a16c67980b6ea87642c9961b475a29aafdf786afb3903ac4a6552164f30 SHA512 0af8f0704e79197a4d7857ae11f20f0086f2e1c3d2578ec613c6ce5df742e35b9676399d8f724528781a530426425a977646ec75b317f01609d17d3a98b04ef4
+AUX ecls-16.1.3-headers-gentoo.patch 446 BLAKE2B db2adc332867435e799e2779fbad5ebb175b247db5de7ab436da6631d31dc8d6059736dbb41be6fd91b0fd8116ee84e361772ae5da29c1448627bbeb07212646 SHA512 a58b39deb9f8577da66216fd6902803019751171e4415149a89bdb72f13a006e5f6d9bede2312521162a0895340c1a1ce756b09bc0a18dccceca3e4c0950a7cb
+DIST ecl-16.1.3.tgz 7459212 BLAKE2B 4f9d6ad2bd92ede4b5b20857b95a48bad5002049e83611865d9cf13e7131adfaad147a31f22f9a3f6a2c06e46db1996aa98135c28b97bf5ef16e17b5eba0dc4b SHA512 5d743f422f6bc24671abf4c739cde8273d08f056906a1ef8aed5145c703b6d52c7fa4b5e0be8c125f32240c20ce053007786bb3ae81cc34d47791f6fae0819c1
+EBUILD ecls-16.1.3.ebuild 2406 BLAKE2B 95287ef8109fd47d030d46fed47bf0205ea4344cca2edeb177220ad751bbbf6be3240089ef49e2f2a5f6e75aea7cfef7a0b96873bf93e1dda17f104032b577d5 SHA512 fd4bfaeed4bb257724e33d105d499fc19f8d760a98ff8989eb08c540553c929ddb7478e644255bb1f1c5f239057d2666f1f6904d470b283d9c0234bf6767b9ed
+MISC metadata.xml 901 BLAKE2B 96892af45b0d5c6b7c0e0ee20010ce7ac068a25d024d31f2dae1acd730aaa62f7589f322d7ad0ade27a03cdae7eeef5297adcd9fb821ca67d4e1ba88de1c2a17 SHA512 15403f25533646601eb454946599d1d97353038286df0d075f923b598fe44047e525745a33f7e3dbc15fee717d6311abbe546371ecbc4c9df347771dd5c007e9
diff --git a/dev-lisp/ecls/ecls-16.1.3.ebuild b/dev-lisp/ecls/ecls-16.1.3.ebuild
new file mode 100644
index 000000000000..d0b75dd9dd39
--- /dev/null
+++ b/dev-lisp/ecls/ecls-16.1.3.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils multilib
+
+# test phase only works if ecls already installed #516876
+RESTRICT="test"
+
+MY_P=ecl-${PV}
+
+DESCRIPTION="ECL is an embeddable Common Lisp implementation"
+HOMEPAGE="https://common-lisp.net/project/ecl/"
+SRC_URI="https://common-lisp.net/project/ecl/static/files/release/${MY_P}.tgz"
+
+LICENSE="BSD-2 LGPL-2.1+"
+SLOT="0/${PV}"
+KEYWORDS="amd64 ~ppc ~sparc x86"
+IUSE="cxx debug emacs gengc precisegc cpu_flags_x86_sse +threads +unicode +libatomic X"
+
+CDEPEND="dev-libs/gmp:0
+ virtual/libffi
+ libatomic? ( dev-libs/libatomic_ops )
+ >=dev-libs/boehm-gc-7.1[threads?]
+ >=dev-lisp/asdf-2.33-r3:="
+DEPEND="${CDEPEND}
+ app-text/texi2html
+ emacs? ( virtual/emacs >=app-eselect/eselect-emacs-1.12 )"
+RDEPEND="${CDEPEND}"
+
+S="${WORKDIR}"/${MY_P}
+
+PATCHES=(
+ "${FILESDIR}/${P}-headers-gentoo.patch"
+ "${FILESDIR}/${P}-build.patch"
+)
+
+pkg_setup () {
+ if use gengc || use precisegc ; then
+ ewarn "You have enabled the generational garbage collector or"
+ ewarn "the precise collection routines. These features are not very stable"
+ ewarn "at the moment and may cause crashes."
+ ewarn "Don't enable them unless you know what you're doing."
+ fi
+}
+
+src_prepare() {
+ default
+ cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die
+}
+
+src_configure() {
+ econf \
+ --with-system-gmp \
+ --enable-boehm=system \
+ --enable-longdouble=yes \
+ --with-dffi \
+ $(use_with cxx) \
+ $(use_enable gengc) \
+ $(use_enable precisegc) \
+ $(use_with debug debug-cflags) \
+ $(use_enable libatomic libatomic system) \
+ $(use_with cpu_flags_x86_sse sse) \
+ $(use_enable threads) \
+ $(use_with threads __thread) \
+ $(use_enable unicode) \
+ $(use_with unicode unicode-names) \
+ $(use_with X x)
+}
+
+src_compile() {
+ if use emacs; then
+ local ETAGS=$(eselect --brief etags list | sed -ne '/emacs/{p;q}')
+ [[ -n ${ETAGS} ]] || die "No etags implementation found"
+ pushd build > /dev/null || die
+ emake ETAGS=${ETAGS} TAGS
+ popd > /dev/null
+ else
+ touch build/TAGS
+ fi
+
+ #parallel make fails
+ emake -j1 || die "Compilation failed"
+}
+
+src_install () {
+ emake DESTDIR="${D}" install || die "Installation failed"
+
+ dodoc README.md CHANGELOG
+ dodoc "${FILESDIR}"/README.Gentoo
+ pushd build/doc
+ newman ecl.man ecl.1
+ newman ecl-config.man ecl-config.1
+ popd
+}
diff --git a/dev-lisp/ecls/files/README.Gentoo b/dev-lisp/ecls/files/README.Gentoo
new file mode 100644
index 000000000000..9bb82f220097
--- /dev/null
+++ b/dev-lisp/ecls/files/README.Gentoo
@@ -0,0 +1,15 @@
+-*- outline -*-
+
+Gentoo GNU/Linux specific notes for ECL
+---------------------------------------
+
+This is the README.Gentoo file from /usr/share/doc/@PF@/ directory.
+
+ * The Gentoo port includes a patch to ECL's installed header file (ech.h) so
+ that TRUE and FALSE are not redefined if they're already included from
+ elsewhere. This makes it easier to use ECL with other software which defines
+ those C preprocesser symbols (eg. glib-2.0).
+
+If you encounter any problems or have suggestions, use http://bugs.gentoo.org.
+Please don't bother the upstream authors unless you are absolutely certain it is
+not Gentoo-related.
diff --git a/dev-lisp/ecls/files/ecls-16.1.3-build.patch b/dev-lisp/ecls/files/ecls-16.1.3-build.patch
new file mode 100644
index 000000000000..ff7d6cd74d8b
--- /dev/null
+++ b/dev-lisp/ecls/files/ecls-16.1.3-build.patch
@@ -0,0 +1,10 @@
+diff -r -U2 ecl-16.1.3.orig/src/c/printer/write_sse.d ecl-16.1.3/src/c/printer/write_sse.d
+--- ecl-16.1.3.orig/src/c/printer/write_sse.d 2016-12-19 17:25:00.000000000 +0700
++++ ecl-16.1.3/src/c/printer/write_sse.d 2016-12-19 19:20:01.863563607 +0700
+@@ -13,4 +13,6 @@
+ */
+
++#include <ecl/config.h>
++
+ #ifdef ECL_SSE2
+ #include <ecl/ecl.h>
diff --git a/dev-lisp/ecls/files/ecls-16.1.3-headers-gentoo.patch b/dev-lisp/ecls/files/ecls-16.1.3-headers-gentoo.patch
new file mode 100644
index 000000000000..10802aa48803
--- /dev/null
+++ b/dev-lisp/ecls/files/ecls-16.1.3-headers-gentoo.patch
@@ -0,0 +1,15 @@
+diff -r -U2 ecl-16.1.3.orig/src/h/object.h ecl-16.1.3/src/h/object.h
+--- ecl-16.1.3.orig/src/h/object.h 2016-12-19 17:25:00.000000000 +0700
++++ ecl-16.1.3/src/h/object.h 2016-12-19 19:22:21.147557750 +0700
+@@ -26,6 +26,11 @@
+ */
+
++#ifndef TRUE
+ #define TRUE 1 /* boolean true value */
++#endif
++
++#ifndef FALSE
+ #define FALSE 0 /* boolean false value */
++#endif
+
+ #if !defined(__cplusplus) && !defined(bool)
diff --git a/dev-lisp/ecls/metadata.xml b/dev-lisp/ecls/metadata.xml
new file mode 100644
index 000000000000..8b14211eb876
--- /dev/null
+++ b/dev-lisp/ecls/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+ </maintainer>
+ <longdescription>
+ECL (Embeddable Common Lisp) is an implementation of the Common Lisp language as
+described in the X3J13 Ansi specification, featuring CLOS (Common Lisp Object
+System), conditions, loops, etc, plus a translator to C, which can produce
+standalone executables.
+</longdescription>
+ <use>
+ <flag name="gengc">Use generational garbage collection (experimental)</flag>
+ <flag name="precisegc">Use type information during garbage collection (experimental)</flag>
+ <flag name="libatomic">Use <pkg>dev-libs/libatomic_ops</pkg> library</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">ecls</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lisp/flexi-streams-1.0.16 b/dev-lisp/flexi-streams-1.0.16
deleted file mode 100644
index aedc80557d06..000000000000
--- a/dev-lisp/flexi-streams-1.0.16
+++ /dev/null
@@ -1,12 +0,0 @@
-DEFINED_PHASES=compile install
-DESCRIPTION=Flexible bivalent streams for Common Lisp
-EAPI=6
-HOMEPAGE=http://weitz.de/flexi-streams/ http://www.cliki.net/flexi-streams/
-KEYWORDS=amd64 ~ppc ~sparc x86
-LICENSE=BSD-2
-PDEPEND=virtual/commonlisp
-RDEPEND=!dev-lisp/cl-flexi-streams >=dev-lisp/trivial-gray-streams-20060925
-SLOT=0
-SRC_URI=https://github.com/edicl/flexi-streams/archive/v1.0.16.tar.gz -> flexi-streams-1.0.16.tar.gz
-_eclasses_=common-lisp-3 3f23602a5efddf587c5205de7b6de7f8 desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=6b400638654f3a48c25b94b2b8fb1d01
diff --git a/dev-lisp/flexi-streams-1.0.17 b/dev-lisp/flexi-streams-1.0.17
deleted file mode 100644
index 7d431dd85f0e..000000000000
--- a/dev-lisp/flexi-streams-1.0.17
+++ /dev/null
@@ -1,12 +0,0 @@
-DEFINED_PHASES=compile install
-DESCRIPTION=Flexible bivalent streams for Common Lisp
-EAPI=6
-HOMEPAGE=http://weitz.de/flexi-streams/ http://www.cliki.net/flexi-streams/
-KEYWORDS=~amd64 ~ppc ~sparc ~x86
-LICENSE=BSD-2
-PDEPEND=virtual/commonlisp
-RDEPEND=!dev-lisp/cl-flexi-streams >=dev-lisp/trivial-gray-streams-20060925
-SLOT=0
-SRC_URI=https://github.com/edicl/flexi-streams/archive/v1.0.17.tar.gz -> flexi-streams-1.0.17.tar.gz
-_eclasses_=common-lisp-3 3f23602a5efddf587c5205de7b6de7f8 desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=d7a32ca4f7594b9d0e81fa3c9d599298
diff --git a/dev-lisp/flexi-streams/Manifest b/dev-lisp/flexi-streams/Manifest
new file mode 100644
index 000000000000..cd1a0458bc86
--- /dev/null
+++ b/dev-lisp/flexi-streams/Manifest
@@ -0,0 +1,5 @@
+DIST flexi-streams-1.0.16.tar.gz 135698 BLAKE2B 9d6d5b064f10d27ce60d5a8a6792b7c36e63d393f64c98148bfd9addd36483e1e4d9e2b699c0ae151c55d88e01bd86fea3197e082b001face2c44206229c3e21 SHA512 66b7c5231616c7a6095a52d6c679717795c9308e33487536a5e1b7f0d25f26aacd2579a76c351f8e16a967a0611456cbc97b3824f4d9cf4875b8e48b0c4f7c78
+DIST flexi-streams-1.0.17.tar.gz 135883 BLAKE2B 96670bffc8b53196d2138bff6bdcaaae74d3a9318bb637cb52914de0905be86d3d5ce40ed3f5f87deec75cbad609d339fc0656f8542ee05edae5c9c342430a90 SHA512 58a19214f74e00948dd5c15453cb68a65ad600a78fd7b637018914446a3953f68efa5e229b3d27e93464d8f273e82aa71d0fafe9b2ace77e40d23c5aea756d49
+EBUILD flexi-streams-1.0.16.ebuild 596 BLAKE2B e6ff52d7856210b52fb6abf3c18fd3f2616d8984a01aef603407564e8f19e59a1d1ae877bcade69eccbb611b883ac52de2b712f4eb33c59debe8e9c5e50ad1a6 SHA512 d77a4fb7ee26b503719c7cfbb17c56174d7a1942379546f9103136e5a5519b16e958dda0c67535d2bdbb01b13da3ac44ad6d8053cc331d1e1b7454f8b5f34028
+EBUILD flexi-streams-1.0.17.ebuild 599 BLAKE2B 94d59969b6a2015dc32ac437b56f316791d2c12949a71e23154338a475fedacd027c7521e95798302cd58bcb643262d2e0748e2210a3be8a9beca2496bb7ec82 SHA512 fc284a2ab2aa79b46d01db0cf6bf126cc639b1b89c9f175daf480b27dc027860b9a626a8c38a6115e6512e3b5370c60ef165ee8e3ce4a730a65d5de116838b6e
+MISC metadata.xml 1203 BLAKE2B b3e8f3eda7beb04db32d4ce77c18e7f1704a653ddf7b89a02417e09ba30556eff28dd06d9f9a9c215191abe6d5e79bf4318b4212c1b1f6f208a62fbb011ba572 SHA512 37681d2d10934500886ea68894e0fc7b7aa0f5082338cb7844250cc39ad9fc83b66e71d40fedc91e7d675af7fba043bf4bcd40ea85adbdb4ba8348787926504b
diff --git a/dev-lisp/flexi-streams/flexi-streams-1.0.16.ebuild b/dev-lisp/flexi-streams/flexi-streams-1.0.16.ebuild
new file mode 100644
index 000000000000..f9d5b59764d1
--- /dev/null
+++ b/dev-lisp/flexi-streams/flexi-streams-1.0.16.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit common-lisp-3
+
+DESCRIPTION="Flexible bivalent streams for Common Lisp"
+HOMEPAGE="http://weitz.de/flexi-streams/
+ http://www.cliki.net/flexi-streams/"
+SRC_URI="https://github.com/edicl/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~sparc x86"
+IUSE=""
+
+RDEPEND="!dev-lisp/cl-${PN}
+ >=dev-lisp/trivial-gray-streams-20060925"
+
+src_install() {
+ common-lisp-install-sources *.lisp
+ common-lisp-install-asdf
+ dodoc doc/index.html
+}
diff --git a/dev-lisp/flexi-streams/flexi-streams-1.0.17.ebuild b/dev-lisp/flexi-streams/flexi-streams-1.0.17.ebuild
new file mode 100644
index 000000000000..672410b9b419
--- /dev/null
+++ b/dev-lisp/flexi-streams/flexi-streams-1.0.17.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit common-lisp-3
+
+DESCRIPTION="Flexible bivalent streams for Common Lisp"
+HOMEPAGE="http://weitz.de/flexi-streams/
+ http://www.cliki.net/flexi-streams/"
+SRC_URI="https://github.com/edicl/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+IUSE=""
+
+RDEPEND="!dev-lisp/cl-${PN}
+ >=dev-lisp/trivial-gray-streams-20060925"
+
+src_install() {
+ common-lisp-install-sources *.lisp
+ common-lisp-install-asdf
+ dodoc docs/index.html
+}
diff --git a/dev-lisp/flexi-streams/metadata.xml b/dev-lisp/flexi-streams/metadata.xml
new file mode 100644
index 000000000000..aee2b661396a
--- /dev/null
+++ b/dev-lisp/flexi-streams/metadata.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+ </maintainer>
+ <longdescription lang="en">
+ FLEXI-STREAMS implements "virtual" bivalent streams that can be
+ layered atop real binary or bivalent streams and that can be used
+ to read and write character data in various single- or multi-octet
+ encodings which can be changed on the fly. It also supplies
+ in-memory binary streams which are similar to string streams.
+ </longdescription>
+ <longdescription lang="es">
+ FLEXI-STREAMS implementa flujos de datos bivalentes "virtuales"
+ que se pueden superponer a flujos de datos binarios reales o
+ bivalentes y que pueden ser utilizados para leer y escribir datos
+ en caracteres en distintas codificaciones sencillas o multi-octeto
+ que a su vez se pueden cambiar al vuelo. También proporciona flujos
+ de datos en memoria que son similares a los flujos de datos de
+ cadenas de caracteres.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">edicl/flexi-streams</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lisp/gcl-2.6.10 b/dev-lisp/gcl-2.6.10
deleted file mode 100644
index 847fe7432886..000000000000
--- a/dev-lisp/gcl-2.6.10
+++ /dev/null
@@ -1,14 +0,0 @@
-DEFINED_PHASES=compile configure install postinst postrm prepare test
-DEPEND=emacs? ( virtual/emacs ) readline? ( sys-libs/readline:= ) athena? ( x11-libs/libXaw ) >=dev-libs/gmp-4.1:= tk? ( dev-lang/tk:= ) X? ( x11-libs/libXt x11-libs/libXext x11-libs/libXmu x11-libs/libXaw ) virtual/latex-base virtual/texi2dvi >=app-text/texi2html-1.64 >=sys-devel/autoconf-2.52
-DESCRIPTION=GNU Common Lisp
-EAPI=5
-HOMEPAGE=https://www.gnu.org/software/gcl/gcl.html
-IUSE=+ansi athena emacs +readline tk X
-KEYWORDS=amd64 ~arm x86
-LICENSE=LGPL-2 GPL-2
-RDEPEND=emacs? ( virtual/emacs ) readline? ( sys-libs/readline:= ) athena? ( x11-libs/libXaw ) >=dev-libs/gmp-4.1:= tk? ( dev-lang/tk:= ) X? ( x11-libs/libXt x11-libs/libXext x11-libs/libXmu x11-libs/libXaw ) virtual/latex-base
-RESTRICT=strip
-SLOT=0
-SRC_URI=mirror://gnu/gcl/gcl-2.6.10.tar.gz https://dev.gentoo.org/~grozin/gcl-2.6.10-fedora.tar.bz2
-_eclasses_=desktop 1b286a7e7143d8c4ec89cd0d2743a097 elisp-common 23f47b2e1de7abf387105eddd1318738 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc flag-o-matic 5128c4729303400bd8d4b0b966530955 ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=b897c059f47997d47fbdcb4212e1196a
diff --git a/dev-lisp/gcl-2.6.12 b/dev-lisp/gcl-2.6.12
deleted file mode 100644
index 13fdc81ccc40..000000000000
--- a/dev-lisp/gcl-2.6.12
+++ /dev/null
@@ -1,14 +0,0 @@
-DEFINED_PHASES=compile configure install postinst postrm prepare test
-DEPEND=emacs? ( virtual/emacs ) readline? ( sys-libs/readline:= ) athena? ( x11-libs/libXaw ) >=dev-libs/gmp-4.1:= tk? ( dev-lang/tk:= ) X? ( x11-libs/libXt x11-libs/libXext x11-libs/libXmu x11-libs/libXaw ) virtual/latex-base virtual/texi2dvi >=app-text/texi2html-1.64 >=sys-devel/autoconf-2.52
-DESCRIPTION=GNU Common Lisp
-EAPI=5
-HOMEPAGE=https://www.gnu.org/software/gcl/gcl.html
-IUSE=+ansi athena emacs +readline tk X
-KEYWORDS=~amd64 ~arm ~ppc ~ppc64 ~x86
-LICENSE=LGPL-2 GPL-2
-RDEPEND=emacs? ( virtual/emacs ) readline? ( sys-libs/readline:= ) athena? ( x11-libs/libXaw ) >=dev-libs/gmp-4.1:= tk? ( dev-lang/tk:= ) X? ( x11-libs/libXt x11-libs/libXext x11-libs/libXmu x11-libs/libXaw ) virtual/latex-base
-RESTRICT=strip
-SLOT=0
-SRC_URI=mirror://gnu/gcl/gcl-2.6.12.tar.gz https://dev.gentoo.org/~grozin/gcl-2.6.12-fedora.tar.bz2
-_eclasses_=desktop 1b286a7e7143d8c4ec89cd0d2743a097 elisp-common 23f47b2e1de7abf387105eddd1318738 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc flag-o-matic 5128c4729303400bd8d4b0b966530955 ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=c795e46a9b42777bd367ea245f45a825
diff --git a/dev-lisp/gcl/Manifest b/dev-lisp/gcl/Manifest
new file mode 100644
index 000000000000..3a0a35e0f5c3
--- /dev/null
+++ b/dev-lisp/gcl/Manifest
@@ -0,0 +1,13 @@
+AUX 64gcl-gentoo.el 184 BLAKE2B 69607d9ac06e897bb02deeed65807438a19068f9d8de5179247e73576c18483a4a1b193af27a3811383f1c68072f787f6214054d9763bee1f6a5a561e6f65259 SHA512 06749b0c4ec7a34a7fdbb591d40106fe00a794e6db0950cc7187293d4c495d5c908235a2ba38236132618442924a7feae08496356fcd4b0139477cd89121e3cf
+AUX bootstrap-gcl 336 BLAKE2B a1c94177ccf15e2febd2315d83eb965903f0b22b8dfe230102891432564dcd8198b210aa004da3ad0d91e0b2e7ba43cc5e4e8c981923efb7f15a112e30dff86b SHA512 481a9ffa1102534c36a1a2084dda4b1ecd822888fafac4e6f0691b73ce0cc60e5328f628998ccef38bf75a26f3b79b24adf59562dc7cad23c3033a22d9593d0f
+AUX gcl-2.6.12-gcc5.patch 469 BLAKE2B 7ef376f56d4b9d04fa7d3e5162b22afd8276337f103ae7ab2d5d59759c99e479c4341773b158ffe5095e49aae8cab69f97387e6eff2847c6502057a3a0a3fe07 SHA512 b2dffb7a8b3f89ab8d18d6d23dfc756e9e70921d036f9d7b2445351b9e3b67bdecff286b04f8dcb5f30b5199635cd44f3f3a28cde8ec150911fd445d172c70fb
+AUX gcl-gmp-6.patch 363 BLAKE2B 103d473dc971c138ed4c7584fb61264e0ce4e6ef5823beade51a3ed4a5cae769564ae9ad252a6e40723e3ac8b5a33b9631d41954034ebc6324c58b878f4e1260 SHA512 cc578a915d154e94cf992f79e5a0130d294f506da13315bef060e19b08af3390942b2ebd5b4989acb37582315f3396fe605b56e9e441755728f54cf693be0ef1
+AUX gcl-readline-6.3.patch 656 BLAKE2B 5e8fab31dacab80c1a01cbbf17de6d346556aa7412c3ea33a104aaf4515f72bfac4b8bb316b64e77720efafefae289805b96ca9a9c396c7711c66b342a1ec3ea SHA512 d88e59a0082d01b7ae8bca1dd9870400b7e0b0e39eeb4fdce564bccfd615fadee6235c3cf1e3ef8074f74c17188144c93380cd499b215b5025304b0b2d272501
+AUX gcl-tcl-8.6.patch 3331 BLAKE2B a37ed5a50ab7c9601e36d83c511db20fd0d9cec7bd36d83dcd463bc692cf3a647fdcf32c090daa6f7b5c9697380307948d21e98de38e0c68479921c1710f3bb7 SHA512 108835fd285d6198935c6c1d20c96bc405f3c47dec66fc30201e01cd163734933cc0107b9a9035f728a594f1280a0c1bbfde2087ba5149d46c3b55ca066e3ca4
+DIST gcl-2.6.10-fedora.tar.bz2 695718 BLAKE2B 151cac372f74a971ffb31191a3614d0f7bafca141258af9e1955185f8ed119cbcd3797f2d9bbe5eb5f82e76af4fd0d3e0cf155cd35f305a2c028e40b340b78cf SHA512 3e0ffaec859783443a8941a29302c7a17c9538ef2177d449ad34e24292c174de7bb8760a6d327e08f012773032f0d0a5230b79c7e4b4f5bad8354bf10a28af4c
+DIST gcl-2.6.10.tar.gz 5490689 BLAKE2B 46af0cf8a810a82fe2bc2bd46ca1cbe17b74c71eb4af6a06032040900dcad4dd4338883cd9225f0945ae425eba788ac84db9a0ed454779edd86c74a1bb48a947 SHA512 bbaacce712f15130550bcdf7e53edf4df9ab955e84ec701087034115df1c1e657d956853d5db85d7e88709981f9b7fd4c9df7acf6c8588a8ccf5f05e4e666aed
+DIST gcl-2.6.12-fedora.tar.bz2 680471 BLAKE2B 0ad96ce0a09bb73ee77456373eb7e50b2325a4f2e042c21120a1c33b2dec2aa10f5485bb1b02e8eb8e77aaaea6e141189d676217f9d139615911d8a77ea5818a SHA512 7640f8370754c889e2db9d047c4476195f949f4d97eafc7ef81761c1a548e24125d6d93381227b55f1840c3d127770995e88bf66f83c6952e121f5fa004e7f1a
+DIST gcl-2.6.12.tar.gz 7031837 BLAKE2B afd3f81dd8a712d92883a96399a2e0621b0d38a349904707846bd694892510012fde27f94ec36664c249659a480e7f92c412b3790ecb74247a91ba0cb44aa420 SHA512 e82b5bdded6f846de4ea35a83bc8294043ba6d4fe03ff421f8753e78add1e5e87124782f672cd38ad89bbec1ca7c5ff69fe2621be1552b209516b58b6c97fd20
+EBUILD gcl-2.6.10.ebuild 3947 BLAKE2B 0cada794a497b2fea395346d15817a5927786ef88e128c8f2a4c71e1766790e96180041eafe121500ff0b4d30ea3f2fea5d887e85d1d2693903d94af601e4ead SHA512 873736e85fa7441a10f88909794932e7455e257cc38e757ab932137769c685dc8fd2258e2b5595f10016b732c14f3346a63ee42460cb20601a5acfc258d1b6c9
+EBUILD gcl-2.6.12.ebuild 3803 BLAKE2B e9e9e7cba81de6b7420a4416f015626af2648668570df173c886783b72fa995158f3f3344672251a1a67f618bd56cc419706d5204572b234c8c6d07ae70290b5 SHA512 3e249212546cbee31c91244cb7dc8d4a723a8fbf5417ff22760b3aac86643951c6897446e8c0b509de8761ee94e9b31d14cf6842371240a1bd780a0eba5a43a2
+MISC metadata.xml 721 BLAKE2B d1c370152589e9d172b4d5efaf7e20a546bba837e91671aa1ac2c3443905a129a97a9a0df10fb7a277e86ddd07fa00562004ed31f2fc0deb65000853729adb2d SHA512 b1517bb263ce834d3c98f3a24e9defbfc96b29c781624456b3967eef81d5586c4bc4c6d8d6fec3b392a4de4d81b9d60f5418ed6d00065f644db57c9613e4cd2a
diff --git a/dev-lisp/gcl/files/64gcl-gentoo.el b/dev-lisp/gcl/files/64gcl-gentoo.el
new file mode 100644
index 000000000000..7b7cee00bac8
--- /dev/null
+++ b/dev-lisp/gcl/files/64gcl-gentoo.el
@@ -0,0 +1,5 @@
+;; site-init for dev-lisp/gcl
+(add-to-list 'load-path "@SITELISP@")
+(autoload 'run "gcl" "Run GCL." t)
+(autoload 'gcl-mode "gcl" "GCL mode." t)
+(autoload 'dbl "dbl" "GCL debugger." t)
diff --git a/dev-lisp/gcl/files/bootstrap-gcl b/dev-lisp/gcl/files/bootstrap-gcl
new file mode 100644
index 000000000000..cf964c4b5bea
--- /dev/null
+++ b/dev-lisp/gcl/files/bootstrap-gcl
@@ -0,0 +1,7 @@
+(compiler::emit-fn t)
+(compiler::link nil "bootstrapped_ansi_gcl"
+ (format nil "(progn (let ((*load-path* (cons ~S *load-path*))
+ (si::*load-types* ~S)) (compiler::emit-fn t)) (when (fboundp (quote
+ si::sgc-on)) (si::sgc-on t)) (setq compiler::*default-system-p* t))"
+ si::*system-directory* (quote (list ".lsp")))
+ "-lutil")
diff --git a/dev-lisp/gcl/files/gcl-2.6.12-gcc5.patch b/dev-lisp/gcl/files/gcl-2.6.12-gcc5.patch
new file mode 100644
index 000000000000..07d3892eb0b6
--- /dev/null
+++ b/dev-lisp/gcl/files/gcl-2.6.12-gcc5.patch
@@ -0,0 +1,8 @@
+diff -r -U1 gcl.orig/makefile gcl/makefile
+--- gcl.orig/makefile 2014-10-23 23:29:00.000000000 +0200
++++ gcl/makefile 2016-02-17 18:10:29.871808118 +0100
+@@ -267,3 +267,3 @@
+ $(AWK) 'BEGIN {print "#include \"include.h\"";print "#include \"cmponly.h\"";print "---"} {a=$$1;gsub("\\.\\.\\.","",a);print "\"#define " $$1 "\" " a}' $< |\
+- $(CC) -E -I./$(HDIR) - |\
++ $(CC) -E -P -I./$(HDIR) - |\
+ $(AWK) '/^\-\-\-$$/ {i=1;next} {if (!i) next} {gsub("\"","");print}' >$@
diff --git a/dev-lisp/gcl/files/gcl-gmp-6.patch b/dev-lisp/gcl/files/gcl-gmp-6.patch
new file mode 100644
index 000000000000..f66638478af1
--- /dev/null
+++ b/dev-lisp/gcl/files/gcl-gmp-6.patch
@@ -0,0 +1,8 @@
+diff -r -U1 gcl.orig/configure gcl/configure
+--- gcl.orig/configure 2013-11-11 21:55:48.000000000 +0700
++++ gcl/configure 2014-03-30 17:25:04.874994142 +0700
+@@ -5027,3 +5027,3 @@
+ int main() {
+- #if __GNU_MP_VERSION == 4 || __GNU_MP_VERSION == 5
++ #if __GNU_MP_VERSION == 4 || __GNU_MP_VERSION == 5 || __GNU_MP_VERSION == 6
+ return 0;
diff --git a/dev-lisp/gcl/files/gcl-readline-6.3.patch b/dev-lisp/gcl/files/gcl-readline-6.3.patch
new file mode 100644
index 000000000000..063c772f1051
--- /dev/null
+++ b/dev-lisp/gcl/files/gcl-readline-6.3.patch
@@ -0,0 +1,18 @@
+diff -r -U1 gcl.orig/o/gcl_readline.d gcl/o/gcl_readline.d
+--- gcl.orig/o/gcl_readline.d 2013-11-11 21:55:48.000000000 +0700
++++ gcl/o/gcl_readline.d 2014-03-30 18:29:42.131967005 +0700
+@@ -53,2 +53,9 @@
+
++/* Deprecated CPPFunction disappeared in libreadline-6.3 */
++#if defined(_RL_FUNCTION_TYPEDEF)
++#define RL_COMPLETION_FUNC_T rl_completion_func_t
++#else
++#define RL_COMPLETION_FUNC_T CPPFunction
++#endif
++
+ int readline_on = 0; /* On (1) or off (0) */
+@@ -471,3 +478,3 @@
+ #ifdef RL_COMPLETION
+- rl_attempted_completion_function = (CPPFunction *)rl_completion;
++ rl_attempted_completion_function = (RL_COMPLETION_FUNC_T *)rl_completion;
+ #endif
diff --git a/dev-lisp/gcl/files/gcl-tcl-8.6.patch b/dev-lisp/gcl/files/gcl-tcl-8.6.patch
new file mode 100644
index 000000000000..cfbf82e32899
--- /dev/null
+++ b/dev-lisp/gcl/files/gcl-tcl-8.6.patch
@@ -0,0 +1,103 @@
+diff --git a/gcl/gcl-tk/tkMain.c b/gcl/gcl-tk/tkMain.c
+index 74475cc..21c6c59 100755
+--- a/gcl/gcl-tk/tkMain.c
++++ b/gcl/gcl-tk/tkMain.c
+@@ -42,6 +42,11 @@
+ #if (TK_MINOR_VERSION==0 && TK_MAJOR_VERSION==4)
+ #define TkCreateMainWindow Tk_CreateMainWindow
+ #endif
++#if TCL_MAJOR_VERSION >= 8
++#define INTERP_RESULT(interp) Tcl_GetStringResult(interp)
++#else
++#define INTERP_RESULT(interp) (interp)->result
++#endif
+
+
+ /*-------------------------------------------------------------------*/
+@@ -276,7 +281,7 @@ TkX_Wish (argc, argv)
+
+ if (Tk_ParseArgv(interp, (Tk_Window) NULL, &argc, (void *)argv, argTable, 0)
+ != TCL_OK) {
+- fprintf(stderr, "%s\n", interp->result);
++ fprintf(stderr, "%s\n", INTERP_RESULT(interp));
+ exit(1);
+ }
+ if (name == NULL) {
+@@ -309,7 +314,7 @@ TkX_Wish (argc, argv)
+
+ /* mainWindow = TkCreateMainWindow(interp, display, name/\* , "Tk" *\/); */
+ /* if (mainWindow == NULL) { */
+-/* fprintf(stderr, "%s\n", interp->result); */
++/* fprintf(stderr, "%s\n", INTERP_RESULT(interp)); */
+ /* exit(1); */
+ /* } */
+ /* #ifndef __MINGW32__ */
+@@ -362,7 +367,7 @@ TkX_Wish (argc, argv)
+ Tcl_FindExecutable ( argv[0] );
+ #else
+ if (Tcl_AppInit(interp) != TCL_OK) {
+- fprintf(stderr, "Tcl_AppInit failed: %s\n", interp->result);
++ fprintf(stderr, "Tcl_AppInit failed: %s\n", INTERP_RESULT(interp));
+ }
+ #endif
+ /*
+@@ -372,7 +377,7 @@ TkX_Wish (argc, argv)
+ if (geometry != NULL) {
+ code = Tcl_VarEval(interp, "wm geometry . ", geometry, (char *) NULL);
+ if (code != TCL_OK) {
+- fprintf(stderr, "%s\n", interp->result);
++ fprintf(stderr, "%s\n", INTERP_RESULT(interp));
+ }
+ }
+
+@@ -402,13 +407,13 @@ TkX_Wish (argc, argv)
+
+ fullName = Tcl_TildeSubst(interp, tcl_RcFileName, &buffer);
+ if (fullName == NULL) {
+- fprintf(stderr, "%s\n", interp->result);
++ fprintf(stderr, "%s\n", INTERP_RESULT(interp));
+ } else {
+ f = fopen(fullName, "r");
+ if (f != NULL) {
+ code = Tcl_EvalFile(interp, fullName);
+ if (code != TCL_OK) {
+- fprintf(stderr, "%s\n", interp->result);
++ fprintf(stderr, "%s\n", INTERP_RESULT(interp));
+ }
+ fclose(f);
+ }
+@@ -443,7 +448,7 @@ TkX_Wish (argc, argv)
+ error:
+ msg = Tcl_GetVar(interp, "errorInfo", TCL_GLOBAL_ONLY);
+ if (msg == NULL) {
+- msg = interp->result;
++ msg = INTERP_RESULT(interp);
+ }
+ dfprintf(stderr, "%s\n", msg);
+ Tcl_Eval(interp, errorExitCmd);
+@@ -566,13 +571,13 @@ StdinProc(clientData, mask)
+ || code)
+ {
+ char buf[4];
+- char *p = buf;
++ char *p = buf, *string;
+ /*header */
+ *p++ = (code ? '1' : '0');
+ bcopy(msg->msg_id,p,3);
+ /* end header */
+- if(sock_write_str2(dsfd, m_reply, buf, 4 ,
+- interp->result, strlen(interp->result))
++ string = INTERP_RESULT(interp);
++ if(sock_write_str2(dsfd, m_reply, buf, 4, string, strlen(string))
+ < 0)
+ { /* what do we want to do if the write failed */}
+
+@@ -752,7 +757,7 @@ guiBindCallback(char *szNameCmdProc, char *szTclObject, char *szModifier,char* a
+ code = Tcl_Eval(interp, szCmd);
+ if (code != TCL_OK)
+ {
+- dfprintf(stderr, "TCL Error int bind : %s\n", interp->result);
++ dfprintf(stderr, "TCL Error int bind : %s\n", INTERP_RESULT(interp));
+
+ }
+ return code;
diff --git a/dev-lisp/gcl/gcl-2.6.10.ebuild b/dev-lisp/gcl/gcl-2.6.10.ebuild
new file mode 100644
index 000000000000..55fc3ee2e422
--- /dev/null
+++ b/dev-lisp/gcl/gcl-2.6.10.ebuild
@@ -0,0 +1,153 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit elisp-common eutils flag-o-matic
+
+DESCRIPTION="GNU Common Lisp"
+HOMEPAGE="https://www.gnu.org/software/gcl/gcl.html"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.gz https://dev.gentoo.org/~grozin/${P}-fedora.tar.bz2"
+
+LICENSE="LGPL-2 GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm x86"
+IUSE="+ansi athena emacs +readline tk X"
+
+# See bug #205803
+RESTRICT="strip"
+
+RDEPEND="emacs? ( virtual/emacs )
+ readline? ( sys-libs/readline:= )
+ athena? ( x11-libs/libXaw )
+ >=dev-libs/gmp-4.1:=
+ tk? ( dev-lang/tk:= )
+ X? ( x11-libs/libXt x11-libs/libXext x11-libs/libXmu x11-libs/libXaw )
+ virtual/latex-base"
+DEPEND="${RDEPEND}
+ virtual/texi2dvi
+ >=app-text/texi2html-1.64
+ >=sys-devel/autoconf-2.52"
+
+S="${WORKDIR}"/${PN}
+
+src_prepare() {
+ mv "${WORKDIR}"/fedora/info/* info/
+ cp -p /usr/share/texmf-dist/tex/texinfo/texinfo.tex info/
+ find . -type f -perm /0111 | xargs chmod a-x
+ chmod a+x add-defs add-defs1 config.guess config.sub configure install.sh
+ chmod a+x bin/info bin/info1 gcl-tk/gcltksrv.in gcl-tk/ngcltksrv mp/gcclab
+ chmod a+x o/egrep-def utils/replace xbin/*
+
+ # fedora patches
+ epatch "${WORKDIR}"/fedora/fd-leak.patch
+ epatch "${WORKDIR}"/fedora/latex.patch
+ epatch "${WORKDIR}"/fedora/texinfo.patch
+ epatch "${WORKDIR}"/fedora/elisp.patch
+ epatch "${WORKDIR}"/fedora/rename.patch
+ epatch "${WORKDIR}"/fedora/getcwd.patch
+ epatch "${WORKDIR}"/fedora/infrastructure.patch
+ epatch "${WORKDIR}"/fedora/extension.patch
+ epatch "${WORKDIR}"/fedora/unrandomize.patch
+ epatch "${WORKDIR}"/fedora/asm-signal-h.patch
+ epatch "${WORKDIR}"/fedora/plt.patch
+ epatch "${WORKDIR}"/fedora/ellipsis.patch
+ epatch "${WORKDIR}"/fedora/man.patch
+ epatch "${WORKDIR}"/fedora/reloc-type.patch
+ epatch "${WORKDIR}"/fedora/largefile.patch
+
+ epatch "${FILESDIR}"/${PN}-tcl-8.6.patch
+ epatch "${FILESDIR}"/${PN}-gmp-6.patch
+ epatch "${FILESDIR}"/${PN}-readline-6.3.patch
+
+ sed -e 's|"-fomit-frame-pointer"|""|' -i configure
+ sed -e 's|@EXT@||g' debian/in.gcl.1 > gcl.1
+}
+
+src_configure() {
+ strip-flags
+ filter-flags -fstack-protector -fstack-protector-all
+
+ local tcl=""
+ if use tk; then
+ tcl="--enable-tclconfig=/usr/lib --enable-tkconfig=/usr/lib"
+ fi
+
+ econf --enable-dynsysgmp \
+ --disable-xdr \
+ --enable-emacsdir=/usr/share/emacs/site-lisp/gcl \
+ --enable-infodir=/usr/share/info \
+ $(use_enable readline) \
+ $(use_enable ansi) \
+ $(use_enable athena xgcl) \
+ $(use_with X x) \
+ ${tcl}
+}
+
+src_compile() {
+ emake -j1
+ VARTEXFONTS="${T}"/fonts emake -C info gcl.info
+ if use athena; then
+ pushd xgcl-2 > /dev/null
+ pdflatex dwdoc.tex
+ popd > /dev/null
+ fi
+}
+
+src_test() {
+ local make_ansi_tests_clean="rm -f test.out *.fasl *.o *.so *~ *.fn *.x86f *.fasl *.ufsl"
+ if use ansi; then
+ cd ansi-tests
+
+ ( make clean && make test-unixport ) \
+ || die "make ansi-tests failed!"
+
+ cat "${FILESDIR}/bootstrap-gcl" \
+ | ../unixport/saved_ansi_gcl
+
+ cat "${FILESDIR}/bootstrap-gcl" \
+ |sed s/bootstrapped_ansi_gcl/bootstrapped_r_ansi_gcl/g \
+ | ./bootstrapped_ansi_gcl
+
+ ( ${make_ansi_tests_clean} && \
+ echo "(load \"gclload.lsp\")" \
+ | ./bootstrapped_r_ansi_gcl ) \
+ || die "Phase 2, bootstraped compiler failed in tests"
+ fi
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ mv "${D}"usr/share/doc/*.dvi .
+ rm -rf "${D}"usr/share/doc
+ rm -rf "${D}"usr/share/emacs
+ rm -rf "${D}"usr/lib/gcl-*/info
+
+ rm doc/makefile elisp/add-defaults.el
+ dodoc readme* RELEASE* ChangeLog* doc/*
+ doman gcl.1
+ doinfo info/*.info*
+ dohtml -r info/gcl-si info/gcl-tk
+
+ if use emacs; then
+ elisp-site-file-install "${FILESDIR}"/64${PN}-gentoo.el
+ elisp-install ${PN} elisp/*.el
+ fi
+
+ insinto /usr/share/doc/${PF}
+ doins *.dvi
+ if use athena; then
+ pushd xgcl-2 > /dev/null
+ insinto /usr/share/doc/${PF}
+ doins *.pdf
+ popd > /dev/null
+ fi
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-lisp/gcl/gcl-2.6.12.ebuild b/dev-lisp/gcl/gcl-2.6.12.ebuild
new file mode 100644
index 000000000000..b8fee9e3528f
--- /dev/null
+++ b/dev-lisp/gcl/gcl-2.6.12.ebuild
@@ -0,0 +1,147 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit elisp-common eutils flag-o-matic
+
+DESCRIPTION="GNU Common Lisp"
+HOMEPAGE="https://www.gnu.org/software/gcl/gcl.html"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.gz https://dev.gentoo.org/~grozin/${P}-fedora.tar.bz2"
+
+LICENSE="LGPL-2 GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+IUSE="+ansi athena emacs +readline tk X"
+
+# See bug #205803
+RESTRICT="strip"
+
+RDEPEND="emacs? ( virtual/emacs )
+ readline? ( sys-libs/readline:= )
+ athena? ( x11-libs/libXaw )
+ >=dev-libs/gmp-4.1:=
+ tk? ( dev-lang/tk:= )
+ X? ( x11-libs/libXt x11-libs/libXext x11-libs/libXmu x11-libs/libXaw )
+ virtual/latex-base"
+DEPEND="${RDEPEND}
+ virtual/texi2dvi
+ >=app-text/texi2html-1.64
+ >=sys-devel/autoconf-2.52"
+
+S="${WORKDIR}"/${PN}
+
+src_prepare() {
+ mv "${WORKDIR}"/fedora/info/* info/
+ cp -p /usr/share/texmf-dist/tex/texinfo/texinfo.tex info/
+ find . -type f -perm /0111 | xargs chmod a-x
+ chmod a+x add-defs add-defs1 config.guess config.sub configure install.sh
+ chmod a+x bin/info bin/info1 gcl-tk/gcltksrv.in gcl-tk/ngcltksrv mp/gcclab
+ chmod a+x o/egrep-def utils/replace xbin/*
+ epatch "${FILESDIR}"/${P}-gcc5.patch
+
+ # fedora patches
+ epatch "${WORKDIR}"/fedora/fd-leak.patch
+ epatch "${WORKDIR}"/fedora/latex.patch
+ epatch "${WORKDIR}"/fedora/texinfo.patch
+ epatch "${WORKDIR}"/fedora/elisp.patch
+ epatch "${WORKDIR}"/fedora/selinux.patch
+ epatch "${WORKDIR}"/fedora/rename.patch
+ epatch "${WORKDIR}"/fedora/getcwd.patch
+ epatch "${WORKDIR}"/fedora/plt.patch
+ epatch "${WORKDIR}"/fedora/ellipsis.patch
+ epatch "${WORKDIR}"/fedora/infrastructure.patch
+ epatch "${WORKDIR}"/fedora/extension.patch
+ epatch "${WORKDIR}"/fedora/unrandomize.patch
+ epatch "${WORKDIR}"/fedora/asm-signal-h.patch
+ epatch "${WORKDIR}"/fedora/largefile.patch
+ epatch "${WORKDIR}"/fedora/arm.patch
+
+ sed -e 's|"-fomit-frame-pointer"|""|' -i configure
+}
+
+src_configure() {
+ strip-flags
+ filter-flags -fstack-protector -fstack-protector-all
+ append-cflags $(test-flags-CC -fgnu89-inline)
+
+ local tcl=""
+ if use tk; then
+ tcl="--enable-tclconfig=/usr/lib --enable-tkconfig=/usr/lib"
+ fi
+
+ econf --enable-dynsysgmp \
+ --disable-xdr \
+ --enable-emacsdir=/usr/share/emacs/site-lisp/gcl \
+ --enable-infodir=/usr/share/info \
+ $(use_enable readline) \
+ $(use_enable ansi) \
+ $(use_enable athena xgcl) \
+ $(use_with X x) \
+ ${tcl}
+}
+
+src_compile() {
+ emake -j1
+ VARTEXFONTS="${T}"/fonts emake -C info gcl.info
+ if use athena; then
+ pushd xgcl-2 > /dev/null
+ pdflatex dwdoc.tex
+ popd > /dev/null
+ fi
+}
+
+src_test() {
+ local make_ansi_tests_clean="rm -f test.out *.fasl *.o *.so *~ *.fn *.x86f *.fasl *.ufsl"
+ if use ansi; then
+ cd ansi-tests
+
+ ( make clean && make test-unixport ) \
+ || die "make ansi-tests failed!"
+
+ cat "${FILESDIR}/bootstrap-gcl" \
+ | ../unixport/saved_ansi_gcl
+
+ cat "${FILESDIR}/bootstrap-gcl" \
+ |sed s/bootstrapped_ansi_gcl/bootstrapped_r_ansi_gcl/g \
+ | ./bootstrapped_ansi_gcl
+
+ ( ${make_ansi_tests_clean} && \
+ echo "(load \"gclload.lsp\")" \
+ | ./bootstrapped_r_ansi_gcl ) \
+ || die "Phase 2, bootstraped compiler failed in tests"
+ fi
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ rm -rf "${D}"usr/share/doc
+ rm -rf "${D}"usr/share/emacs
+
+ rm elisp/add-defaults.el
+ dodoc readme* RELEASE* ChangeLog* doc/*
+ doman man/man1/gcl.1
+ doinfo info/*.info*
+ dohtml -r info/gcl-si info/gcl-tk
+
+ if use emacs; then
+ elisp-site-file-install "${FILESDIR}"/64${PN}-gentoo.el
+ elisp-install ${PN} elisp/*.el
+ fi
+
+ insinto /usr/share/doc/${PF}
+ doins info/*.pdf
+ if use athena; then
+ pushd xgcl-2 > /dev/null
+ insinto /usr/share/doc/${PF}
+ doins *.pdf
+ popd > /dev/null
+ fi
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-lisp/gcl/metadata.xml b/dev-lisp/gcl/metadata.xml
new file mode 100644
index 000000000000..28952c76fa9e
--- /dev/null
+++ b/dev-lisp/gcl/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+ </maintainer>
+ <longdescription>
+ GCL is the official Common Lisp for the GNU project. Its design
+ makes use of the system's C compiler to compile to native object
+ code, providing for both good performance and facile portability.
+ </longdescription>
+ <use>
+ <flag name="ansi">Build a GCL with ANSI support (else build a traditional CLtL1 image)</flag>
+ <flag name="athena">Build xgcl - an interface to <pkg>x11-libs/libXaw</pkg></flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-lisp/hyperspec-7.0-r1 b/dev-lisp/hyperspec-7.0-r1
deleted file mode 100644
index d714ba901b35..000000000000
--- a/dev-lisp/hyperspec-7.0-r1
+++ /dev/null
@@ -1,9 +0,0 @@
-DEFINED_PHASES=install
-DESCRIPTION=Common Lisp ANSI-standard Hyperspec
-EAPI=6
-HOMEPAGE=http://www.lispworks.com/reference/HyperSpec/
-KEYWORDS=amd64 ppc sparc x86 ~x86-fbsd
-LICENSE=HyperSpec
-SLOT=0
-SRC_URI=ftp://ftp.lispworks.com/pub/software_tools/reference/HyperSpec-7-0.tar.gz
-_md5_=afe9b9307335ab2bb871e1d4f6fa691e
diff --git a/dev-lisp/hyperspec/Manifest b/dev-lisp/hyperspec/Manifest
new file mode 100644
index 000000000000..192ad02e13cb
--- /dev/null
+++ b/dev-lisp/hyperspec/Manifest
@@ -0,0 +1,3 @@
+DIST HyperSpec-7-0.tar.gz 2032830 BLAKE2B ec72b57fdcf669fe400dc2729191cc7c387172035d0663816fcc18450543052d3a958bd9042ef67bc70a1ccb07e74b189d32e1c790cdd1b721e8d74a6a88412d SHA512 1b9058fe1ae2e283f4a68211dc659021e04bd10373d7c2392f4fa496543e2454f96c7eb671bcb1e72c906456792f8a265a5e34bac24d01e2c0e7fb1ce359c370
+EBUILD hyperspec-7.0-r1.ebuild 587 BLAKE2B 958e0d4f003439ba1266cae1d25f2965aa0c204e2ab3a7971d39b4c05a2695ebb444795896a191deeb3eda852286ce4eab0f8cc95bb9360592ae333b02952ed7 SHA512 8c3dcdc237fdacb71889f9e28daeca2e6dc92347843bab5a82ae6a00d483e2cb053c0ec8ba5445ae344658cf6533424ac4b744280ce833ecab113103d4708aa3
+MISC metadata.xml 261 BLAKE2B 161dea7ab371cbcbc08b8aac63e402f9fe994c08d55f2291360e900bf73e21f2c2ea67b6fcc3cb000f1cef03d1c41c6d2e5e16dd06d6916ec90d4e54a1ba3dd7 SHA512 fb754c4ed3579db5dbe303197a05647b7cfab0a3fe47fd2140d5f77641be752d10ccf49a9c267406a0f3ba3dcda8831f778b9596d723f65aff10142bfad60d3d
diff --git a/dev-lisp/hyperspec/hyperspec-7.0-r1.ebuild b/dev-lisp/hyperspec/hyperspec-7.0-r1.ebuild
new file mode 100644
index 000000000000..b11c8d53f3b2
--- /dev/null
+++ b/dev-lisp/hyperspec/hyperspec-7.0-r1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+MY_PV=${PV/./-}
+MY_P=HyperSpec-${MY_PV}
+
+DESCRIPTION="Common Lisp ANSI-standard Hyperspec"
+HOMEPAGE="http://www.lispworks.com/reference/HyperSpec/"
+SRC_URI="ftp://ftp.lispworks.com/pub/software_tools/reference/${MY_P}.tar.gz"
+LICENSE="HyperSpec"
+SLOT="0"
+KEYWORDS="amd64 ppc sparc x86 ~x86-fbsd"
+IUSE=""
+DEPEND=""
+
+S=${WORKDIR}/
+
+src_install() {
+ dodir /usr/share/doc/${P}
+ cp -r HyperSpec* "${D}/usr/share/doc/${P}"
+ dosym /usr/share/doc/${P} /usr/share/doc/hyperspec
+}
diff --git a/dev-lisp/hyperspec/metadata.xml b/dev-lisp/hyperspec/metadata.xml
new file mode 100644
index 000000000000..7ea645c67e72
--- /dev/null
+++ b/dev-lisp/hyperspec/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+</maintainer>
+</pkgmetadata>
diff --git a/dev-lisp/metadata.xml b/dev-lisp/metadata.xml
new file mode 100644
index 000000000000..6258c8c7b1b4
--- /dev/null
+++ b/dev-lisp/metadata.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE catmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<catmetadata>
+ <longdescription lang="en">
+ The dev-lisp category contains libraries and utilities relevant to the
+ Lisp programming language.
+ </longdescription>
+ <longdescription lang="de">
+ Die Kategorie dev-lisp enthält Bibliotheken und Werkzeuge für die
+ Programmiersprache Lisp.
+ </longdescription>
+ <longdescription lang="es">
+ La categoría dev-lisp contiene librerias y utilidades referentes al
+ lenguaje de programación Lisp.
+ </longdescription>
+ <longdescription lang="ja">
+ dev-lisp カテゴリーにはLispプログラミング言語に関連したライブラリーと
+ ユーティリティが含まれます。
+ </longdescription>
+ <longdescription lang="nl">
+ De dev-lisp categorie bevat bibliotheken en hulpmiddelen voor het gebruik
+ van de programmeertaal Lisp.
+ </longdescription>
+ <longdescription lang="vi">
+ Nhóm dev-lisp chứa các thư viện và tiện ích liên quan
+ đến ngôn ngữ lập trình Lisp.
+ </longdescription>
+ <longdescription lang="it">
+ La categoria dev-lisp contiene librerie ed utilità per il linguaggio di programmazione Lisp.
+ </longdescription>
+ <longdescription lang="pt">
+ A categoria dev-lisp contém bibliotecas e utilitários referentes
+ à linguagem de programação Lisp.
+ </longdescription>
+ <longdescription lang="pl">
+ Kategoria dev-lisp zawiera biblioteki i narzędzia związane z
+ językiem programowania Lisp.
+ </longdescription>
+</catmetadata>
+
diff --git a/dev-lisp/sbcl-1.3.11 b/dev-lisp/sbcl-1.3.11
deleted file mode 100644
index c33c136736fd..000000000000
--- a/dev-lisp/sbcl-1.3.11
+++ /dev/null
@@ -1,13 +0,0 @@
-DEFINED_PHASES=compile configure install prepare test unpack
-DEPEND=>=dev-lisp/asdf-3.1:= doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) pax_kernel? ( sys-apps/elfix )
-DESCRIPTION=Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp
-EAPI=6
-HOMEPAGE=http://sbcl.sourceforge.net/
-IUSE=debug doc source +threads +unicode pax_kernel zlib
-KEYWORDS=amd64 ppc sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris
-LICENSE=MIT
-RDEPEND=>=dev-lisp/asdf-3.1:= !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )
-SLOT=0/1.3.11
-SRC_URI=mirror://sourceforge/sbcl/sbcl-1.3.11-source.tar.bz2 x86? ( mirror://sourceforge/sbcl/sbcl-1.2.7-x86-linux-binary.tar.bz2 ) amd64? ( mirror://sourceforge/sbcl/sbcl-1.3.11-x86-64-linux-binary.tar.bz2 ) ppc? ( mirror://sourceforge/sbcl/sbcl-1.2.7-powerpc-linux-binary.tar.bz2 ) sparc? ( mirror://sourceforge/sbcl/sbcl-1.0.28-sparc-linux-binary.tar.bz2 ) alpha? ( mirror://sourceforge/sbcl/sbcl-1.0.28-alpha-linux-binary.tar.bz2 ) arm? ( mirror://sourceforge/sbcl/sbcl-1.3.9-armhf-linux-binary.tar.bz2 ) ppc-macos? ( mirror://sourceforge/sbcl/sbcl-1.0.47-powerpc-darwin-binary.tar.bz2 ) x86-macos? ( mirror://sourceforge/sbcl/sbcl-1.1.6-x86-darwin-binary.tar.bz2 ) x64-macos? ( mirror://sourceforge/sbcl/sbcl-1.2.11-x86-64-darwin-binary.tar.bz2 ) sparc-solaris? ( mirror://sourceforge/sbcl/sbcl-1.0.23-sparc-solaris-binary.tar.bz2 ) x86-solaris? ( mirror://sourceforge/sbcl/sbcl-1.2.7-x86-solaris-binary.tar.bz2 ) x64-solaris? ( mirror://sourceforge/sbcl/sbcl-1.2.7-x86-64-solaris-binary.tar.bz2 )
-_eclasses_=desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc flag-o-matic 5128c4729303400bd8d4b0b966530955 ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e pax-utils b963274a93e76570a88168c1f1db4cd7 preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=dc7cd705eb6a7562acc80a0f9b46f511
diff --git a/dev-lisp/sbcl-1.3.21 b/dev-lisp/sbcl-1.3.21
deleted file mode 100644
index 864ae74bfe9e..000000000000
--- a/dev-lisp/sbcl-1.3.21
+++ /dev/null
@@ -1,13 +0,0 @@
-DEFINED_PHASES=compile configure install prepare test unpack
-DEPEND=>=dev-lisp/asdf-3.1:= doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) pax_kernel? ( sys-apps/elfix )
-DESCRIPTION=Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp
-EAPI=6
-HOMEPAGE=http://sbcl.sourceforge.net/
-IUSE=debug doc source +threads +unicode pax_kernel zlib
-KEYWORDS=amd64 ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris
-LICENSE=MIT
-RDEPEND=>=dev-lisp/asdf-3.1:= !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )
-SLOT=0/1.3.21
-SRC_URI=mirror://sourceforge/sbcl/sbcl-1.3.21-source.tar.bz2 x86? ( mirror://sourceforge/sbcl/sbcl-1.2.7-x86-linux-binary.tar.bz2 ) amd64? ( mirror://sourceforge/sbcl/sbcl-1.3.21-x86-64-linux-binary.tar.bz2 ) ppc? ( mirror://sourceforge/sbcl/sbcl-1.2.7-powerpc-linux-binary.tar.bz2 ) sparc? ( mirror://sourceforge/sbcl/sbcl-1.0.28-sparc-linux-binary.tar.bz2 ) alpha? ( mirror://sourceforge/sbcl/sbcl-1.0.28-alpha-linux-binary.tar.bz2 ) arm? ( mirror://sourceforge/sbcl/sbcl-1.3.12-armhf-linux-binary.tar.bz2 ) arm64? ( mirror://sourceforge/sbcl/sbcl-1.3.16-arm64-linux-binary.tar.bz2 ) ppc-macos? ( mirror://sourceforge/sbcl/sbcl-1.0.47-powerpc-darwin-binary.tar.bz2 ) x86-macos? ( mirror://sourceforge/sbcl/sbcl-1.1.6-x86-darwin-binary.tar.bz2 ) x64-macos? ( mirror://sourceforge/sbcl/sbcl-1.2.11-x86-64-darwin-binary.tar.bz2 ) sparc-solaris? ( mirror://sourceforge/sbcl/sbcl-1.0.23-sparc-solaris-binary.tar.bz2 ) x86-solaris? ( mirror://sourceforge/sbcl/sbcl-1.2.7-x86-solaris-binary.tar.bz2 ) x64-solaris? ( mirror://sourceforge/sbcl/sbcl-1.2.7-x86-64-solaris-binary.tar.bz2 )
-_eclasses_=desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc flag-o-matic 5128c4729303400bd8d4b0b966530955 ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e pax-utils b963274a93e76570a88168c1f1db4cd7 preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=0d52a512c5cad7321467ad9e5e0bbd56
diff --git a/dev-lisp/sbcl-1.4.7 b/dev-lisp/sbcl-1.4.7
deleted file mode 100644
index 3d61714d90f7..000000000000
--- a/dev-lisp/sbcl-1.4.7
+++ /dev/null
@@ -1,13 +0,0 @@
-DEFINED_PHASES=compile configure install prepare test unpack
-DEPEND=>=dev-lisp/asdf-3.1:= doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) pax_kernel? ( sys-apps/elfix )
-DESCRIPTION=Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp
-EAPI=6
-HOMEPAGE=http://sbcl.sourceforge.net/
-IUSE=debug doc source +threads +unicode pax_kernel zlib
-KEYWORDS=~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris
-LICENSE=MIT
-RDEPEND=>=dev-lisp/asdf-3.1:= !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )
-SLOT=0/1.4.7
-SRC_URI=mirror://sourceforge/sbcl/sbcl-1.4.7-source.tar.bz2 x86? ( mirror://sourceforge/sbcl/sbcl-1.4.3-x86-linux-binary.tar.bz2 ) amd64? ( mirror://sourceforge/sbcl/sbcl-1.4.7-x86-64-linux-binary.tar.bz2 ) ppc? ( mirror://sourceforge/sbcl/sbcl-1.2.7-powerpc-linux-binary.tar.bz2 ) sparc? ( mirror://sourceforge/sbcl/sbcl-1.0.28-sparc-linux-binary.tar.bz2 ) alpha? ( mirror://sourceforge/sbcl/sbcl-1.0.28-alpha-linux-binary.tar.bz2 ) arm? ( mirror://sourceforge/sbcl/sbcl-1.3.12-armhf-linux-binary.tar.bz2 ) arm64? ( mirror://sourceforge/sbcl/sbcl-1.4.2-arm64-linux-binary.tar.bz2 ) x86-macos? ( mirror://sourceforge/sbcl/sbcl-1.1.6-x86-darwin-binary.tar.bz2 ) x64-macos? ( mirror://sourceforge/sbcl/sbcl-1.2.11-x86-64-darwin-binary.tar.bz2 ) ppc-macos? ( mirror://sourceforge/sbcl/sbcl-1.0.47-powerpc-darwin-binary.tar.bz2 ) x86-solaris? ( mirror://sourceforge/sbcl/sbcl-1.2.7-x86-solaris-binary.tar.bz2 ) x64-solaris? ( mirror://sourceforge/sbcl/sbcl-1.2.7-x86-64-solaris-binary.tar.bz2 ) sparc-solaris? ( mirror://sourceforge/sbcl/sbcl-1.0.23-sparc-solaris-binary.tar.bz2 )
-_eclasses_=desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc flag-o-matic 5128c4729303400bd8d4b0b966530955 ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e pax-utils b963274a93e76570a88168c1f1db4cd7 preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=da10eca43b92c5b6f8a92d2c0236fb83
diff --git a/dev-lisp/sbcl-1.4.8 b/dev-lisp/sbcl-1.4.8
deleted file mode 100644
index 4c9f4df4c0a8..000000000000
--- a/dev-lisp/sbcl-1.4.8
+++ /dev/null
@@ -1,13 +0,0 @@
-DEFINED_PHASES=compile configure install prepare test unpack
-DEPEND=>=dev-lisp/asdf-3.1:= doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) pax_kernel? ( sys-apps/elfix )
-DESCRIPTION=Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp
-EAPI=6
-HOMEPAGE=http://sbcl.sourceforge.net/
-IUSE=debug doc source +threads +unicode pax_kernel zlib
-KEYWORDS=~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris
-LICENSE=MIT
-RDEPEND=>=dev-lisp/asdf-3.1:= !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )
-SLOT=0/1.4.8
-SRC_URI=mirror://sourceforge/sbcl/sbcl-1.4.8-source.tar.bz2 x86? ( mirror://sourceforge/sbcl/sbcl-1.4.3-x86-linux-binary.tar.bz2 ) amd64? ( mirror://sourceforge/sbcl/sbcl-1.4.8-x86-64-linux-binary.tar.bz2 ) ppc? ( mirror://sourceforge/sbcl/sbcl-1.2.7-powerpc-linux-binary.tar.bz2 ) sparc? ( mirror://sourceforge/sbcl/sbcl-1.0.28-sparc-linux-binary.tar.bz2 ) alpha? ( mirror://sourceforge/sbcl/sbcl-1.0.28-alpha-linux-binary.tar.bz2 ) arm? ( mirror://sourceforge/sbcl/sbcl-1.3.12-armhf-linux-binary.tar.bz2 ) arm64? ( mirror://sourceforge/sbcl/sbcl-1.4.2-arm64-linux-binary.tar.bz2 ) x86-macos? ( mirror://sourceforge/sbcl/sbcl-1.1.6-x86-darwin-binary.tar.bz2 ) x64-macos? ( mirror://sourceforge/sbcl/sbcl-1.2.11-x86-64-darwin-binary.tar.bz2 ) ppc-macos? ( mirror://sourceforge/sbcl/sbcl-1.0.47-powerpc-darwin-binary.tar.bz2 ) x86-solaris? ( mirror://sourceforge/sbcl/sbcl-1.2.7-x86-solaris-binary.tar.bz2 ) x64-solaris? ( mirror://sourceforge/sbcl/sbcl-1.2.7-x86-64-solaris-binary.tar.bz2 ) sparc-solaris? ( mirror://sourceforge/sbcl/sbcl-1.0.23-sparc-solaris-binary.tar.bz2 )
-_eclasses_=desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc flag-o-matic 5128c4729303400bd8d4b0b966530955 ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e pax-utils b963274a93e76570a88168c1f1db4cd7 preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=92360fdd65d6b5fb02534a6fbc996b7b
diff --git a/dev-lisp/sbcl-1.4.9 b/dev-lisp/sbcl-1.4.9
deleted file mode 100644
index 40a94c793f5b..000000000000
--- a/dev-lisp/sbcl-1.4.9
+++ /dev/null
@@ -1,13 +0,0 @@
-DEFINED_PHASES=compile configure install prepare test unpack
-DEPEND=>=dev-lisp/asdf-3.1:= doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) pax_kernel? ( sys-apps/elfix )
-DESCRIPTION=Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp
-EAPI=6
-HOMEPAGE=http://sbcl.sourceforge.net/
-IUSE=debug doc source +threads +unicode pax_kernel zlib
-KEYWORDS=~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris
-LICENSE=MIT
-RDEPEND=>=dev-lisp/asdf-3.1:= !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )
-SLOT=0/1.4.9
-SRC_URI=mirror://sourceforge/sbcl/sbcl-1.4.9-source.tar.bz2 x86? ( mirror://sourceforge/sbcl/sbcl-1.4.3-x86-linux-binary.tar.bz2 ) amd64? ( mirror://sourceforge/sbcl/sbcl-1.4.8-x86-64-linux-binary.tar.bz2 ) ppc? ( mirror://sourceforge/sbcl/sbcl-1.2.7-powerpc-linux-binary.tar.bz2 ) sparc? ( mirror://sourceforge/sbcl/sbcl-1.0.28-sparc-linux-binary.tar.bz2 ) alpha? ( mirror://sourceforge/sbcl/sbcl-1.0.28-alpha-linux-binary.tar.bz2 ) arm? ( mirror://sourceforge/sbcl/sbcl-1.3.12-armhf-linux-binary.tar.bz2 ) arm64? ( mirror://sourceforge/sbcl/sbcl-1.4.2-arm64-linux-binary.tar.bz2 ) x86-macos? ( mirror://sourceforge/sbcl/sbcl-1.1.6-x86-darwin-binary.tar.bz2 ) x64-macos? ( mirror://sourceforge/sbcl/sbcl-1.2.11-x86-64-darwin-binary.tar.bz2 ) ppc-macos? ( mirror://sourceforge/sbcl/sbcl-1.0.47-powerpc-darwin-binary.tar.bz2 ) x86-solaris? ( mirror://sourceforge/sbcl/sbcl-1.2.7-x86-solaris-binary.tar.bz2 ) x64-solaris? ( mirror://sourceforge/sbcl/sbcl-1.2.7-x86-64-solaris-binary.tar.bz2 ) sparc-solaris? ( mirror://sourceforge/sbcl/sbcl-1.0.23-sparc-solaris-binary.tar.bz2 )
-_eclasses_=desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc flag-o-matic 5128c4729303400bd8d4b0b966530955 ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e pax-utils b963274a93e76570a88168c1f1db4cd7 preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=92360fdd65d6b5fb02534a6fbc996b7b
diff --git a/dev-lisp/sbcl/Manifest b/dev-lisp/sbcl/Manifest
new file mode 100644
index 000000000000..96eed01a1e1f
--- /dev/null
+++ b/dev-lisp/sbcl/Manifest
@@ -0,0 +1,42 @@
+AUX bsd-sockets-test-1.2.11.patch 14240 BLAKE2B c9b9989c6dc484ba72877e5cfd4b69ded30b8801334b5cf95a4ff8544ef814f6777147a3d1d9e9285fd1a145c842fe73fc1f98c3b3d96d810346350efd46d4a1 SHA512 5da3fcb4b0e76abd218716b14d5deb1612b100761672216330105afb591c83408910a5de10e99e2f6d9372036c7f6897b889a9241ef84b0564600eddfba83073
+AUX concurrency-test-1.2.6.patch 1069 BLAKE2B a802300284267942da91ba205ce1a002da3731a7220b0b10fa77b8c347636ee2c2660b590bb18af565a083fb2235b9d3eafd66ba8796d6b7357d032403fb6115 SHA512 6969cec62ee9ee0ecb2aff34c854f51fd93b52f768ed1e1bf7cb3686c370c6e6b1d0691159b5d404f8d5e12e90a1447e6098ed83b0bb1ff4dc7f454f7052ec53
+AUX concurrency-test-1.3.15.patch 967 BLAKE2B 220bdd3ac1c40d2921440fb1ea67ec99f7766b6c33d014be57201502ed122c8cf12875be0ccd5c74fa14d0280a5ece8f63100971eca2f9ffb7a35dac1b7f17b2 SHA512 628429eacd8c513190229260fcfc8ce403072fb7b4bade10c3b65e30a3fc60f1057b018b7043590a205626f3e2f05b244ffd48afa864911d350d37aa84eb1a98
+AUX gentoo-fix_install_man.patch 399 BLAKE2B f0f04de59f5ddd69a54fcfa5feb4c8038e7e37c923d8ca93d061b642cd01a39b9d1a0f54b00a8a1fbc654788d0224b4949bf225e97048fc73fa2196969ae3496 SHA512 bc5118ddf2fd851dcabf773cc7443fa0d3f5a5b83715173110f9164c631faaf8c2d6b247f7ac205da23bb388ff459eba228deeaa2a45202870b7f97376564030
+AUX sb-posix-test-1.2.15.patch 1325 BLAKE2B 051500de2167bb963c6b20cf8f57a03e9326e9e8c79ce249fb23aa7f041c62384717d545f2e6aeefac900af9c27f640218543a218bf902081bcec69968108df1 SHA512 79fd75eb5c44630eb6669b1808029420c7031cc1ba367b8687d7433bf0d19016a7912df0ab21c90aa7e709417ec9784c846c7dcefbc1308a059cbd8b3209dd27
+AUX sbcl-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch 1024 BLAKE2B 73899d54f3951347f3b1d340f1333fee2480816ae601299bebd3341598d98d7cecee1de246e1084427c97863b66cad8ce4dd88a4a0ef1390871592adce3baca2 SHA512 a09efe91a082fd2bed9dc30652f3e5ed51e416697b7b2fee4d6c5f90db0ecbadca7adf652f532d79869fde9186e9d16855f5fd81321cb2a82e1a158d4cde9e97
+AUX sbcl-1.2.11-solaris.patch 500 BLAKE2B 060508d99acaea6ce0b8f881ae191be329af9ad6ec5174ffc28551b7d1a9690a087e2d11ca129413996a24c9fc8e9de4fbc30b09e90d7723b70c7c68b3b30b93 SHA512 4dbd0cc499f3cb634330db9843e82b88830e45e63402a082f51e02b0dcb1541f35e8cb0410aa25bf283af3c0372a8a39220b3f11b7288de2c5c768ac133780bc
+AUX sbcl-1.2.13-verbose-build.patch 835 BLAKE2B 9afec842d7130c28ebe45dd41b3668b33050cff39f93eb57ad167112807795578aa7b25d9db566acf7739fa6d6a21b4c00a9ef4e6e301d1b8ad61e6cc9ad3567 SHA512 da3b1479bec7fc98eab1ae0dc67c0f483512dace899644f8fa7ed5742910a9b852934c86a0b2f4ba4df15715b9dd01cf2d5b826fd6687b67888066b7d3cf8da7
+AUX sbcl-1.3.11-config.patch 630 BLAKE2B 7c8abce227890314a8d9a926d33336b670e1238a2402d331824bd2438be3c90cf0e7648ad2d4dd8290c792ef6c765d71bfed54a5e818f861478d04565ce6f4e5 SHA512 f76584df3309f76510070752c356396d50114bd180142a7af120c5a6f43c1a0591644ba93d27e04aa88ca79dd13d48accbd48c371bf9e519916db81a5fc4208b
+AUX sbcl-1.3.19-bsd-sockets-test.patch 14992 BLAKE2B 8363595b4ace41ee1aad359eff61be856dae84fecc4ae7471675bb9b2abb6b80d79b108431faf38816d49a785e093f0c8a8c6f652ff6375755d9921e7e0bf8d4 SHA512 9c1d2558d25aa0bccc7245673a7e85f6b377f4a4e37aaa9417b838c2b602de527de9f1beebd75028d7a3bee2b11ebd6b23dd511436ec6c902c616ca13b502c63
+AUX sbcl-1.4.0-bsd-sockets-test.patch 15625 BLAKE2B 016d9ff9ef952c0b51fc0d03670a352dc12f6d40283bd7cef2110a0c795160b07412ca117e988aad71e19dd2629666aa6b3d6b17cbc123973f33d5d44e70e281 SHA512 59120ce76dd3c24b48edebda4d4536eb570fa7fab67ef8e995d89b72c5702333943ea7f39c674091773996b67add22e6fff7abd041acbb0e83a3e0e002097d74
+AUX sbcl-1.4.0-verbose-build.patch 936 BLAKE2B 2ec498fbe58e5b4ed8786f8554801ef89fa8300db7aeea45b09e1136254ca7cad92aadafa05d3d687c52267f444f7c7d2bd7b1d52ca5d502787f046f33708a4f SHA512 10b9e32a122910cca131bb5b4f1fbc098fa588a77b6cea2086a4f8458bcd70d5a7c2ad25018ac72b417d6fba8769d09e7debaffc23ef8f9a3b184d7f5729ec8d
+DIST sbcl-1.0.23-sparc-solaris-binary.tar.bz2 7907803 BLAKE2B 4be6831c196cfef505b411fa9ae0b9586f93309ce97fcd2b964abfb4175f00f7437da7859334973f2441592fc1a13cc5557044737659f5ef13998b593d623cda SHA512 d641d7859f0d60ce7dd684a0f21e62282a5a658ed6bb4d67d6b141b3ce22d9e27261efe7e5d0f752c30e467cf90d7c8a03ad2a04b3c60042f0ef0a4808a9c74a
+DIST sbcl-1.0.28-alpha-linux-binary.tar.bz2 7573824 BLAKE2B ab8e139adb4fbc0ac7b34457c3361b044d04d8d9dedba2008cb19220915900e2d1bf540b617c738145923d74fa28ab7d979fd0d1bf4b9d17c445dfb080731263 SHA512 85ceb4d3bf971777f5444a63cbabd88ccfaf16ed3b3c86cc5ea6cb3fd3189c4cd5a5ebbf785c97366afb7026604ffc34a1129936291deede5993056e158125ab
+DIST sbcl-1.0.28-sparc-linux-binary.tar.bz2 8032042 BLAKE2B ca4213ef00447d66406d1c752a1653fd628deba0e112f55a5625dad61da30c0be7c60fe4e84e8dcc9d9946db553ad544dc39b28d62124d8e3d6197943efc944a SHA512 cea1ba06f85169fca9fe3026813c6e7e8e8209b874e048b7bd63cb3a1c5bd7c829e8dbb2c486977e190a0390d28e4845938a9e84378f4f2f16f72bf0b6f45c80
+DIST sbcl-1.0.47-powerpc-darwin-binary.tar.bz2 8217590 BLAKE2B 68da614df7d27ecf08a21603d4f172344c86e650176d238fe73d7756a626b694e2165b9157e53732730861d085902e5cc893b967073168fe3845cd2621668b87 SHA512 8118de56e448bce7a72b832e661eb4e2687eed675f88f766f7043c843a432e35121d9e6f9da8d22ac690c54bda0d55ecb07728748ce2cdd57320f49b4b812b86
+DIST sbcl-1.1.6-x86-darwin-binary.tar.bz2 9091955 BLAKE2B b532828cc729ffef17d0bedb827a1482edb190f5740d14dbff347f8cfe61f1960c5011162dc620ebb8d99fbd8f8bbf070923a59b8639ea9985219b58d334cd27 SHA512 5b9d58ba1a7bcf3aa5011ac5ba1c8dba65e44b2c3f8a31b15db54de6b34ea0f7482c45f1cc4e1323e154ce79fbba030112df3795cb323bca46bac50f15d2a138
+DIST sbcl-1.2.11-x86-64-darwin-binary.tar.bz2 10038928 BLAKE2B b434f65e9e42341645ac91c8f35ffeb6d2d7f043544ca9af7c519a46df15cee6d2fe4d0a56c10643c6f263e8deb75bcfb00cc399d1f32c10d53c20a9842c45db SHA512 c271796f854fe884e0d8aa6504bbe2e6c078de1555fc9a823463640cfd8c793dbddcb3f32932788d84a41e2b8a085b95c97c13a15c43fc909dcaad18ce25f215
+DIST sbcl-1.2.7-powerpc-linux-binary.tar.bz2 9884585 BLAKE2B 1870da882fc5e466eaf5e96ed46aed600660bdfe836eabe145cf9ea4713e537a7d45dd76538d899801d0e3ea944c4ccfff1c9688fc695890bb4cac69135ef046 SHA512 7b9fef12d3d6397adec6a0c26d1431a18b8d91b5bf009034eb2501de9fd60dc04dd2e3cd2d9feb9204d4631360aea88ba07a9ad75dad0767b5dcc5e62e84e790
+DIST sbcl-1.2.7-x86-64-solaris-binary.tar.bz2 10438955 BLAKE2B ca9cd3a55873c648940793ae9fb92dde5e4569b7392932771b31dc71da380267556b3ceb8b099f62576b76d77395123735232c43c0ed1f934d1e004a6194d0fa SHA512 9566cebf8fc29ead1f919309e3f98aeb618e97b34c80f53d1f739f1a3f4ef4cbaebd1c67f0b32172a0cdf14dc405eb75d0e916dedf3b8a758cdec2368d25f5c1
+DIST sbcl-1.2.7-x86-linux-binary.tar.bz2 10516485 BLAKE2B 4036684f398c0766d55a6089fb67ae23520fc949b39525b2ac005f2665cdee8c0901a638e5dfc8e78e5f80963331a5fe2ddd4b0108ddaea063fabfd1d5829f72 SHA512 ca09beeafeb40f21eb1a377f04a69d57feb5549fa63aadf2e39aa65f3875418bdab755e22b567b3f2c514fb94534b739a57606288912ffc5cddf370a400e9e5c
+DIST sbcl-1.2.7-x86-solaris-binary.tar.bz2 10351529 BLAKE2B 9b7324c8177856c6024220ce71070a1a51b93fa9352fe692c3fd5afa9b6cdcbb361c54e354ab1cc1153e6bf15cb0c5fc267c3da03addd5d35fbec840f72a7c06 SHA512 b30d40f0095bb43719ba2e1a619f53fe5f0bccaa08a35481bc5feeb0dd5b540018a9ec9f61799de89991a85750577922cb4e56db4d7dab8f07e18bbc643bdad1
+DIST sbcl-1.3.11-source.tar.bz2 5790557 BLAKE2B d6b493d880ab2481f18381475165a3eed585fa46e626eb1e762cced29a6a7315be638df6f44ffdc694d8fb55509f912267a7dbe8892b6672eb56e839f55908ff SHA512 07cce0b33f1d41bc208827d228ae356b56165bb55fab72c48973a15a63e2e680aafc16db67d36cc4952f71101faaacafd9660276cd67673314f1699d6a91af82
+DIST sbcl-1.3.11-x86-64-linux-binary.tar.bz2 9248214 BLAKE2B f1f6ebbec168a47d7405c15c63a70f10afad2d271d17dfa461f94bd8b1a1c21506a3a9c1d7ffe2501cc70419406e0d73b53a34ff9ff003e4791170101b7b1293 SHA512 ffb443f9e3ede2f9dbdc1bf28554bd59ef1fd5ad855465ee10f9835221fde20211188e881be854b4760870b122dfc6c5ad5c8cad1bea613ffb3b6a6f67a36056
+DIST sbcl-1.3.12-armhf-linux-binary.tar.bz2 9193847 BLAKE2B 27106c0144ee99f534cd0a59cfb331ef8f39dbefdc76e294a8671523b1c05f42353d31b8e74600dd01f85fb5156d39216a877d77aba57a061427ea1dc28a492e SHA512 5bdb4e2b584933e9ee9aaa2ba68328f219f072af802782ee5dedf83baa5c679cd5a1ccbf3458678810ccb8679ffd392d4fba108e86d537e10554c1860bfd4de5
+DIST sbcl-1.3.16-arm64-linux-binary.tar.bz2 11228304 BLAKE2B 7825a53a86fdca32a2f99ff9ec9337b041c468831815d59f173a9f62e839e7b3f9f7a8d4e7d0d7586d126ac71fef332c193211e828528715036681776f3c59d6 SHA512 919835547d7613f64a2470157401e83c14584049602f21566a324af9fcbdfa838f5f2a7c5c6e28f3c3b5ccdec640024ce9c12b607a25741ad4c4d6e9813af3b8
+DIST sbcl-1.3.21-source.tar.bz2 5901141 BLAKE2B 6c8c678a964595fdc74121e62ce46721c37dc326591a0401fa162e8abd2cd35f4ce4c58d426607239077669609e55277c0d88f3ab26a7fad4bfcd9c5463439d7 SHA512 845f4977b46236b9e018c6c7e5cf5628aed6b75b0ec942cd0c54fb91b6dc7d46369e346cd3c3dbb3f4084e06ef81a168c5f5fec72c4ca649504aeaef4b71c1e5
+DIST sbcl-1.3.21-x86-64-linux-binary.tar.bz2 10633302 BLAKE2B bb427994983d3ba5dc079dfa50188ed7339dee8a1e7ffb571c51b0c727b9d03ecef31f287837a6f3fc1f2dc0bbd4d92b4d4d078fb41e559a540ed6f411a74370 SHA512 a0ce82d35874344e72dd013df835000eb07656f3fcdb583e577f9d6ab37d7f81ab0c8c20e2f809d9d36c4139274fe722bb1e8a6ceb3f47d1f62bc3fc46c5cade
+DIST sbcl-1.3.9-armhf-linux-binary.tar.bz2 9161130 BLAKE2B 0dbfe39803d6e3955124fa1a619da7b6d4ec9e7d6eb78e868508c61bf478a980cb15ba427ef0b38d0f051ce38b881020534c0d37bfbcd81a8d763654283669ec SHA512 309e2ac7ef9ac95bf751432cf243af0de022c5b21054df2bf4e99da4ff087218af72b0ab3be69214eba3df1b6bbe707cc28840508e960c5d2ed2af0e86de3fdd
+DIST sbcl-1.4.2-arm64-linux-binary.tar.bz2 10578821 BLAKE2B 1cd25c548be0f1b7ec01edc3bee7fe6c2aaf07b7bd1fc55d408dee7ac95e8f3761a194bf9e8efb734179a7eff04cdae2fe5ba4a9ba5ab06f7322ac1550d142cc SHA512 39bbd735b242aa0bbac05c6f4dbe28cb45e01684db7e5b4f1e51f995a9f9d5b484f63cc4243f472f72b3b1e6c4cd2268a7e812b15426eca5cf9a1fede10f44bb
+DIST sbcl-1.4.3-x86-linux-binary.tar.bz2 10227185 BLAKE2B 6d77c4f4177cbdb72fb9bab0da5bd91e0aa8deafffd238818a2551332f0ab246715d9489b5c1156f3481aa7fb79d161a988404620fc09fe86ff927543a1ee678 SHA512 41cd63d61dd7c46370341dce39a362287a23b528bfebe8e5571614aeefdea03d318207d25562e995db9ccedb6c1f50ea4d66627721f0fd9486e99440126e6a38
+DIST sbcl-1.4.7-source.tar.bz2 6031614 BLAKE2B b98d8c3891e4f3180624ef0ccc1e81146d97e58c577c9efb2b3ac178f81a836f4019111a6c33ec31edb47d41920249c33a87955303c02ffc608ea42747b7f662 SHA512 b6eb749878920bec90f50f19c8c8700f700677ae1a7f7fb1ba1bbaa37f218d36eeee0dea65eb200f0cd09a9694600969f4c15042faf357395715b5390a6fdb6b
+DIST sbcl-1.4.7-x86-64-linux-binary.tar.bz2 10380734 BLAKE2B 0d39cc7b0873e938e85182b687b0a1be9200c4ebe67c7175b7c9c6393b27c8f78bd2afa201b7ca91c39bcaeed4456f2578901518850b1db0975cddd55e9b0210 SHA512 517b6935e51ea56ee2c67692980fe7fa7382a2e4501437c7ec00a52aefeebd5e442f4bb8dbfdbe32e43a301fc5f0c584604027e7889ebb8ba269cafe866d6381
+DIST sbcl-1.4.8-source.tar.bz2 6040563 BLAKE2B e4d16993cec80a8d40bad9071c6ce0a9ce80aae4d49f682fc58d4a8124dd14200229dc063cb653af753afece1ca98d77b600d2c7f80d17e6b9fd8af33a5297f3 SHA512 f8bd6b4126b19de4e73557319118aa03999caf84c8913bdd51ce18b8ddba14944f3d1daf08f852b72ae862ae0e613dbfbfdddca3750f4464c1be924d685ccc9d
+DIST sbcl-1.4.8-x86-64-linux-binary.tar.bz2 10353701 BLAKE2B 5b56f46fbdb87f015ed1fe103b6caaf43d2d424b45e2574e306b3d3cbc3c7bdfa48847a2e6d7d819e6bf4b59fa02ea01f9ce6b023802ae6f91fc7f56e5a260de SHA512 f3cb3c30dec1b7e6ac0c1b67de26192723871f8a8d543a41d7c4d04b0813fd7da1043433237b648a2c23f73169fe38f2ec3a3c2bd412eb4c9d36ed929c40f27d
+DIST sbcl-1.4.9-source.tar.bz2 6051607 BLAKE2B 8abcaf73233ea1a23d47987b16554636dcf94acfbc7ab731f0730fdb4a8176593fb3ab52d9b25b3dd56753cd984f7e0eddb1585a142eb7ad1aa5e3e03d7b0ca9 SHA512 e0248f460f9737d47653dd520732062d2637813b550df356ecc90aa6d21fbdd74f03182d1e890c09c1da742f7d57b4fbd04a4e6dc36999aca51bb6c2952ac236
+EBUILD sbcl-1.3.11.ebuild 8382 BLAKE2B 7df1cb22c53debbc4f972fd230bd4cef1132f234946a06309d6bedb3bc9a8c51b582ccd2e671895bc270985e3ce82b4aa56ef21a4a31ca1b91e98318e560f2b4 SHA512 d6b00cc75cc3bc55be589d4e7690469e1ae8d8c00174ec67d83eff42f977e0840a97c22550be732ce0335b38d38b0429f0a47d9cf4de25402d91ea7814c3c351
+EBUILD sbcl-1.3.21.ebuild 8318 BLAKE2B ff8e43085524e8e02a5af841962dedc9667a99a9ca4167227eee069957c7db66ad204d2548b64eb0c506719683f6069b62f10c3965737c4291cfa05aeeed35e9 SHA512 4e277a575b10bf4b1ba510bc7827c920c9aeeb68073b2c4e24ec3c354437c0a1eaa9ffeaab12dde5aa46b2a883a8d681aa0726c990911d6b1213c09f2df13798
+EBUILD sbcl-1.4.7.ebuild 8669 BLAKE2B c8132a464276020c610727546c1508e9d552d524195ee7e82766e732b90869129b7bf483c42f56b195b8a1873679acaf0f9bd2d99a0b36141b96985275dacd63 SHA512 2c20dd0576b2245ab07d41c83512a7d3a45d4c5f566bc1182ebfab1981c41bd4dce8cb82f84a5c0441a461efa337952bf3fcdb44e8635a24eb1daf7795cecf2b
+EBUILD sbcl-1.4.8.ebuild 8669 BLAKE2B 2d4131570d6646076c2404fcbec93c999dc75f24652ed861bf9f981309066c15f16a4a90701ab19522f93157339cd0228daa466acef7424ec490f1a05e4e806a SHA512 3f41a91f91304b76f7503e2f3796a4536442700b94407e2794dc14874a9b72fdde4c3a1ebab245c7f658aee6fced45345eea63b7df4d36e317e3aed36a3a0e7c
+EBUILD sbcl-1.4.9.ebuild 8669 BLAKE2B 2d4131570d6646076c2404fcbec93c999dc75f24652ed861bf9f981309066c15f16a4a90701ab19522f93157339cd0228daa466acef7424ec490f1a05e4e806a SHA512 3f41a91f91304b76f7503e2f3796a4536442700b94407e2794dc14874a9b72fdde4c3a1ebab245c7f658aee6fced45345eea63b7df4d36e317e3aed36a3a0e7c
+MISC metadata.xml 1545 BLAKE2B 6ac4ec13b49c7cbbeb17685711c51c0cbcfa2be86062380dd72f78c05edf1e61880f41d5ea3c38c2f08f643be40e38e3a63a1da538f2c6f578877811ecf5f41e SHA512 a1099403e6672d31e2769d6e90fafc9f31258daa53f4838c05e1ed6be035a192f3f6357065426f24c34f996ff759e2285b66a6786baaaf725896b37bde66943e
diff --git a/dev-lisp/sbcl/files/bsd-sockets-test-1.2.11.patch b/dev-lisp/sbcl/files/bsd-sockets-test-1.2.11.patch
new file mode 100644
index 000000000000..88f6fa588cee
--- /dev/null
+++ b/dev-lisp/sbcl/files/bsd-sockets-test-1.2.11.patch
@@ -0,0 +1,350 @@
+diff -r -U2 sbcl-1.2.11.orig/contrib/sb-bsd-sockets/tests.lisp sbcl-1.2.11/contrib/sb-bsd-sockets/tests.lisp
+--- sbcl-1.2.11.orig/contrib/sb-bsd-sockets/tests.lisp 2015-04-27 20:56:47.000000000 +0600
++++ sbcl-1.2.11/contrib/sb-bsd-sockets/tests.lisp 2015-04-28 22:27:32.588146072 +0600
+@@ -36,13 +36,13 @@
+ ;;; Apparently getprotobyname_r on FreeBSD says -1 and EINTR
+ ;;; for unknown protocols...
+-#-(and freebsd sb-thread)
+-#-(and dragonfly sb-thread)
+-(deftest get-protocol-by-name/error
+- (handler-case (get-protocol-by-name "nonexistent-protocol")
+- (unknown-protocol ()
+- t)
+- (:no-error ()
+- nil))
+- t)
++;#-(and freebsd sb-thread)
++;#-(and dragonfly sb-thread)
++;(deftest get-protocol-by-name/error
++; (handler-case (get-protocol-by-name "nonexistent-protocol")
++; (unknown-protocol ()
++; t)
++; (:no-error ()
++; nil))
++; t)
+
+ (deftest make-inet-socket.smoke
+@@ -92,19 +92,19 @@
+ t)
+
+-#-win32
+-(deftest make-inet6-socket.smoke
+- (handler-case
+- (let ((s (make-instance 'inet6-socket :type :stream :protocol (get-protocol-by-name "tcp"))))
+- (> (socket-file-descriptor s) 1))
+- (address-family-not-supported () t))
+- t)
+-
+-#-win32
+-(deftest make-inet6-socket.keyword
+- (handler-case
+- (let ((s (make-instance 'inet6-socket :type :stream :protocol :tcp)))
+- (> (socket-file-descriptor s) 1))
+- (address-family-not-supported () t))
+- t)
++;#-win32
++;(deftest make-inet6-socket.smoke
++; (handler-case
++; (let ((s (make-instance 'inet6-socket :type :stream :protocol (get-protocol-by-name "tcp"))))
++; (> (socket-file-descriptor s) 1))
++; (address-family-not-supported () t))
++; t)
++
++;#-win32
++;(deftest make-inet6-socket.keyword
++; (handler-case
++; (let ((s (make-instance 'inet6-socket :type :stream :protocol :tcp)))
++; (> (socket-file-descriptor s) 1))
++; (address-family-not-supported () t))
++; t)
+
+ (deftest* (non-block-socket)
+@@ -114,52 +114,52 @@
+ t)
+
+-(deftest inet-socket-bind
+- (let* ((tcp (get-protocol-by-name "tcp"))
+- (address (make-inet-address "127.0.0.1"))
+- (s1 (make-instance 'inet-socket :type :stream :protocol tcp))
+- (s2 (make-instance 'inet-socket :type :stream :protocol tcp)))
+- (unwind-protect
+- ;; Given the functions we've got so far, if you can think of a
+- ;; better way to make sure the bind succeeded than trying it
+- ;; twice, let me know
+- (progn
+- (socket-bind s1 address 0)
+- (handler-case
+- (let ((port (nth-value 1 (socket-name s1))))
+- (socket-bind s2 address port)
+- nil)
+- (address-in-use-error () t)))
+- (socket-close s1)
+- (socket-close s2)))
+- t)
+-
+-#-win32
+-(deftest inet6-socket-bind
+- (handler-case
+- (let* ((tcp (get-protocol-by-name "tcp"))
+- (address (make-inet6-address "::1"))
+- (s1 (make-instance 'inet6-socket :type :stream :protocol tcp))
+- (s2 (make-instance 'inet6-socket :type :stream :protocol tcp)))
+- (unwind-protect
+- ;; Given the functions we've got so far, if you can think of a
+- ;; better way to make sure the bind succeeded than trying it
+- ;; twice, let me know
+- (handler-case
+- (socket-bind s1 address 0)
+- (socket-error ()
+- ;; This may mean no IPv6 support, can't fail a test
+- ;; because of that (address-family-not-supported doesn't catch that)
+- t)
+- (:no-error (x)
+- (declare (ignore x))
+- (handler-case
+- (let ((port (nth-value 1 (socket-name s1))))
+- (socket-bind s2 address port)
+- nil)
+- (address-in-use-error () t))))
+- (socket-close s1)
+- (socket-close s2)))
+- (address-family-not-supported () t))
+- t)
++;(deftest inet-socket-bind
++; (let* ((tcp (get-protocol-by-name "tcp"))
++; (address (make-inet-address "127.0.0.1"))
++; (s1 (make-instance 'inet-socket :type :stream :protocol tcp))
++; (s2 (make-instance 'inet-socket :type :stream :protocol tcp)))
++; (unwind-protect
++; ;; Given the functions we've got so far, if you can think of a
++; ;; better way to make sure the bind succeeded than trying it
++; ;; twice, let me know
++; (progn
++; (socket-bind s1 address 0)
++; (handler-case
++; (let ((port (nth-value 1 (socket-name s1))))
++; (socket-bind s2 address port)
++; nil)
++; (address-in-use-error () t)))
++; (socket-close s1)
++; (socket-close s2)))
++; t)
++
++;#-win32
++;(deftest inet6-socket-bind
++; (handler-case
++; (let* ((tcp (get-protocol-by-name "tcp"))
++; (address (make-inet6-address "::1"))
++; (s1 (make-instance 'inet6-socket :type :stream :protocol tcp))
++; (s2 (make-instance 'inet6-socket :type :stream :protocol tcp)))
++; (unwind-protect
++; ;; Given the functions we've got so far, if you can think of a
++; ;; better way to make sure the bind succeeded than trying it
++; ;; twice, let me know
++; (handler-case
++; (socket-bind s1 address 0)
++; (socket-error ()
++; ;; This may mean no IPv6 support, can't fail a test
++; ;; because of that (address-family-not-supported doesn't catch that)
++; t)
++; (:no-error (x)
++; (declare (ignore x))
++; (handler-case
++; (let ((port (nth-value 1 (socket-name s1))))
++; (socket-bind s2 address port)
++; nil)
++; (address-in-use-error () t))))
++; (socket-close s1)
++; (socket-close s2)))
++; (address-family-not-supported () t))
++; t)
+
+ (deftest* (simple-sockopt-test)
+@@ -228,35 +228,35 @@
+ ;;; the message ended up
+
+-#-win32
+-(deftest simple-local-client
+- (progn
+- ;; SunOS (Solaris) and Darwin systems don't have a socket at
+- ;; /dev/log. We might also be building in a chroot or
+- ;; something, so don't fail this test just because the file is
+- ;; unavailable, or if it's a symlink to some weird character
+- ;; device.
+- (when (block nil
+- (handler-bind ((sb-posix:syscall-error
+- (lambda (e)
+- (declare (ignore e))
+- (return nil))))
+- (sb-posix:s-issock
+- (sb-posix::stat-mode (sb-posix:stat "/dev/log")))))
+- (let ((s (make-instance 'local-socket :type :datagram)))
+- (format t "Connecting ~A... " s)
+- (finish-output)
+- (handler-case
+- (socket-connect s "/dev/log")
+- (sb-bsd-sockets::socket-error ()
+- (setq s (make-instance 'local-socket :type :stream))
+- (format t "failed~%Retrying with ~A... " s)
+- (finish-output)
+- (socket-connect s "/dev/log")))
+- (format t "ok.~%")
+- (let ((stream (socket-make-stream s :input t :output t :buffering :none)))
+- (format stream
+- "<7>bsd-sockets: Don't panic. We're testing local-domain client code; this message can safely be ignored"))))
+- t)
+- t)
++;#-win32
++;(deftest simple-local-client
++; (progn
++; ;; SunOS (Solaris) and Darwin systems don't have a socket at
++; ;; /dev/log. We might also be building in a chroot or
++; ;; something, so don't fail this test just because the file is
++; ;; unavailable, or if it's a symlink to some weird character
++; ;; device.
++; (when (block nil
++; (handler-bind ((sb-posix:syscall-error
++; (lambda (e)
++; (declare (ignore e))
++; (return nil))))
++; (sb-posix:s-issock
++; (sb-posix::stat-mode (sb-posix:stat "/dev/log")))))
++; (let ((s (make-instance 'local-socket :type :datagram)))
++; (format t "Connecting ~A... " s)
++; (finish-output)
++; (handler-case
++; (socket-connect s "/dev/log")
++; (sb-bsd-sockets::socket-error ()
++; (setq s (make-instance 'local-socket :type :stream))
++; (format t "failed~%Retrying with ~A... " s)
++; (finish-output)
++; (socket-connect s "/dev/log")))
++; (format t "ok.~%")
++; (let ((stream (socket-make-stream s :input t :output t :buffering :none)))
++; (format stream
++; "<7>bsd-sockets: Don't panic. We're testing local-domain client code; this message can safely be ignored"))))
++; t)
++; t)
+
+
+@@ -373,58 +373,58 @@
+ len address port (subseq buf 0 (min 10 len)))))))
+
+-#+sb-thread
+-(deftest interrupt-io
+- (let (result)
+- (labels
+- ((client (port)
+- (setf result
+- (let ((s (make-instance 'inet-socket
+- :type :stream
+- :protocol :tcp)))
+- (socket-connect s #(127 0 0 1) port)
+- (let ((stream (socket-make-stream s
+- :input t
+- :output t
+- :buffering :none)))
+- (handler-case
+- (prog1
+- (catch 'stop
+- (progn
+- (read-char stream)
+- (sleep 0.1)
+- (sleep 0.1)
+- (sleep 0.1)))
+- (close stream))
+- (error (c)
+- c))))))
+- (server ()
+- (let ((s (make-instance 'inet-socket
+- :type :stream
+- :protocol :tcp)))
+- (setf (sockopt-reuse-address s) t)
+- (socket-bind s (make-inet-address "127.0.0.1") 0)
+- (socket-listen s 5)
+- (multiple-value-bind (* port)
+- (socket-name s)
+- (let* ((client (sb-thread:make-thread
+- (lambda () (client port))))
+- (r (socket-accept s))
+- (stream (socket-make-stream r
+- :input t
+- :output t
+- :buffering :none))
+- (ok :ok))
+- (socket-close s)
+- (sleep 5)
+- (sb-thread:interrupt-thread client
+- (lambda () (throw 'stop ok)))
+- (sleep 5)
+- (setf ok :not-ok)
+- (write-char #\x stream)
+- (close stream)
+- (socket-close r))))))
+- (server))
+- result)
+- :ok)
++;#+sb-thread
++;(deftest interrupt-io
++; (let (result)
++; (labels
++; ((client (port)
++; (setf result
++; (let ((s (make-instance 'inet-socket
++; :type :stream
++; :protocol :tcp)))
++; (socket-connect s #(127 0 0 1) port)
++; (let ((stream (socket-make-stream s
++; :input t
++; :output t
++; :buffering :none)))
++; (handler-case
++; (prog1
++; (catch 'stop
++; (progn
++; (read-char stream)
++; (sleep 0.1)
++; (sleep 0.1)
++; (sleep 0.1)))
++; (close stream))
++; (error (c)
++; c))))))
++; (server ()
++; (let ((s (make-instance 'inet-socket
++; :type :stream
++; :protocol :tcp)))
++; (setf (sockopt-reuse-address s) t)
++; (socket-bind s (make-inet-address "127.0.0.1") 0)
++; (socket-listen s 5)
++; (multiple-value-bind (* port)
++; (socket-name s)
++; (let* ((client (sb-thread:make-thread
++; (lambda () (client port))))
++; (r (socket-accept s))
++; (stream (socket-make-stream r
++; :input t
++; :output t
++; :buffering :none))
++; (ok :ok))
++; (socket-close s)
++; (sleep 5)
++; (sb-thread:interrupt-thread client
++; (lambda () (throw 'stop ok)))
++; (sleep 5)
++; (setf ok :not-ok)
++; (write-char #\x stream)
++; (close stream)
++; (socket-close r))))))
++; (server))
++; result)
++; :ok)
+
+ (defmacro with-client-and-server ((server-socket-var client-socket-var) &body body)
+@@ -485,4 +485,5 @@
+ client server (unsigned-byte 8) ,direction)))))
+
+- (define-shutdown-tests :output)
+- (define-shutdown-tests :io))
++; (define-shutdown-tests :output)
++; (define-shutdown-tests :io))
++)
diff --git a/dev-lisp/sbcl/files/concurrency-test-1.2.6.patch b/dev-lisp/sbcl/files/concurrency-test-1.2.6.patch
new file mode 100644
index 000000000000..b85fc168ed0e
--- /dev/null
+++ b/dev-lisp/sbcl/files/concurrency-test-1.2.6.patch
@@ -0,0 +1,24 @@
+diff -Nuar a/contrib/sb-concurrency/tests/test-frlock.lisp b/contrib/sb-concurrency/tests/test-frlock.lisp
+--- a/contrib/sb-concurrency/tests/test-frlock.lisp 2014-11-29 19:56:58.000000000 +0100
++++ b/contrib/sb-concurrency/tests/test-frlock.lisp 2014-12-16 23:52:18.569947139 +0100
+@@ -22,9 +22,9 @@
+ #+openbsd 0.01
+ #-openbsd 0.0001)
+
+-(defun test-frlocks (&key (reader-count 100) (read-count 1000000)
++(defun test-frlocks (&key (reader-count 50) (read-count 500000)
+ (outer-read-pause 0) (inner-read-pause 0)
+- (writer-count 10) (write-count (/ 1 *minimum-sleep*))
++ (writer-count 10) (write-count 5000)
+ (outer-write-pause *minimum-sleep*) (inner-write-pause 0))
+ (let ((rw (make-frlock))
+ (a 0)
+@@ -87,7 +87,7 @@
+ #+sb-thread
+ (deftest* (frlock.1 :fails-on :win32)
+ (handler-case
+- (sb-ext:with-timeout 60 (test-frlocks))
++ (sb-ext:with-timeout 240 (test-frlocks))
+ (sb-ext:timeout (c)
+ (error "~A" c)))
+ nil
diff --git a/dev-lisp/sbcl/files/concurrency-test-1.3.15.patch b/dev-lisp/sbcl/files/concurrency-test-1.3.15.patch
new file mode 100644
index 000000000000..53b5bea06bc1
--- /dev/null
+++ b/dev-lisp/sbcl/files/concurrency-test-1.3.15.patch
@@ -0,0 +1,17 @@
+diff -r -U2 sbcl-1.3.15.orig/contrib/sb-concurrency/tests/test-frlock.lisp sbcl-1.3.15/contrib/sb-concurrency/tests/test-frlock.lisp
+--- sbcl-1.3.15.orig/contrib/sb-concurrency/tests/test-frlock.lisp 2017-02-28 20:51:29.000000000 +0100
++++ sbcl-1.3.15/contrib/sb-concurrency/tests/test-frlock.lisp 2017-03-02 18:15:41.225284441 +0100
+@@ -25,5 +25,5 @@
+ (defun test-frlocks (&key (reader-count 100) (read-count 1000000)
+ (outer-read-pause 0) (inner-read-pause 0)
+- (writer-count 10) (write-count (/ 1 *minimum-sleep*))
++ (writer-count 10) (write-count 5000)
+ (outer-write-pause *minimum-sleep*) (inner-write-pause 0))
+ (let ((rw (make-frlock))
+@@ -88,5 +88,5 @@
+ (deftest* (frlock.1)
+ (handler-case
+- (sb-ext:with-timeout 10
++ (sb-ext:with-timeout 240
+ (test-frlocks #+win32 :outer-write-pause #+win32 t ))
+ (sb-ext:timeout (c)
diff --git a/dev-lisp/sbcl/files/gentoo-fix_install_man.patch b/dev-lisp/sbcl/files/gentoo-fix_install_man.patch
new file mode 100644
index 000000000000..87a5f43c0c13
--- /dev/null
+++ b/dev-lisp/sbcl/files/gentoo-fix_install_man.patch
@@ -0,0 +1,12 @@
+diff --git a/install.sh b/install.sh
+index 1400791..ac149c1 100644
+--- a/install.sh
++++ b/install.sh
+@@ -106,6 +106,7 @@ echo "Documentation:"
+
+ # man
+ cp doc/sbcl.1 "$BUILD_ROOT$MAN_DIR"/man1/ && echo " man $BUILD_ROOT$MAN_DIR/man1/sbcl.1"
++cp doc/sbcl-asdf-install.1 "$BUILD_ROOT$MAN_DIR"/man1/ && echo " man $BUILD_ROOT$MAN_DIR/man1/sbcl-asdf-install.1"
+
+ # info
+ for info in doc/manual/*.info
diff --git a/dev-lisp/sbcl/files/sb-posix-test-1.2.15.patch b/dev-lisp/sbcl/files/sb-posix-test-1.2.15.patch
new file mode 100644
index 000000000000..517208a791e2
--- /dev/null
+++ b/dev-lisp/sbcl/files/sb-posix-test-1.2.15.patch
@@ -0,0 +1,40 @@
+diff -r -U1 sbcl-1.2.15.orig/contrib/sb-posix/posix-tests.lisp sbcl-1.2.15/contrib/sb-posix/posix-tests.lisp
+--- sbcl-1.2.15.orig/contrib/sb-posix/posix-tests.lisp 2015-08-31 00:59:03.000000000 +0600
++++ sbcl-1.2.15/contrib/sb-posix/posix-tests.lisp 2015-09-22 10:19:20.000000000 +0600
+@@ -169,19 +169,19 @@
+
+-(deftest rmdir.error.3
+- (handler-case
+- (sb-posix:rmdir #-win32 "/" #+win32 (sb-ext:posix-getenv "windir"))
+- (sb-posix:syscall-error (c)
+- (typep
+- (sb-posix:syscall-errno c)
+- '(member
+- #+(or darwin openbsd)
+- #.sb-posix:eisdir
+- #+win32
+- #.sb-posix::eacces
+- #+win32
+- #.sb-posix::enotempty
+- #+sunos
+- #.sb-posix::einval
+- #-(or darwin openbsd win32 sunos)
+- #.sb-posix::ebusy)))) t)
++;(deftest rmdir.error.3
++; (handler-case
++; (sb-posix:rmdir #-win32 "/" #+win32 (sb-ext:posix-getenv "windir"))
++; (sb-posix:syscall-error (c)
++; (typep
++; (sb-posix:syscall-errno c)
++; '(member
++; #+(or darwin openbsd)
++; #.sb-posix:eisdir
++; #+win32
++; #.sb-posix::eacces
++; #+win32
++; #.sb-posix::enotempty
++; #+sunos
++; #.sb-posix::einval
++; #-(or darwin openbsd win32 sunos)
++; #.sb-posix::ebusy)))) t)
+
diff --git a/dev-lisp/sbcl/files/sbcl-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch b/dev-lisp/sbcl/files/sbcl-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch
new file mode 100644
index 000000000000..bf03ada518fe
--- /dev/null
+++ b/dev-lisp/sbcl/files/sbcl-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch
@@ -0,0 +1,22 @@
+--- sbcl-1.1.17-orig/src/runtime/Config.x86-linux 2014-03-31 03:14:22.000000000 +1100
++++ sbcl-1.1.17/src/runtime/Config.x86-linux 2014-04-28 15:34:59.822482441 +1000
+@@ -27,7 +27,7 @@
+ # (You *are* encouraged to design and implement a coherent stable
+ # interface, though.:-| As far as I (WHN 2002-05-19) know, no one is
+ # working on one and it would be a nice thing to have.)
+-LINKFLAGS += -Wl,--export-dynamic -m32
++LINKFLAGS += -Wl,--export-dynamic -m32 -nopie
+ OS_LIBS = -ldl
+
+ ifdef LISP_FEATURE_LARGEFILE
+--- sbcl-1.1.17-orig/src/runtime/Config.x86-64-linux 2014-03-31 03:14:22.000000000 +1100
++++ sbcl-1.1.17/src/runtime/Config.x86-64-linux 2014-04-28 15:35:22.364623003 +1000
+@@ -27,7 +27,7 @@
+ # (You *are* encouraged to design and implement a coherent stable
+ # interface, though.:-| As far as I (WHN 2002-05-19) know, no one is
+ # working on one and it would be a nice thing to have.)
+-LINKFLAGS += -Wl,--export-dynamic
++LINKFLAGS += -Wl,--export-dynamic -nopie
+ OS_LIBS = -ldl
+
+ ifdef LISP_FEATURE_LARGEFILE
diff --git a/dev-lisp/sbcl/files/sbcl-1.2.11-solaris.patch b/dev-lisp/sbcl/files/sbcl-1.2.11-solaris.patch
new file mode 100644
index 000000000000..850fd5d9dba7
--- /dev/null
+++ b/dev-lisp/sbcl/files/sbcl-1.2.11-solaris.patch
@@ -0,0 +1,12 @@
+diff -r -U2 sbcl-1.2.11.orig/src/runtime/Config.x86-sunos sbcl-1.2.11/src/runtime/Config.x86-sunos
+--- sbcl-1.2.11.orig/src/runtime/Config.x86-sunos 2015-04-27 20:56:50.000000000 +0600
++++ sbcl-1.2.11/src/runtime/Config.x86-sunos 2015-04-28 22:38:01.569103626 +0600
+@@ -12,6 +12,6 @@
+ CC=gcc
+ CFLAGS = -g -O2 -Wall -D__EXTENSIONS__ -D_POSIX_C_SOURCE=199506L -DSVR4 -D_REENTRANT -fno-omit-frame-pointer
+-NM = nm -xgp
+-GREP = ggrep
++NM = nm -t x -p
++GREP = grep
+
+ ASSEM_SRC = x86-assem.S ldso-stubs.S
diff --git a/dev-lisp/sbcl/files/sbcl-1.2.13-verbose-build.patch b/dev-lisp/sbcl/files/sbcl-1.2.13-verbose-build.patch
new file mode 100644
index 000000000000..ade4f0868c67
--- /dev/null
+++ b/dev-lisp/sbcl/files/sbcl-1.2.13-verbose-build.patch
@@ -0,0 +1,25 @@
+diff -r -U2 sbcl-1.2.13.orig/make.sh sbcl-1.2.13/make.sh
+--- sbcl-1.2.13.orig/make.sh 2015-06-29 01:24:03.000000000 +0600
++++ sbcl-1.2.13/make.sh 2015-06-29 15:53:04.430927942 +0600
+@@ -25,5 +25,5 @@
+ # any --xc-host parameter should be suitable for the host machine
+ # instead of the target.
+-sh make-config.sh "$@" || exit $?
++sh -x make-config.sh "$@" || exit $?
+
+ . output/prefix.def
+@@ -70,9 +70,9 @@
+ # and the make-target-*.sh scripts will take care of transferring the
+ # necessary files.
+-time sh make-host-1.sh
+-time sh make-target-1.sh
+-time sh make-host-2.sh
+-time sh make-target-2.sh
+-time sh make-target-contrib.sh
++time sh -x make-host-1.sh
++time sh -x make-target-1.sh
++time sh -x make-host-2.sh
++time sh -x make-target-2.sh
++time sh -x make-target-contrib.sh
+
+ NCONTRIBS=`find contrib -name Makefile -print | wc -l`
diff --git a/dev-lisp/sbcl/files/sbcl-1.3.11-config.patch b/dev-lisp/sbcl/files/sbcl-1.3.11-config.patch
new file mode 100644
index 000000000000..e23f1e6d9bcb
--- /dev/null
+++ b/dev-lisp/sbcl/files/sbcl-1.3.11-config.patch
@@ -0,0 +1,16 @@
+diff -r -U2 sbcl-1.3.11.orig/src/runtime/Config.x86-64-linux sbcl-1.3.11/src/runtime/Config.x86-64-linux
+--- sbcl-1.3.11.orig/src/runtime/Config.x86-64-linux 2016-10-30 23:28:43.000000000 +0700
++++ sbcl-1.3.11/src/runtime/Config.x86-64-linux 2016-11-16 23:27:37.248815622 +0700
+@@ -58,12 +58,4 @@
+ endif
+
+-# The following works for Ubuntu 16.10. There must be a better way to
+-# do this across various flavors of linux.
+-ifneq ($(shell $(CC) -dumpspecs 2>/dev/null | grep -e no-pie),)
+-CFLAGS += -fno-pie
+-LINKFLAGS += -no-pie
+-LDFLAGS += -no-pie
+-endif
+-
+ # Nothing to do for after-grovel-headers.
+ .PHONY: after-grovel-headers
diff --git a/dev-lisp/sbcl/files/sbcl-1.3.19-bsd-sockets-test.patch b/dev-lisp/sbcl/files/sbcl-1.3.19-bsd-sockets-test.patch
new file mode 100644
index 000000000000..c5a16ae05778
--- /dev/null
+++ b/dev-lisp/sbcl/files/sbcl-1.3.19-bsd-sockets-test.patch
@@ -0,0 +1,363 @@
+diff -Nuar a/contrib/sb-bsd-sockets/tests.lisp b/contrib/sb-bsd-sockets/tests.lisp
+--- a/contrib/sb-bsd-sockets/tests.lisp 2017-06-28 12:51:14.000000000 +0200
++++ b/contrib/sb-bsd-sockets/tests.lisp 2017-07-02 17:18:23.862316798 +0200
+@@ -35,15 +35,15 @@
+ ;;; See https://bugs.launchpad.net/sbcl/+bug/659857
+ ;;; Apparently getprotobyname_r on FreeBSD says -1 and EINTR
+ ;;; for unknown protocols...
+-#-(and freebsd sb-thread)
+-#-(and dragonfly sb-thread)
+-(deftest get-protocol-by-name/error
+- (handler-case (get-protocol-by-name "nonexistent-protocol")
+- (unknown-protocol ()
+- t)
+- (:no-error ()
+- nil))
+- t)
++;#-(and freebsd sb-thread)
++;#-(and dragonfly sb-thread)
++;(deftest get-protocol-by-name/error
++; (handler-case (get-protocol-by-name "nonexistent-protocol")
++; (unknown-protocol ()
++; t)
++; (:no-error ()
++; nil))
++; t)
+
+ (when (handler-case (make-instance 'inet-socket
+ :type :stream
+@@ -102,21 +102,21 @@
+ (:no-error nil))
+ t)
+
+-#-win32
+-(deftest make-inet6-socket.smoke
+- (handler-case
+- (let ((s (make-instance 'inet6-socket :type :stream :protocol (get-protocol-by-name "tcp"))))
+- (> (socket-file-descriptor s) 1))
+- ((or address-family-not-supported protocol-not-supported-error) () t))
+- t)
+-
+-#-win32
+-(deftest make-inet6-socket.keyword
+- (handler-case
+- (let ((s (make-instance 'inet6-socket :type :stream :protocol :tcp)))
+- (> (socket-file-descriptor s) 1))
+- ((or address-family-not-supported protocol-not-supported-error) () t))
+- t)
++;#-win32
++;(deftest make-inet6-socket.smoke
++; (handler-case
++; (let ((s (make-instance 'inet6-socket :type :stream :protocol (get-protocol-by-name "tcp"))))
++; (> (socket-file-descriptor s) 1))
++; ((or address-family-not-supported protocol-not-supported-error) () t))
++; t)
++
++;#-win32
++;(deftest make-inet6-socket.keyword
++; (handler-case
++; (let ((s (make-instance 'inet6-socket :type :stream :protocol :tcp)))
++; (> (socket-file-descriptor s) 1))
++; ((or address-family-not-supported protocol-not-supported-error) () t))
++; t)
+
+ #+ipv4-support
+ (deftest* (non-block-socket)
+@@ -125,55 +125,55 @@
+ (non-blocking-mode s))
+ t)
+
+-#+ipv4-support
+-(deftest inet-socket-bind
+- (let* ((tcp (get-protocol-by-name "tcp"))
+- (address (make-inet-address "127.0.0.1"))
+- (s1 (make-instance 'inet-socket :type :stream :protocol tcp))
+- (s2 (make-instance 'inet-socket :type :stream :protocol tcp)))
+- (unwind-protect
+- ;; Given the functions we've got so far, if you can think of a
+- ;; better way to make sure the bind succeeded than trying it
+- ;; twice, let me know
+- (progn
+- (socket-bind s1 address 0)
+- (handler-case
+- (let ((port (nth-value 1 (socket-name s1))))
+- (socket-bind s2 address port)
+- nil)
+- (address-in-use-error () t)))
+- (socket-close s1)
+- (socket-close s2)))
+- t)
+-
+-#-win32
+-(deftest inet6-socket-bind
+- (handler-case
+- (let* ((tcp (get-protocol-by-name "tcp"))
+- (address (make-inet6-address "::1"))
+- (s1 (make-instance 'inet6-socket :type :stream :protocol tcp))
+- (s2 (make-instance 'inet6-socket :type :stream :protocol tcp)))
+- (unwind-protect
+- ;; Given the functions we've got so far, if you can think of a
+- ;; better way to make sure the bind succeeded than trying it
+- ;; twice, let me know
+- (handler-case
+- (socket-bind s1 address 0)
+- (socket-error ()
+- ;; This may mean no IPv6 support, can't fail a test
+- ;; because of that (address-family-not-supported doesn't catch that)
+- t)
+- (:no-error (x)
+- (declare (ignore x))
+- (handler-case
+- (let ((port (nth-value 1 (socket-name s1))))
+- (socket-bind s2 address port)
+- nil)
+- (address-in-use-error () t))))
+- (socket-close s1)
+- (socket-close s2)))
+- ((or address-family-not-supported protocol-not-supported-error) () t))
+- t)
++;#+ipv4-support
++;(deftest inet-socket-bind
++; (let* ((tcp (get-protocol-by-name "tcp"))
++; (address (make-inet-address "127.0.0.1"))
++; (s1 (make-instance 'inet-socket :type :stream :protocol tcp))
++; (s2 (make-instance 'inet-socket :type :stream :protocol tcp)))
++; (unwind-protect
++; ;; Given the functions we've got so far, if you can think of a
++; ;; better way to make sure the bind succeeded than trying it
++; ;; twice, let me know
++; (progn
++; (socket-bind s1 address 0)
++; (handler-case
++; (let ((port (nth-value 1 (socket-name s1))))
++; (socket-bind s2 address port)
++; nil)
++; (address-in-use-error () t)))
++; (socket-close s1)
++; (socket-close s2)))
++; t)
++
++;#-win32
++;(deftest inet6-socket-bind
++; (handler-case
++; (let* ((tcp (get-protocol-by-name "tcp"))
++; (address (make-inet6-address "::1"))
++; (s1 (make-instance 'inet6-socket :type :stream :protocol tcp))
++; (s2 (make-instance 'inet6-socket :type :stream :protocol tcp)))
++; (unwind-protect
++; ;; Given the functions we've got so far, if you can think of a
++; ;; better way to make sure the bind succeeded than trying it
++; ;; twice, let me know
++; (handler-case
++; (socket-bind s1 address 0)
++; (socket-error ()
++; ;; This may mean no IPv6 support, can't fail a test
++; ;; because of that (address-family-not-supported doesn't catch that)
++; t)
++; (:no-error (x)
++; (declare (ignore x))
++; (handler-case
++; (let ((port (nth-value 1 (socket-name s1))))
++; (socket-bind s2 address port)
++; nil)
++; (address-in-use-error () t))))
++; (socket-close s1)
++; (socket-close s2)))
++; ((or address-family-not-supported protocol-not-supported-error) () t))
++; t)
+
+ #+ipv4-support
+ (deftest* (simple-sockopt-test)
+@@ -241,37 +241,37 @@
+ ;;; to look at /etc/syslog.conf or local equivalent to find out where
+ ;;; the message ended up
+
+-#-win32
+-(deftest simple-local-client
+- (progn
+- ;; SunOS (Solaris) and Darwin systems don't have a socket at
+- ;; /dev/log. We might also be building in a chroot or
+- ;; something, so don't fail this test just because the file is
+- ;; unavailable, or if it's a symlink to some weird character
+- ;; device.
+- (when (block nil
+- (handler-bind ((sb-posix:syscall-error
+- (lambda (e)
+- (declare (ignore e))
+- (return nil))))
+- (sb-posix:s-issock
+- (sb-posix::stat-mode (sb-posix:stat "/dev/log")))))
+- (let ((s (make-instance 'local-socket :type :datagram)))
+- (format t "Connecting ~A... " s)
+- (finish-output)
+- (handler-case
+- (socket-connect s "/dev/log")
+- (sb-bsd-sockets::socket-error ()
+- (setq s (make-instance 'local-socket :type :stream))
+- (format t "failed~%Retrying with ~A... " s)
+- (finish-output)
+- (socket-connect s "/dev/log")))
+- (format t "ok.~%")
+- (let ((stream (socket-make-stream s :input t :output t :buffering :none)))
+- (format stream
+- "<7>bsd-sockets: Don't panic. We're testing local-domain client code; this message can safely be ignored"))))
+- t)
+- t)
++;#-win32
++;(deftest simple-local-client
++; (progn
++; ;; SunOS (Solaris) and Darwin systems don't have a socket at
++; ;; /dev/log. We might also be building in a chroot or
++; ;; something, so don't fail this test just because the file is
++; ;; unavailable, or if it's a symlink to some weird character
++; ;; device.
++; (when (block nil
++; (handler-bind ((sb-posix:syscall-error
++; (lambda (e)
++; (declare (ignore e))
++; (return nil))))
++; (sb-posix:s-issock
++; (sb-posix::stat-mode (sb-posix:stat "/dev/log")))))
++; (let ((s (make-instance 'local-socket :type :datagram)))
++; (format t "Connecting ~A... " s)
++; (finish-output)
++; (handler-case
++; (socket-connect s "/dev/log")
++; (sb-bsd-sockets::socket-error ()
++; (setq s (make-instance 'local-socket :type :stream))
++; (format t "failed~%Retrying with ~A... " s)
++; (finish-output)
++; (socket-connect s "/dev/log")))
++; (format t "ok.~%")
++; (let ((stream (socket-make-stream s :input t :output t :buffering :none)))
++; (format stream
++; "<7>bsd-sockets: Don't panic. We're testing local-domain client code; this message can safely be ignored"))))
++; t)
++; t)
+
+
+ ;;; these require that the internet (or bits of it, at least) is available
+@@ -388,60 +388,60 @@
+ (format t "Received ~A bytes from ~A:~A - ~A ~%"
+ len address port (subseq buf 0 (min 10 len)))))))
+
+-#+(and ipv4-support sb-thread)
+-(deftest interrupt-io
+- (let (result)
+- (labels
+- ((client (port)
+- (setf result
+- (let ((s (make-instance 'inet-socket
+- :type :stream
+- :protocol :tcp)))
+- (socket-connect s #(127 0 0 1) port)
+- (let ((stream (socket-make-stream s
+- :input t
+- :output t
+- :buffering :none)))
+- (handler-case
+- (prog1
+- (catch 'stop
+- (progn
+- (read-char stream)
+- (sleep 0.1)
+- (sleep 0.1)
+- (sleep 0.1)))
+- (close stream))
+- (error (c)
+- c))))))
+- (server ()
+- (let ((s (make-instance 'inet-socket
+- :type :stream
+- :protocol :tcp)))
+- (setf (sockopt-reuse-address s) t)
+- (socket-bind s (make-inet-address "127.0.0.1") 0)
+- (socket-listen s 5)
+- (multiple-value-bind (* port)
+- (socket-name s)
+- (let* ((client (sb-thread:make-thread
+- (lambda () (client port))))
+- (r (socket-accept s))
+- (stream (socket-make-stream r
+- :input t
+- :output t
+- :buffering :none))
+- (ok :ok))
+- (socket-close s)
+- (sleep 5)
+- (sb-thread:interrupt-thread client
+- (lambda () (throw 'stop ok)))
+- (sleep 5)
+- (setf ok :not-ok)
+- (write-char #\x stream)
+- (close stream)
+- (socket-close r))))))
+- (server))
+- result)
+- :ok)
++;#+(and ipv4-support sb-thread)
++;(deftest interrupt-io
++; (let (result)
++; (labels
++; ((client (port)
++; (setf result
++; (let ((s (make-instance 'inet-socket
++; :type :stream
++; :protocol :tcp)))
++; (socket-connect s #(127 0 0 1) port)
++; (let ((stream (socket-make-stream s
++; :input t
++; :output t
++; :buffering :none)))
++; (handler-case
++; (prog1
++; (catch 'stop
++; (progn
++; (read-char stream)
++; (sleep 0.1)
++; (sleep 0.1)
++; (sleep 0.1)))
++; (close stream))
++; (error (c)
++; c))))))
++; (server ()
++; (let ((s (make-instance 'inet-socket
++; :type :stream
++; :protocol :tcp)))
++; (setf (sockopt-reuse-address s) t)
++; (socket-bind s (make-inet-address "127.0.0.1") 0)
++; (socket-listen s 5)
++; (multiple-value-bind (* port)
++; (socket-name s)
++; (let* ((client (sb-thread:make-thread
++; (lambda () (client port))))
++; (r (socket-accept s))
++; (stream (socket-make-stream r
++; :input t
++; :output t
++; :buffering :none))
++; (ok :ok))
++; (socket-close s)
++; (sleep 5)
++; (sb-thread:interrupt-thread client
++; (lambda () (throw 'stop ok)))
++; (sleep 5)
++; (setf ok :not-ok)
++; (write-char #\x stream)
++; (close stream)
++; (socket-close r))))))
++; (server))
++; result)
++; :ok)
+
+ (defmacro with-client-and-server ((server-socket-var client-socket-var) &body body)
+ (let ((listen-socket (gensym "LISTEN-SOCKET")))
+@@ -501,5 +501,6 @@
+ (define-shutdown-test ,(make-name 'shutdown.client.ub8)
+ client server (unsigned-byte 8) ,direction)))))
+
+- (define-shutdown-tests :output)
+- (define-shutdown-tests :io))
++; (define-shutdown-tests :output)
++; (define-shutdown-tests :io)
++)
diff --git a/dev-lisp/sbcl/files/sbcl-1.4.0-bsd-sockets-test.patch b/dev-lisp/sbcl/files/sbcl-1.4.0-bsd-sockets-test.patch
new file mode 100644
index 000000000000..d51bdd5c507c
--- /dev/null
+++ b/dev-lisp/sbcl/files/sbcl-1.4.0-bsd-sockets-test.patch
@@ -0,0 +1,383 @@
+diff -Nuar a/contrib/sb-bsd-sockets/tests.lisp b/contrib/sb-bsd-sockets/tests.lisp
+--- a/contrib/sb-bsd-sockets/tests.lisp 2017-09-30 18:30:58.000000000 +0200
++++ b/contrib/sb-bsd-sockets/tests.lisp 2017-10-01 18:45:57.132900158 +0200
+@@ -18,11 +18,11 @@
+ (equalp (make-inet-address "242.1.211.3") #(242 1 211 3))
+ t)
+
+-#-win32
+-(deftest make-inet6-address.1
+- (equalp (make-inet6-address "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")
+- #(255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255))
+- t)
++;#-win32
++;(deftest make-inet6-address.1
++; (equalp (make-inet6-address "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")
++; #(255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255))
++; t)
+
+ (deftest get-protocol-by-name/tcp
+ (integerp (get-protocol-by-name "tcp"))
+@@ -35,15 +35,15 @@
+ ;;; See https://bugs.launchpad.net/sbcl/+bug/659857
+ ;;; Apparently getprotobyname_r on FreeBSD says -1 and EINTR
+ ;;; for unknown protocols...
+-#-(and freebsd sb-thread)
+-#-(and dragonfly sb-thread)
+-(deftest get-protocol-by-name/error
+- (handler-case (get-protocol-by-name "nonexistent-protocol")
+- (unknown-protocol ()
+- t)
+- (:no-error ()
+- nil))
+- t)
++;#-(and freebsd sb-thread)
++;#-(and dragonfly sb-thread)
++;(deftest get-protocol-by-name/error
++; (handler-case (get-protocol-by-name "nonexistent-protocol")
++; (unknown-protocol ()
++; t)
++; (:no-error ()
++; nil))
++; t)
+
+ (when (handler-case (make-instance 'inet-socket
+ :type :stream
+@@ -102,21 +102,21 @@
+ (:no-error nil))
+ t)
+
+-#-win32
+-(deftest make-inet6-socket.smoke
+- (handler-case
+- (let ((s (make-instance 'inet6-socket :type :stream :protocol (get-protocol-by-name "tcp"))))
+- (> (socket-file-descriptor s) 1))
+- ((or address-family-not-supported protocol-not-supported-error) () t))
+- t)
+-
+-#-win32
+-(deftest make-inet6-socket.keyword
+- (handler-case
+- (let ((s (make-instance 'inet6-socket :type :stream :protocol :tcp)))
+- (> (socket-file-descriptor s) 1))
+- ((or address-family-not-supported protocol-not-supported-error) () t))
+- t)
++;#-win32
++;(deftest make-inet6-socket.smoke
++; (handler-case
++; (let ((s (make-instance 'inet6-socket :type :stream :protocol (get-protocol-by-name "tcp"))))
++; (> (socket-file-descriptor s) 1))
++; ((or address-family-not-supported protocol-not-supported-error) () t))
++; t)
++
++;#-win32
++;(deftest make-inet6-socket.keyword
++; (handler-case
++; (let ((s (make-instance 'inet6-socket :type :stream :protocol :tcp)))
++; (> (socket-file-descriptor s) 1))
++; ((or address-family-not-supported protocol-not-supported-error) () t))
++; t)
+
+ #+ipv4-support
+ (deftest* (non-block-socket)
+@@ -125,55 +125,55 @@
+ (non-blocking-mode s))
+ t)
+
+-#+ipv4-support
+-(deftest inet-socket-bind
+- (let* ((tcp (get-protocol-by-name "tcp"))
+- (address (make-inet-address "127.0.0.1"))
+- (s1 (make-instance 'inet-socket :type :stream :protocol tcp))
+- (s2 (make-instance 'inet-socket :type :stream :protocol tcp)))
+- (unwind-protect
+- ;; Given the functions we've got so far, if you can think of a
+- ;; better way to make sure the bind succeeded than trying it
+- ;; twice, let me know
+- (progn
+- (socket-bind s1 address 0)
+- (handler-case
+- (let ((port (nth-value 1 (socket-name s1))))
+- (socket-bind s2 address port)
+- nil)
+- (address-in-use-error () t)))
+- (socket-close s1)
+- (socket-close s2)))
+- t)
+-
+-#-win32
+-(deftest inet6-socket-bind
+- (handler-case
+- (let* ((tcp (get-protocol-by-name "tcp"))
+- (address (make-inet6-address "::1"))
+- (s1 (make-instance 'inet6-socket :type :stream :protocol tcp))
+- (s2 (make-instance 'inet6-socket :type :stream :protocol tcp)))
+- (unwind-protect
+- ;; Given the functions we've got so far, if you can think of a
+- ;; better way to make sure the bind succeeded than trying it
+- ;; twice, let me know
+- (handler-case
+- (socket-bind s1 address 0)
+- (socket-error ()
+- ;; This may mean no IPv6 support, can't fail a test
+- ;; because of that (address-family-not-supported doesn't catch that)
+- t)
+- (:no-error (x)
+- (declare (ignore x))
+- (handler-case
+- (let ((port (nth-value 1 (socket-name s1))))
+- (socket-bind s2 address port)
+- nil)
+- (address-in-use-error () t))))
+- (socket-close s1)
+- (socket-close s2)))
+- ((or address-family-not-supported protocol-not-supported-error) () t))
+- t)
++;#+ipv4-support
++;(deftest inet-socket-bind
++; (let* ((tcp (get-protocol-by-name "tcp"))
++; (address (make-inet-address "127.0.0.1"))
++; (s1 (make-instance 'inet-socket :type :stream :protocol tcp))
++; (s2 (make-instance 'inet-socket :type :stream :protocol tcp)))
++; (unwind-protect
++; ;; Given the functions we've got so far, if you can think of a
++; ;; better way to make sure the bind succeeded than trying it
++; ;; twice, let me know
++; (progn
++; (socket-bind s1 address 0)
++; (handler-case
++; (let ((port (nth-value 1 (socket-name s1))))
++; (socket-bind s2 address port)
++; nil)
++; (address-in-use-error () t)))
++; (socket-close s1)
++; (socket-close s2)))
++; t)
++
++;#-win32
++;(deftest inet6-socket-bind
++; (handler-case
++; (let* ((tcp (get-protocol-by-name "tcp"))
++; (address (make-inet6-address "::1"))
++; (s1 (make-instance 'inet6-socket :type :stream :protocol tcp))
++; (s2 (make-instance 'inet6-socket :type :stream :protocol tcp)))
++; (unwind-protect
++; ;; Given the functions we've got so far, if you can think of a
++; ;; better way to make sure the bind succeeded than trying it
++; ;; twice, let me know
++; (handler-case
++; (socket-bind s1 address 0)
++; (socket-error ()
++; ;; This may mean no IPv6 support, can't fail a test
++; ;; because of that (address-family-not-supported doesn't catch that)
++; t)
++; (:no-error (x)
++; (declare (ignore x))
++; (handler-case
++; (let ((port (nth-value 1 (socket-name s1))))
++; (socket-bind s2 address port)
++; nil)
++; (address-in-use-error () t))))
++; (socket-close s1)
++; (socket-close s2)))
++; ((or address-family-not-supported protocol-not-supported-error) () t))
++; t)
+
+ #+ipv4-support
+ (deftest* (simple-sockopt-test)
+@@ -241,37 +241,37 @@
+ ;;; to look at /etc/syslog.conf or local equivalent to find out where
+ ;;; the message ended up
+
+-#-win32
+-(deftest simple-local-client
+- (progn
+- ;; SunOS (Solaris) and Darwin systems don't have a socket at
+- ;; /dev/log. We might also be building in a chroot or
+- ;; something, so don't fail this test just because the file is
+- ;; unavailable, or if it's a symlink to some weird character
+- ;; device.
+- (when (block nil
+- (handler-bind ((sb-posix:syscall-error
+- (lambda (e)
+- (declare (ignore e))
+- (return nil))))
+- (sb-posix:s-issock
+- (sb-posix::stat-mode (sb-posix:stat "/dev/log")))))
+- (let ((s (make-instance 'local-socket :type :datagram)))
+- (format t "Connecting ~A... " s)
+- (finish-output)
+- (handler-case
+- (socket-connect s "/dev/log")
+- (sb-bsd-sockets::socket-error ()
+- (setq s (make-instance 'local-socket :type :stream))
+- (format t "failed~%Retrying with ~A... " s)
+- (finish-output)
+- (socket-connect s "/dev/log")))
+- (format t "ok.~%")
+- (let ((stream (socket-make-stream s :input t :output t :buffering :none)))
+- (format stream
+- "<7>bsd-sockets: Don't panic. We're testing local-domain client code; this message can safely be ignored"))))
+- t)
+- t)
++;#-win32
++;(deftest simple-local-client
++; (progn
++; ;; SunOS (Solaris) and Darwin systems don't have a socket at
++; ;; /dev/log. We might also be building in a chroot or
++; ;; something, so don't fail this test just because the file is
++; ;; unavailable, or if it's a symlink to some weird character
++; ;; device.
++; (when (block nil
++; (handler-bind ((sb-posix:syscall-error
++; (lambda (e)
++; (declare (ignore e))
++; (return nil))))
++; (sb-posix:s-issock
++; (sb-posix::stat-mode (sb-posix:stat "/dev/log")))))
++; (let ((s (make-instance 'local-socket :type :datagram)))
++; (format t "Connecting ~A... " s)
++; (finish-output)
++; (handler-case
++; (socket-connect s "/dev/log")
++; (sb-bsd-sockets::socket-error ()
++; (setq s (make-instance 'local-socket :type :stream))
++; (format t "failed~%Retrying with ~A... " s)
++; (finish-output)
++; (socket-connect s "/dev/log")))
++; (format t "ok.~%")
++; (let ((stream (socket-make-stream s :input t :output t :buffering :none)))
++; (format stream
++; "<7>bsd-sockets: Don't panic. We're testing local-domain client code; this message can safely be ignored"))))
++; t)
++; t)
+
+ ;;; these require that the internet (or bits of it, at least) is available
+
+@@ -387,60 +387,60 @@
+ (format t "Received ~A bytes from ~A:~A - ~A ~%"
+ len address port (subseq buf 0 (min 10 len)))))))
+
+-#+(and ipv4-support sb-thread)
+-(deftest interrupt-io
+- (let (result)
+- (labels
+- ((client (port)
+- (setf result
+- (let ((s (make-instance 'inet-socket
+- :type :stream
+- :protocol :tcp)))
+- (socket-connect s #(127 0 0 1) port)
+- (let ((stream (socket-make-stream s
+- :input t
+- :output t
+- :buffering :none)))
+- (handler-case
+- (prog1
+- (catch 'stop
+- (progn
+- (read-char stream)
+- (sleep 0.1)
+- (sleep 0.1)
+- (sleep 0.1)))
+- (close stream))
+- (error (c)
+- c))))))
+- (server ()
+- (let ((s (make-instance 'inet-socket
+- :type :stream
+- :protocol :tcp)))
+- (setf (sockopt-reuse-address s) t)
+- (socket-bind s (make-inet-address "127.0.0.1") 0)
+- (socket-listen s 5)
+- (multiple-value-bind (* port)
+- (socket-name s)
+- (let* ((client (sb-thread:make-thread
+- (lambda () (client port))))
+- (r (socket-accept s))
+- (stream (socket-make-stream r
+- :input t
+- :output t
+- :buffering :none))
+- (ok :ok))
+- (socket-close s)
+- (sleep 5)
+- (sb-thread:interrupt-thread client
+- (lambda () (throw 'stop ok)))
+- (sleep 5)
+- (setf ok :not-ok)
+- (write-char #\x stream)
+- (close stream)
+- (socket-close r))))))
+- (server))
+- result)
+- :ok)
++;#+(and ipv4-support sb-thread)
++;(deftest interrupt-io
++; (let (result)
++; (labels
++; ((client (port)
++; (setf result
++; (let ((s (make-instance 'inet-socket
++; :type :stream
++; :protocol :tcp)))
++; (socket-connect s #(127 0 0 1) port)
++; (let ((stream (socket-make-stream s
++; :input t
++; :output t
++; :buffering :none)))
++; (handler-case
++; (prog1
++; (catch 'stop
++; (progn
++; (read-char stream)
++; (sleep 0.1)
++; (sleep 0.1)
++; (sleep 0.1)))
++; (close stream))
++; (error (c)
++; c))))))
++; (server ()
++; (let ((s (make-instance 'inet-socket
++; :type :stream
++; :protocol :tcp)))
++; (setf (sockopt-reuse-address s) t)
++; (socket-bind s (make-inet-address "127.0.0.1") 0)
++; (socket-listen s 5)
++; (multiple-value-bind (* port)
++; (socket-name s)
++; (let* ((client (sb-thread:make-thread
++; (lambda () (client port))))
++; (r (socket-accept s))
++; (stream (socket-make-stream r
++; :input t
++; :output t
++; :buffering :none))
++; (ok :ok))
++; (socket-close s)
++; (sleep 5)
++; (sb-thread:interrupt-thread client
++; (lambda () (throw 'stop ok)))
++; (sleep 5)
++; (setf ok :not-ok)
++; (write-char #\x stream)
++; (close stream)
++; (socket-close r))))))
++; (server))
++; result)
++; :ok)
+
+ (defmacro with-client-and-server (((socket-class &rest common-initargs)
+ (listen-socket-var &rest listen-address)
+@@ -503,8 +503,9 @@
+ (define-shutdown-test ,(make-name 'shutdown.client.ub8)
+ client server (unsigned-byte 8) ,direction)))))
+
+- (define-shutdown-tests :output)
+- (define-shutdown-tests :io))
++; (define-shutdown-tests :output)
++; (define-shutdown-tests :io)
++)
+
+ #+linux
+ (deftest abstract.smoke
diff --git a/dev-lisp/sbcl/files/sbcl-1.4.0-verbose-build.patch b/dev-lisp/sbcl/files/sbcl-1.4.0-verbose-build.patch
new file mode 100644
index 000000000000..27ad3b0758d4
--- /dev/null
+++ b/dev-lisp/sbcl/files/sbcl-1.4.0-verbose-build.patch
@@ -0,0 +1,29 @@
+diff -Nuar a/make.sh b/make.sh
+--- a/make.sh 2017-09-30 18:30:58.000000000 +0200
++++ b/make.sh 2017-10-01 18:08:26.742909789 +0200
+@@ -24,7 +24,7 @@
+ # thing" when run on the target machine, with the minor caveat that
+ # any --xc-host parameter should be suitable for the host machine
+ # instead of the target.
+-sh make-config.sh "$@" || exit $?
++sh -x make-config.sh "$@" || exit $?
+
+ . output/prefix.def
+ . output/build-config
+@@ -76,11 +76,11 @@
+ $@
+ fi
+ }
+-maybetime sh make-host-1.sh
+-maybetime sh make-target-1.sh
+-maybetime sh make-host-2.sh
+-maybetime sh make-target-2.sh
+-maybetime sh make-target-contrib.sh
++maybetime sh -x make-host-1.sh
++maybetime sh -x make-target-1.sh
++maybetime sh -x make-host-2.sh
++maybetime sh -x make-target-2.sh
++maybetime sh -x make-target-contrib.sh
+
+ NCONTRIBS=`find contrib -name Makefile -print | wc -l`
+ NPASSED=`find obj/asdf-cache -name test-passed.test-report -print | wc -l`
diff --git a/dev-lisp/sbcl/metadata.xml b/dev-lisp/sbcl/metadata.xml
new file mode 100644
index 000000000000..6e4e604220ed
--- /dev/null
+++ b/dev-lisp/sbcl/metadata.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>bugs@cddr.org</email>
+ <name>Stelian Ionescu (fe[nl]ix)</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription>Steel Bank Common Lisp is an open source Common
+ Lisp implementation. It provides an integrated native compiler,
+ interpreter, and debugger. SBCL is a fork off of the main branch
+ of CMUCL. SBCL is distinguished from CMUCL by a greater emphasis
+ on maintainability. In particular, the SBCL system can be built
+ directly from its source code, so that the output corresponds to
+ the source code in a controlled, verifiable way, and arbitrary
+ changes can be made to the system without causing bootstrapping
+ problems. SBCL also places less emphasis than CMU CL does on new
+ non-ANSI extensions, or on backward compatibility with old
+ non-ANSI features. Support for native threading on GNU/Linux is
+ available for the x86 and amd64 platforms using an NPTL enabled
+ GLIBC. SBCL 0.8.17 and later support Unicode.
+</longdescription>
+ <use>
+ <flag name="pax_kernel">Enable if the user plans to run the package under a pax enabled hardened kernel</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">sbcl</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lisp/sbcl/sbcl-1.3.11.ebuild b/dev-lisp/sbcl/sbcl-1.3.11.ebuild
new file mode 100644
index 000000000000..0695a8193433
--- /dev/null
+++ b/dev-lisp/sbcl/sbcl-1.3.11.ebuild
@@ -0,0 +1,242 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit multilib eutils flag-o-matic pax-utils
+
+#same order as http://www.sbcl.org/platform-table.html
+BV_X86=1.2.7
+BV_AMD64=1.3.11
+BV_PPC=1.2.7
+BV_SPARC=1.0.28
+BV_ALPHA=1.0.28
+BV_ARM=1.3.9
+BV_ARM64=1.3.11
+BV_PPC_MACOS=1.0.47
+BV_X86_MACOS=1.1.6
+BV_X64_MACOS=1.2.11
+BV_SPARC_SOLARIS=1.0.23
+BV_X86_SOLARIS=1.2.7
+BV_X64_SOLARIS=1.2.7
+
+DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp"
+HOMEPAGE="http://sbcl.sourceforge.net/"
+SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2
+ x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 )
+ amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 )
+ ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 )
+ sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 )
+ alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 )
+ arm? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 )
+ ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-binary.tar.bz2 )
+ x86-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_MACOS}-x86-darwin-binary.tar.bz2 )
+ x64-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 )
+ sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-solaris-binary.tar.bz2 )
+ x86-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_SOLARIS}-x86-solaris-binary.tar.bz2 )
+ x64-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 )"
+
+LICENSE="MIT"
+SLOT="0/${PV}"
+KEYWORDS="amd64 ppc sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="debug doc source +threads +unicode pax_kernel zlib"
+
+CDEPEND=">=dev-lisp/asdf-3.1:="
+DEPEND="${CDEPEND}
+ doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 )
+ pax_kernel? ( sys-apps/elfix )"
+RDEPEND="${CDEPEND}
+ !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )"
+
+# Disable warnings about executable stacks, as this won't be fixed soon by upstream
+QA_EXECSTACK="usr/bin/sbcl"
+
+CONFIG="${S}/customize-target-features.lisp"
+ENVD="${T}/50sbcl"
+
+# Prevent ASDF from using the system libraries
+CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)"
+ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)"
+
+usep() {
+ use ${1} && echo "true" || echo "false"
+}
+
+sbcl_feature() {
+ echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}"
+}
+
+sbcl_apply_features() {
+ sed 's/^X//' > "${CONFIG}" <<-'EOF'
+ (lambda (list)
+ X (flet ((enable (x) (pushnew x list))
+ X (disable (x) (setf list (remove x list))))
+ EOF
+ if use x86 || use amd64; then
+ sbcl_feature "$(usep threads)" ":sb-thread"
+ fi
+ sbcl_feature "true" ":sb-ldb"
+ sbcl_feature "false" ":sb-test"
+ sbcl_feature "$(usep unicode)" ":sb-unicode"
+ sbcl_feature "$(usep zlib)" ":sb-core-compression"
+ sbcl_feature "$(usep debug)" ":sb-xref-for-internals"
+ sed 's/^X//' >> "${CONFIG}" <<-'EOF'
+ X )
+ X list)
+ EOF
+ cat "${CONFIG}"
+}
+
+src_unpack() {
+ unpack ${A}
+ mv sbcl-*-* sbcl-binary || die
+ cd "${S}"
+}
+
+src_prepare() {
+ eapply "${FILESDIR}"/gentoo-fix_install_man.patch
+ # bug #468482
+ eapply "${FILESDIR}"/concurrency-test-1.2.6.patch
+ # bugs #486552, #527666, #517004
+ eapply "${FILESDIR}"/bsd-sockets-test-1.2.11.patch
+ # bugs #560276, #561018
+ eapply "${FILESDIR}"/sb-posix-test-1.2.15.patch
+ # bug #599902
+ eapply "${FILESDIR}"/${PN}-1.3.11-config.patch
+
+ eapply "${FILESDIR}"/${PN}-1.2.11-solaris.patch
+ eapply "${FILESDIR}"/${PN}-1.2.13-verbose-build.patch
+
+ # To make the hardened compiler NOT compile with -fPIE -pie
+ if gcc-specs-pie ; then
+ einfo "Disabling PIE..."
+ eapply "${FILESDIR}"/${PN}-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch
+ fi
+
+ eapply_user
+
+ # bug #526194
+ sed -e "s@CFLAGS =.*\$@CFLAGS = ${CFLAGS} -g -Wall -Wsign-compare@" \
+ -e "s@LINKFLAGS =.*\$@LINKFLAGS = ${LDFLAGS} -g@" \
+ -i src/runtime/GNUmakefile || die
+
+ sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \
+ -i make-config.sh || die
+
+ cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die
+
+ use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk
+
+ # Some shells(such as dash) don't have "time" as builtin
+ # and we don't want to DEPEND on sys-process/time
+ sed "s,^time ,," -i make.sh || die
+ sed "s,/lib,/$(get_libdir),g" -i install.sh || die
+ # #define SBCL_HOME ...
+ sed "s,/usr/local/lib,${EPREFIX}/usr/$(get_libdir),g" -i src/runtime/runtime.c || die
+ # change location of /etc/sbclrc ...
+ sed "s,/etc/sbclrc,${EPREFIX}/etc/sbclrc,g" -i src/code/toplevel.lisp || die
+
+ find . -type f -name .cvsignore -delete
+}
+
+src_configure() {
+ # customizing SBCL version as per
+ # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup
+ echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr
+
+ # applying customizations
+ sbcl_apply_features
+}
+
+src_compile() {
+ local bindir="${WORKDIR}"/sbcl-binary
+
+ strip-unsupported-flags ; filter-flags -fomit-frame-pointer
+
+ if use pax_kernel ; then
+ # To disable PaX on hardened systems
+ pax-mark -mr "${bindir}"/src/runtime/sbcl
+
+ # Hack to disable PaX on second GENESIS stage
+ sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \
+ "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime"
+ fi
+
+ # clear the environment to get rid of non-ASCII strings, see bug 174702
+ # set HOME for paludis
+ env - HOME="${T}" PATH="${PATH}" \
+ CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \
+ CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \
+ GNUMAKE=make ./make.sh \
+ "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \
+ || die "make failed"
+
+ # need to set HOME because libpango(used by graphviz) complains about it
+ if use doc; then
+ env - HOME="${T}" PATH="${PATH}" \
+ CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \
+ ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \
+ make -C doc/manual info html || die "Cannot build manual"
+ env - HOME="${T}" PATH="${PATH}" \
+ CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \
+ ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \
+ make -C doc/internals info html || die "Cannot build internal docs"
+ fi
+}
+
+src_test() {
+ ewarn "Unfortunately, it is known that some tests fail eg."
+ ewarn "run-program.impure.lisp. This is an issue of the upstream's"
+ ewarn "development and not of Gentoo's side. Please, before filing"
+ ewarn "any bug(s) search for older submissions. Thank you."
+ time ( cd tests && sh run-tests.sh )
+}
+
+src_install() {
+ # install system-wide initfile
+ dodir /etc/
+ sed 's/^X//' > "${ED}"/etc/sbclrc <<-EOF
+ ;;; The following is required if you want source location functions to
+ ;;; work in SLIME, for example.
+ X
+ (setf (logical-pathname-translations "SYS")
+ X '(("SYS:SRC;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/src/**/*.*")
+ X ("SYS:CONTRIB;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/**/*.*")))
+ X
+ ;;; Setup ASDF2
+ (load "${EPREFIX}/etc/common-lisp/gentoo-init.lisp")
+ EOF
+
+ # Install documentation
+ unset SBCL_HOME
+ INSTALL_ROOT="${ED}/usr" LIB_DIR="${EPREFIX}/usr/$(get_libdir)" DOC_DIR="${ED}/usr/share/doc/${PF}" \
+ sh install.sh || die "install.sh failed"
+
+ # bug #517008
+ pax-mark -mr "${D}"/usr/bin/sbcl
+
+ # rm empty directories lest paludis complain about this
+ find "${ED}" -empty -type d -exec rmdir -v {} +
+
+ if use doc; then
+ dodoc -r doc/internals/sbcl-internals
+
+ doinfo doc/manual/*.info*
+ doinfo doc/internals/sbcl-internals.info
+
+ docinto internals-notes
+ dodoc doc/internals-notes/*
+ else
+ rm -Rv "${ED}/usr/share/doc/${PF}" || die
+ fi
+
+ # install the SBCL source
+ if use source; then
+ ./clean.sh
+ cp -av src "${ED}/usr/$(get_libdir)/sbcl/" || die
+ fi
+
+ # necessary for running newly-saved images
+ echo "SBCL_HOME=${EPREFIX}/usr/$(get_libdir)/${PN}" > "${ENVD}"
+ echo "SBCL_SOURCE_ROOT=${EPREFIX}/usr/$(get_libdir)/${PN}/src" >> "${ENVD}"
+ doenvd "${ENVD}"
+}
diff --git a/dev-lisp/sbcl/sbcl-1.3.21.ebuild b/dev-lisp/sbcl/sbcl-1.3.21.ebuild
new file mode 100644
index 000000000000..c54c4447f9a7
--- /dev/null
+++ b/dev-lisp/sbcl/sbcl-1.3.21.ebuild
@@ -0,0 +1,237 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit multilib eutils flag-o-matic pax-utils
+
+#same order as http://www.sbcl.org/platform-table.html
+BV_X86=1.2.7
+BV_AMD64=1.3.21
+BV_PPC=1.2.7
+BV_SPARC=1.0.28
+BV_ALPHA=1.0.28
+BV_ARM=1.3.12
+BV_ARM64=1.3.16
+BV_PPC_MACOS=1.0.47
+BV_X86_MACOS=1.1.6
+BV_X64_MACOS=1.2.11
+BV_SPARC_SOLARIS=1.0.23
+BV_X86_SOLARIS=1.2.7
+BV_X64_SOLARIS=1.2.7
+
+DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp"
+HOMEPAGE="http://sbcl.sourceforge.net/"
+SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2
+ x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 )
+ amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 )
+ ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 )
+ sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 )
+ alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 )
+ arm? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 )
+ arm64? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM64}-arm64-linux-binary.tar.bz2 )
+ ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-binary.tar.bz2 )
+ x86-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_MACOS}-x86-darwin-binary.tar.bz2 )
+ x64-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 )
+ sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-solaris-binary.tar.bz2 )
+ x86-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_SOLARIS}-x86-solaris-binary.tar.bz2 )
+ x64-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 )"
+
+LICENSE="MIT"
+SLOT="0/${PV}"
+KEYWORDS="amd64 ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="debug doc source +threads +unicode pax_kernel zlib"
+
+CDEPEND=">=dev-lisp/asdf-3.1:="
+DEPEND="${CDEPEND}
+ doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 )
+ pax_kernel? ( sys-apps/elfix )"
+RDEPEND="${CDEPEND}
+ !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )"
+
+# Disable warnings about executable stacks, as this won't be fixed soon by upstream
+QA_EXECSTACK="usr/bin/sbcl"
+
+CONFIG="${S}/customize-target-features.lisp"
+ENVD="${T}/50sbcl"
+
+# Prevent ASDF from using the system libraries
+CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)"
+ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)"
+
+usep() {
+ use ${1} && echo "true" || echo "false"
+}
+
+sbcl_feature() {
+ echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}"
+}
+
+sbcl_apply_features() {
+ sed 's/^X//' > "${CONFIG}" <<-'EOF'
+ (lambda (list)
+ X (flet ((enable (x) (pushnew x list))
+ X (disable (x) (setf list (remove x list))))
+ EOF
+ if use x86 || use amd64; then
+ sbcl_feature "$(usep threads)" ":sb-thread"
+ fi
+ sbcl_feature "true" ":sb-ldb"
+ sbcl_feature "false" ":sb-test"
+ sbcl_feature "$(usep unicode)" ":sb-unicode"
+ sbcl_feature "$(usep zlib)" ":sb-core-compression"
+ sbcl_feature "$(usep debug)" ":sb-xref-for-internals"
+ sed 's/^X//' >> "${CONFIG}" <<-'EOF'
+ X )
+ X list)
+ EOF
+ cat "${CONFIG}"
+}
+
+src_unpack() {
+ unpack ${A}
+ mv sbcl-*-* sbcl-binary || die
+ cd "${S}"
+}
+
+src_prepare() {
+ # bug #468482
+ eapply "${FILESDIR}"/concurrency-test-1.3.15.patch
+ # bugs #486552, #527666, #517004
+ eapply "${FILESDIR}"/${PN}-1.3.19-bsd-sockets-test.patch
+ # bugs #560276, #561018
+ eapply "${FILESDIR}"/sb-posix-test-1.2.15.patch
+
+ eapply "${FILESDIR}"/${PN}-1.2.11-solaris.patch
+ eapply "${FILESDIR}"/${PN}-1.2.13-verbose-build.patch
+
+ eapply_user
+
+ # bugs #526194 and #620532
+ sed -e "s@CFLAGS +=.*\$@CFLAGS = ${CFLAGS} -Wall -Wsign-compare -Wpointer-arith@" \
+ -e "s@LINKFLAGS += -g\$@LINKFLAGS = ${LDFLAGS}@" \
+ -e "s@LINKFLAGS += -no-pie\$@LINKFLAGS = ${LDFLAGS} -no-pie@" \
+ -e "s@LINKFLAGS += -nopie\$@LINKFLAGS = ${LDFLAGS} -nopie@" \
+ -i src/runtime/GNUmakefile || die
+
+ sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \
+ -i make-config.sh || die
+
+ cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die
+
+ use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk
+
+ # Some shells(such as dash) don't have "time" as builtin
+ # and we don't want to DEPEND on sys-process/time
+ sed "s,^time ,," -i make.sh || die
+ sed "s,/lib,/$(get_libdir),g" -i install.sh || die
+ # #define SBCL_HOME ...
+ sed "s,/usr/local/lib,${EPREFIX}/usr/$(get_libdir),g" -i src/runtime/runtime.c || die
+ # change location of /etc/sbclrc ...
+ sed "s,/etc/sbclrc,${EPREFIX}/etc/sbclrc,g" -i src/code/toplevel.lisp || die
+
+ find . -type f -name .cvsignore -delete
+}
+
+src_configure() {
+ # customizing SBCL version as per
+ # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup
+ echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr
+
+ # applying customizations
+ sbcl_apply_features
+}
+
+src_compile() {
+ local bindir="${WORKDIR}"/sbcl-binary
+
+ strip-unsupported-flags ; filter-flags -fomit-frame-pointer
+
+ if use pax_kernel ; then
+ # To disable PaX on hardened systems
+ pax-mark -mr "${bindir}"/src/runtime/sbcl
+
+ # Hack to disable PaX on second GENESIS stage
+ sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \
+ "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime"
+ fi
+
+ # clear the environment to get rid of non-ASCII strings, see bug 174702
+ # set HOME for paludis
+ env - HOME="${T}" PATH="${PATH}" \
+ CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \
+ CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \
+ GNUMAKE=make ./make.sh \
+ "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \
+ || die "make failed"
+
+ # need to set HOME because libpango(used by graphviz) complains about it
+ if use doc; then
+ env - HOME="${T}" PATH="${PATH}" \
+ CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \
+ ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \
+ make -C doc/manual info html || die "Cannot build manual"
+ env - HOME="${T}" PATH="${PATH}" \
+ CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \
+ ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \
+ make -C doc/internals info html || die "Cannot build internal docs"
+ fi
+}
+
+src_test() {
+ ewarn "Unfortunately, it is known that some tests fail eg."
+ ewarn "run-program.impure.lisp. This is an issue of the upstream's"
+ ewarn "development and not of Gentoo's side. Please, before filing"
+ ewarn "any bug(s) search for older submissions. Thank you."
+ time ( cd tests && sh run-tests.sh )
+}
+
+src_install() {
+ # install system-wide initfile
+ dodir /etc/
+ sed 's/^X//' > "${ED}"/etc/sbclrc <<-EOF
+ ;;; The following is required if you want source location functions to
+ ;;; work in SLIME, for example.
+ X
+ (setf (logical-pathname-translations "SYS")
+ X '(("SYS:SRC;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/src/**/*.*")
+ X ("SYS:CONTRIB;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/**/*.*")))
+ X
+ ;;; Setup ASDF2
+ (load "${EPREFIX}/etc/common-lisp/gentoo-init.lisp")
+ EOF
+
+ # Install documentation
+ unset SBCL_HOME
+ INSTALL_ROOT="${ED}/usr" LIB_DIR="${EPREFIX}/usr/$(get_libdir)" DOC_DIR="${ED}/usr/share/doc/${PF}" \
+ sh install.sh || die "install.sh failed"
+
+ # bug #517008
+ pax-mark -mr "${D}"/usr/bin/sbcl
+
+ # rm empty directories lest paludis complain about this
+ find "${ED}" -empty -type d -exec rmdir -v {} +
+
+ if use doc; then
+ dodoc -r doc/internals/sbcl-internals
+
+ doinfo doc/manual/*.info*
+ doinfo doc/internals/sbcl-internals.info
+
+ docinto internals-notes
+ dodoc doc/internals-notes/*
+ else
+ rm -Rv "${ED}/usr/share/doc/${PF}" || die
+ fi
+
+ # install the SBCL source
+ if use source; then
+ ./clean.sh
+ cp -av src "${ED}/usr/$(get_libdir)/sbcl/" || die
+ fi
+
+ # necessary for running newly-saved images
+ echo "SBCL_HOME=${EPREFIX}/usr/$(get_libdir)/${PN}" > "${ENVD}"
+ echo "SBCL_SOURCE_ROOT=${EPREFIX}/usr/$(get_libdir)/${PN}/src" >> "${ENVD}"
+ doenvd "${ENVD}"
+}
diff --git a/dev-lisp/sbcl/sbcl-1.4.7.ebuild b/dev-lisp/sbcl/sbcl-1.4.7.ebuild
new file mode 100644
index 000000000000..4f5351742e1b
--- /dev/null
+++ b/dev-lisp/sbcl/sbcl-1.4.7.ebuild
@@ -0,0 +1,246 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit multilib eutils flag-o-matic pax-utils
+
+#same order as http://www.sbcl.org/platform-table.html
+BV_X86=1.4.3
+BV_AMD64=1.4.7
+BV_PPC=1.2.7
+BV_SPARC=1.0.28
+BV_ALPHA=1.0.28
+BV_ARM=1.3.12
+BV_ARM64=1.4.2
+BV_X86_MACOS=1.1.6
+BV_X64_MACOS=1.2.11
+BV_PPC_MACOS=1.0.47
+BV_X86_SOLARIS=1.2.7
+BV_X64_SOLARIS=1.2.7
+BV_SPARC_SOLARIS=1.0.23
+
+DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp"
+HOMEPAGE="http://sbcl.sourceforge.net/"
+SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2
+ x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 )
+ amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 )
+ ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 )
+ sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 )
+ alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 )
+ arm? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 )
+ arm64? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM64}-arm64-linux-binary.tar.bz2 )
+ x86-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_MACOS}-x86-darwin-binary.tar.bz2 )
+ x64-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 )
+ ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-binary.tar.bz2 )
+ x86-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_SOLARIS}-x86-solaris-binary.tar.bz2 )
+ x64-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 )
+ sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-solaris-binary.tar.bz2 )"
+
+LICENSE="MIT"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="debug doc source +threads +unicode pax_kernel zlib"
+
+CDEPEND=">=dev-lisp/asdf-3.1:="
+DEPEND="${CDEPEND}
+ doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 )
+ pax_kernel? ( sys-apps/elfix )"
+RDEPEND="${CDEPEND}
+ !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )"
+
+# Disable warnings about executable stacks, as this won't be fixed soon by upstream
+QA_EXECSTACK="usr/bin/sbcl"
+
+CONFIG="${S}/customize-target-features.lisp"
+ENVD="${T}/50sbcl"
+
+# Prevent ASDF from using the system libraries
+CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)"
+ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)"
+
+usep() {
+ use ${1} && echo "true" || echo "false"
+}
+
+sbcl_feature() {
+ echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}"
+}
+
+sbcl_apply_features() {
+ sed 's/^X//' > "${CONFIG}" <<-'EOF'
+ (lambda (list)
+ X (flet ((enable (x) (pushnew x list))
+ X (disable (x) (setf list (remove x list))))
+ EOF
+ if use x86 || use amd64; then
+ sbcl_feature "$(usep threads)" ":sb-thread"
+ fi
+ sbcl_feature "true" ":sb-ldb"
+ sbcl_feature "false" ":sb-test"
+ sbcl_feature "$(usep unicode)" ":sb-unicode"
+ sbcl_feature "$(usep zlib)" ":sb-core-compression"
+ sbcl_feature "$(usep debug)" ":sb-xref-for-internals"
+ sed 's/^X//' >> "${CONFIG}" <<-'EOF'
+ X )
+ X list)
+ EOF
+ cat "${CONFIG}"
+}
+
+src_unpack() {
+ unpack ${A}
+ mv sbcl-*-* sbcl-binary || die
+ cd "${S}"
+}
+
+src_prepare() {
+ # bug #468482
+ eapply "${FILESDIR}"/concurrency-test-1.3.15.patch
+ # bugs #486552, #527666, #517004
+ eapply "${FILESDIR}"/${PN}-1.4.0-bsd-sockets-test.patch
+ # bugs #560276, #561018
+ eapply "${FILESDIR}"/sb-posix-test-1.2.15.patch
+
+ eapply "${FILESDIR}"/${PN}-1.2.11-solaris.patch
+ eapply "${FILESDIR}"/${PN}-1.4.0-verbose-build.patch
+
+ eapply_user
+
+ # Make sure the *FLAGS variables are sane.
+ # sbcl needs symbols in resulting binaries, so building with the -s linker flag will fail.
+ strip-unsupported-flags
+ filter-flags -fomit-frame-pointer -Wl,-s
+ filter-ldflags -s
+
+ # original bugs #526194, #620532
+ # this broke no-pie default builds, c.f. bug #632670
+ # Pass CFLAGS down by appending our value, to let users override
+ # the default values.
+ # Keep passing LDFLAGS down via the LINKFLAGS variable.
+ sed -e "s@\(CFLAGS += -g .*\)\$@\1 ${CFLAGS}@" \
+ -e "s@LINKFLAGS += -g\$@LINKFLAGS += ${LDFLAGS}@" \
+ -i src/runtime/GNUmakefile || die
+
+ sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \
+ -i make-config.sh || die
+
+ # Use installed ASDF version
+ cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die
+ # Avoid installation of ASDF info page. See bug #605752
+ sed '/INFOFILES/s/asdf.info//' -i doc/manual/Makefile || die
+
+ use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk
+
+ # Some shells(such as dash) don't have "time" as builtin
+ # and we don't want to DEPEND on sys-process/time
+ sed "s,^time ,," -i make.sh || die
+ sed "s,/lib,/$(get_libdir),g" -i install.sh || die
+ # #define SBCL_HOME ...
+ sed "s,/usr/local/lib,${EPREFIX}/usr/$(get_libdir),g" -i src/runtime/runtime.c || die
+ # change location of /etc/sbclrc ...
+ sed "s,/etc/sbclrc,${EPREFIX}/etc/sbclrc,g" -i src/code/toplevel.lisp || die
+
+ find . -type f -name .cvsignore -delete
+}
+
+src_configure() {
+ # customizing SBCL version as per
+ # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup
+ echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr
+
+ # applying customizations
+ sbcl_apply_features
+}
+
+src_compile() {
+ local bindir="${WORKDIR}"/sbcl-binary
+
+ if use pax_kernel ; then
+ # To disable PaX on hardened systems
+ pax-mark -mr "${bindir}"/src/runtime/sbcl
+
+ # Hack to disable PaX on second GENESIS stage
+ sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \
+ "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime"
+ fi
+
+ # clear the environment to get rid of non-ASCII strings, see bug #174702
+ # set HOME for paludis
+ env - HOME="${T}" PATH="${PATH}" \
+ CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \
+ CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \
+ GNUMAKE=make ./make.sh \
+ "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \
+ || die "make failed"
+
+ # need to set HOME because libpango(used by graphviz) complains about it
+ if use doc; then
+ env - HOME="${T}" PATH="${PATH}" \
+ CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \
+ ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \
+ make -C doc/manual info html || die "Cannot build manual"
+ env - HOME="${T}" PATH="${PATH}" \
+ CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \
+ ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \
+ make -C doc/internals info html || die "Cannot build internal docs"
+ fi
+}
+
+src_test() {
+ ewarn "Unfortunately, it is known that some tests fail eg."
+ ewarn "run-program.impure.lisp. This is an issue of the upstream's"
+ ewarn "development and not of Gentoo's side. Please, before filing"
+ ewarn "any bug(s) search for older submissions. Thank you."
+ time ( cd tests && sh run-tests.sh )
+}
+
+src_install() {
+ # install system-wide initfile
+ dodir /etc/
+ sed 's/^X//' > "${ED}"/etc/sbclrc <<-EOF
+ ;;; The following is required if you want source location functions to
+ ;;; work in SLIME, for example.
+ X
+ (setf (logical-pathname-translations "SYS")
+ X '(("SYS:SRC;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/src/**/*.*")
+ X ("SYS:CONTRIB;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/**/*.*")))
+ X
+ ;;; Setup ASDF2
+ (load "${EPREFIX}/etc/common-lisp/gentoo-init.lisp")
+ EOF
+
+ # Install documentation
+ unset SBCL_HOME
+ INSTALL_ROOT="${ED}/usr" LIB_DIR="${EPREFIX}/usr/$(get_libdir)" DOC_DIR="${ED}/usr/share/doc/${PF}" \
+ sh install.sh || die "install.sh failed"
+
+ # bug #517008
+ pax-mark -mr "${D}"/usr/bin/sbcl
+
+ # rm empty directories lest paludis complain about this
+ find "${ED}" -empty -type d -exec rmdir -v {} +
+
+ if use doc; then
+ dodoc -r doc/internals/sbcl-internals
+
+ doinfo doc/manual/*.info*
+ doinfo doc/internals/sbcl-internals.info
+
+ docinto internals-notes
+ dodoc doc/internals-notes/*
+ else
+ rm -Rv "${ED}/usr/share/doc/${PF}" || die
+ fi
+
+ # install the SBCL source
+ if use source; then
+ ./clean.sh
+ cp -av src "${ED}/usr/$(get_libdir)/sbcl/" || die
+ fi
+
+ # necessary for running newly-saved images
+ echo "SBCL_HOME=${EPREFIX}/usr/$(get_libdir)/${PN}" > "${ENVD}"
+ echo "SBCL_SOURCE_ROOT=${EPREFIX}/usr/$(get_libdir)/${PN}/src" >> "${ENVD}"
+ doenvd "${ENVD}"
+}
diff --git a/dev-lisp/sbcl/sbcl-1.4.8.ebuild b/dev-lisp/sbcl/sbcl-1.4.8.ebuild
new file mode 100644
index 000000000000..f07d8939edfa
--- /dev/null
+++ b/dev-lisp/sbcl/sbcl-1.4.8.ebuild
@@ -0,0 +1,246 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit multilib eutils flag-o-matic pax-utils
+
+#same order as http://www.sbcl.org/platform-table.html
+BV_X86=1.4.3
+BV_AMD64=1.4.8
+BV_PPC=1.2.7
+BV_SPARC=1.0.28
+BV_ALPHA=1.0.28
+BV_ARM=1.3.12
+BV_ARM64=1.4.2
+BV_X86_MACOS=1.1.6
+BV_X64_MACOS=1.2.11
+BV_PPC_MACOS=1.0.47
+BV_X86_SOLARIS=1.2.7
+BV_X64_SOLARIS=1.2.7
+BV_SPARC_SOLARIS=1.0.23
+
+DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp"
+HOMEPAGE="http://sbcl.sourceforge.net/"
+SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2
+ x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 )
+ amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 )
+ ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 )
+ sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 )
+ alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 )
+ arm? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 )
+ arm64? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM64}-arm64-linux-binary.tar.bz2 )
+ x86-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_MACOS}-x86-darwin-binary.tar.bz2 )
+ x64-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 )
+ ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-binary.tar.bz2 )
+ x86-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_SOLARIS}-x86-solaris-binary.tar.bz2 )
+ x64-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 )
+ sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-solaris-binary.tar.bz2 )"
+
+LICENSE="MIT"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="debug doc source +threads +unicode pax_kernel zlib"
+
+CDEPEND=">=dev-lisp/asdf-3.1:="
+DEPEND="${CDEPEND}
+ doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 )
+ pax_kernel? ( sys-apps/elfix )"
+RDEPEND="${CDEPEND}
+ !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )"
+
+# Disable warnings about executable stacks, as this won't be fixed soon by upstream
+QA_EXECSTACK="usr/bin/sbcl"
+
+CONFIG="${S}/customize-target-features.lisp"
+ENVD="${T}/50sbcl"
+
+# Prevent ASDF from using the system libraries
+CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)"
+ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)"
+
+usep() {
+ use ${1} && echo "true" || echo "false"
+}
+
+sbcl_feature() {
+ echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}"
+}
+
+sbcl_apply_features() {
+ sed 's/^X//' > "${CONFIG}" <<-'EOF'
+ (lambda (list)
+ X (flet ((enable (x) (pushnew x list))
+ X (disable (x) (setf list (remove x list))))
+ EOF
+ if use x86 || use amd64; then
+ sbcl_feature "$(usep threads)" ":sb-thread"
+ fi
+ sbcl_feature "true" ":sb-ldb"
+ sbcl_feature "false" ":sb-test"
+ sbcl_feature "$(usep unicode)" ":sb-unicode"
+ sbcl_feature "$(usep zlib)" ":sb-core-compression"
+ sbcl_feature "$(usep debug)" ":sb-xref-for-internals"
+ sed 's/^X//' >> "${CONFIG}" <<-'EOF'
+ X )
+ X list)
+ EOF
+ cat "${CONFIG}"
+}
+
+src_unpack() {
+ unpack ${A}
+ mv sbcl-*-* sbcl-binary || die
+ cd "${S}"
+}
+
+src_prepare() {
+ # bug #468482
+ eapply "${FILESDIR}"/concurrency-test-1.3.15.patch
+ # bugs #486552, #527666, #517004
+ eapply "${FILESDIR}"/${PN}-1.4.0-bsd-sockets-test.patch
+ # bugs #560276, #561018
+ eapply "${FILESDIR}"/sb-posix-test-1.2.15.patch
+
+ eapply "${FILESDIR}"/${PN}-1.2.11-solaris.patch
+ eapply "${FILESDIR}"/${PN}-1.4.0-verbose-build.patch
+
+ eapply_user
+
+ # Make sure the *FLAGS variables are sane.
+ # sbcl needs symbols in resulting binaries, so building with the -s linker flag will fail.
+ strip-unsupported-flags
+ filter-flags -fomit-frame-pointer -Wl,-s
+ filter-ldflags -s
+
+ # original bugs #526194, #620532
+ # this broke no-pie default builds, c.f. bug #632670
+ # Pass CFLAGS down by appending our value, to let users override
+ # the default values.
+ # Keep passing LDFLAGS down via the LINKFLAGS variable.
+ sed -e "s@\(CFLAGS += -g .*\)\$@\1 ${CFLAGS}@" \
+ -e "s@LINKFLAGS += -g\$@LINKFLAGS += ${LDFLAGS}@" \
+ -i src/runtime/GNUmakefile || die
+
+ sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \
+ -i make-config.sh || die
+
+ # Use installed ASDF version
+ cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die
+ # Avoid installation of ASDF info page. See bug #605752
+ sed '/INFOFILES/s/asdf.info//' -i doc/manual/Makefile || die
+
+ use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk
+
+ # Some shells(such as dash) don't have "time" as builtin
+ # and we don't want to DEPEND on sys-process/time
+ sed "s,^time ,," -i make.sh || die
+ sed "s,/lib,/$(get_libdir),g" -i install.sh || die
+ # #define SBCL_HOME ...
+ sed "s,/usr/local/lib,${EPREFIX}/usr/$(get_libdir),g" -i src/runtime/runtime.c || die
+ # change location of /etc/sbclrc ...
+ sed "s,/etc/sbclrc,${EPREFIX}/etc/sbclrc,g" -i src/code/toplevel.lisp || die
+
+ find . -type f -name .cvsignore -delete
+}
+
+src_configure() {
+ # customizing SBCL version as per
+ # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup
+ echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr
+
+ # applying customizations
+ sbcl_apply_features
+}
+
+src_compile() {
+ local bindir="${WORKDIR}"/sbcl-binary
+
+ if use pax_kernel ; then
+ # To disable PaX on hardened systems
+ pax-mark -mr "${bindir}"/src/runtime/sbcl
+
+ # Hack to disable PaX on second GENESIS stage
+ sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \
+ "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime"
+ fi
+
+ # clear the environment to get rid of non-ASCII strings, see bug #174702
+ # set HOME for paludis
+ env - HOME="${T}" PATH="${PATH}" \
+ CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \
+ CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \
+ GNUMAKE=make ./make.sh \
+ "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \
+ || die "make failed"
+
+ # need to set HOME because libpango(used by graphviz) complains about it
+ if use doc; then
+ env - HOME="${T}" PATH="${PATH}" \
+ CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \
+ ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \
+ make -C doc/manual info html || die "Cannot build manual"
+ env - HOME="${T}" PATH="${PATH}" \
+ CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \
+ ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \
+ make -C doc/internals info html || die "Cannot build internal docs"
+ fi
+}
+
+src_test() {
+ ewarn "Unfortunately, it is known that some tests fail eg."
+ ewarn "run-program.impure.lisp. This is an issue of the upstream's"
+ ewarn "development and not of Gentoo's side. Please, before filing"
+ ewarn "any bug(s) search for older submissions. Thank you."
+ time ( cd tests && sh run-tests.sh )
+}
+
+src_install() {
+ # install system-wide initfile
+ dodir /etc/
+ sed 's/^X//' > "${ED}"/etc/sbclrc <<-EOF
+ ;;; The following is required if you want source location functions to
+ ;;; work in SLIME, for example.
+ X
+ (setf (logical-pathname-translations "SYS")
+ X '(("SYS:SRC;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/src/**/*.*")
+ X ("SYS:CONTRIB;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/**/*.*")))
+ X
+ ;;; Setup ASDF2
+ (load "${EPREFIX}/etc/common-lisp/gentoo-init.lisp")
+ EOF
+
+ # Install documentation
+ unset SBCL_HOME
+ INSTALL_ROOT="${ED}/usr" LIB_DIR="${EPREFIX}/usr/$(get_libdir)" DOC_DIR="${ED}/usr/share/doc/${PF}" \
+ sh install.sh || die "install.sh failed"
+
+ # bug #517008
+ pax-mark -mr "${D}"/usr/bin/sbcl
+
+ # rm empty directories lest paludis complain about this
+ find "${ED}" -empty -type d -exec rmdir -v {} +
+
+ if use doc; then
+ dodoc -r doc/internals/sbcl-internals
+
+ doinfo doc/manual/*.info*
+ doinfo doc/internals/sbcl-internals.info
+
+ docinto internals-notes
+ dodoc doc/internals-notes/*
+ else
+ rm -Rv "${ED}/usr/share/doc/${PF}" || die
+ fi
+
+ # install the SBCL source
+ if use source; then
+ ./clean.sh
+ cp -av src "${ED}/usr/$(get_libdir)/sbcl/" || die
+ fi
+
+ # necessary for running newly-saved images
+ echo "SBCL_HOME=${EPREFIX}/usr/$(get_libdir)/${PN}" > "${ENVD}"
+ echo "SBCL_SOURCE_ROOT=${EPREFIX}/usr/$(get_libdir)/${PN}/src" >> "${ENVD}"
+ doenvd "${ENVD}"
+}
diff --git a/dev-lisp/sbcl/sbcl-1.4.9.ebuild b/dev-lisp/sbcl/sbcl-1.4.9.ebuild
new file mode 100644
index 000000000000..f07d8939edfa
--- /dev/null
+++ b/dev-lisp/sbcl/sbcl-1.4.9.ebuild
@@ -0,0 +1,246 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit multilib eutils flag-o-matic pax-utils
+
+#same order as http://www.sbcl.org/platform-table.html
+BV_X86=1.4.3
+BV_AMD64=1.4.8
+BV_PPC=1.2.7
+BV_SPARC=1.0.28
+BV_ALPHA=1.0.28
+BV_ARM=1.3.12
+BV_ARM64=1.4.2
+BV_X86_MACOS=1.1.6
+BV_X64_MACOS=1.2.11
+BV_PPC_MACOS=1.0.47
+BV_X86_SOLARIS=1.2.7
+BV_X64_SOLARIS=1.2.7
+BV_SPARC_SOLARIS=1.0.23
+
+DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp"
+HOMEPAGE="http://sbcl.sourceforge.net/"
+SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2
+ x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 )
+ amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 )
+ ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 )
+ sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 )
+ alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 )
+ arm? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 )
+ arm64? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM64}-arm64-linux-binary.tar.bz2 )
+ x86-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_MACOS}-x86-darwin-binary.tar.bz2 )
+ x64-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 )
+ ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-binary.tar.bz2 )
+ x86-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_SOLARIS}-x86-solaris-binary.tar.bz2 )
+ x64-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 )
+ sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-solaris-binary.tar.bz2 )"
+
+LICENSE="MIT"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="debug doc source +threads +unicode pax_kernel zlib"
+
+CDEPEND=">=dev-lisp/asdf-3.1:="
+DEPEND="${CDEPEND}
+ doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 )
+ pax_kernel? ( sys-apps/elfix )"
+RDEPEND="${CDEPEND}
+ !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )"
+
+# Disable warnings about executable stacks, as this won't be fixed soon by upstream
+QA_EXECSTACK="usr/bin/sbcl"
+
+CONFIG="${S}/customize-target-features.lisp"
+ENVD="${T}/50sbcl"
+
+# Prevent ASDF from using the system libraries
+CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)"
+ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)"
+
+usep() {
+ use ${1} && echo "true" || echo "false"
+}
+
+sbcl_feature() {
+ echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}"
+}
+
+sbcl_apply_features() {
+ sed 's/^X//' > "${CONFIG}" <<-'EOF'
+ (lambda (list)
+ X (flet ((enable (x) (pushnew x list))
+ X (disable (x) (setf list (remove x list))))
+ EOF
+ if use x86 || use amd64; then
+ sbcl_feature "$(usep threads)" ":sb-thread"
+ fi
+ sbcl_feature "true" ":sb-ldb"
+ sbcl_feature "false" ":sb-test"
+ sbcl_feature "$(usep unicode)" ":sb-unicode"
+ sbcl_feature "$(usep zlib)" ":sb-core-compression"
+ sbcl_feature "$(usep debug)" ":sb-xref-for-internals"
+ sed 's/^X//' >> "${CONFIG}" <<-'EOF'
+ X )
+ X list)
+ EOF
+ cat "${CONFIG}"
+}
+
+src_unpack() {
+ unpack ${A}
+ mv sbcl-*-* sbcl-binary || die
+ cd "${S}"
+}
+
+src_prepare() {
+ # bug #468482
+ eapply "${FILESDIR}"/concurrency-test-1.3.15.patch
+ # bugs #486552, #527666, #517004
+ eapply "${FILESDIR}"/${PN}-1.4.0-bsd-sockets-test.patch
+ # bugs #560276, #561018
+ eapply "${FILESDIR}"/sb-posix-test-1.2.15.patch
+
+ eapply "${FILESDIR}"/${PN}-1.2.11-solaris.patch
+ eapply "${FILESDIR}"/${PN}-1.4.0-verbose-build.patch
+
+ eapply_user
+
+ # Make sure the *FLAGS variables are sane.
+ # sbcl needs symbols in resulting binaries, so building with the -s linker flag will fail.
+ strip-unsupported-flags
+ filter-flags -fomit-frame-pointer -Wl,-s
+ filter-ldflags -s
+
+ # original bugs #526194, #620532
+ # this broke no-pie default builds, c.f. bug #632670
+ # Pass CFLAGS down by appending our value, to let users override
+ # the default values.
+ # Keep passing LDFLAGS down via the LINKFLAGS variable.
+ sed -e "s@\(CFLAGS += -g .*\)\$@\1 ${CFLAGS}@" \
+ -e "s@LINKFLAGS += -g\$@LINKFLAGS += ${LDFLAGS}@" \
+ -i src/runtime/GNUmakefile || die
+
+ sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \
+ -i make-config.sh || die
+
+ # Use installed ASDF version
+ cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die
+ # Avoid installation of ASDF info page. See bug #605752
+ sed '/INFOFILES/s/asdf.info//' -i doc/manual/Makefile || die
+
+ use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk
+
+ # Some shells(such as dash) don't have "time" as builtin
+ # and we don't want to DEPEND on sys-process/time
+ sed "s,^time ,," -i make.sh || die
+ sed "s,/lib,/$(get_libdir),g" -i install.sh || die
+ # #define SBCL_HOME ...
+ sed "s,/usr/local/lib,${EPREFIX}/usr/$(get_libdir),g" -i src/runtime/runtime.c || die
+ # change location of /etc/sbclrc ...
+ sed "s,/etc/sbclrc,${EPREFIX}/etc/sbclrc,g" -i src/code/toplevel.lisp || die
+
+ find . -type f -name .cvsignore -delete
+}
+
+src_configure() {
+ # customizing SBCL version as per
+ # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup
+ echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr
+
+ # applying customizations
+ sbcl_apply_features
+}
+
+src_compile() {
+ local bindir="${WORKDIR}"/sbcl-binary
+
+ if use pax_kernel ; then
+ # To disable PaX on hardened systems
+ pax-mark -mr "${bindir}"/src/runtime/sbcl
+
+ # Hack to disable PaX on second GENESIS stage
+ sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \
+ "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime"
+ fi
+
+ # clear the environment to get rid of non-ASCII strings, see bug #174702
+ # set HOME for paludis
+ env - HOME="${T}" PATH="${PATH}" \
+ CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \
+ CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \
+ GNUMAKE=make ./make.sh \
+ "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \
+ || die "make failed"
+
+ # need to set HOME because libpango(used by graphviz) complains about it
+ if use doc; then
+ env - HOME="${T}" PATH="${PATH}" \
+ CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \
+ ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \
+ make -C doc/manual info html || die "Cannot build manual"
+ env - HOME="${T}" PATH="${PATH}" \
+ CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \
+ ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \
+ make -C doc/internals info html || die "Cannot build internal docs"
+ fi
+}
+
+src_test() {
+ ewarn "Unfortunately, it is known that some tests fail eg."
+ ewarn "run-program.impure.lisp. This is an issue of the upstream's"
+ ewarn "development and not of Gentoo's side. Please, before filing"
+ ewarn "any bug(s) search for older submissions. Thank you."
+ time ( cd tests && sh run-tests.sh )
+}
+
+src_install() {
+ # install system-wide initfile
+ dodir /etc/
+ sed 's/^X//' > "${ED}"/etc/sbclrc <<-EOF
+ ;;; The following is required if you want source location functions to
+ ;;; work in SLIME, for example.
+ X
+ (setf (logical-pathname-translations "SYS")
+ X '(("SYS:SRC;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/src/**/*.*")
+ X ("SYS:CONTRIB;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/**/*.*")))
+ X
+ ;;; Setup ASDF2
+ (load "${EPREFIX}/etc/common-lisp/gentoo-init.lisp")
+ EOF
+
+ # Install documentation
+ unset SBCL_HOME
+ INSTALL_ROOT="${ED}/usr" LIB_DIR="${EPREFIX}/usr/$(get_libdir)" DOC_DIR="${ED}/usr/share/doc/${PF}" \
+ sh install.sh || die "install.sh failed"
+
+ # bug #517008
+ pax-mark -mr "${D}"/usr/bin/sbcl
+
+ # rm empty directories lest paludis complain about this
+ find "${ED}" -empty -type d -exec rmdir -v {} +
+
+ if use doc; then
+ dodoc -r doc/internals/sbcl-internals
+
+ doinfo doc/manual/*.info*
+ doinfo doc/internals/sbcl-internals.info
+
+ docinto internals-notes
+ dodoc doc/internals-notes/*
+ else
+ rm -Rv "${ED}/usr/share/doc/${PF}" || die
+ fi
+
+ # install the SBCL source
+ if use source; then
+ ./clean.sh
+ cp -av src "${ED}/usr/$(get_libdir)/sbcl/" || die
+ fi
+
+ # necessary for running newly-saved images
+ echo "SBCL_HOME=${EPREFIX}/usr/$(get_libdir)/${PN}" > "${ENVD}"
+ echo "SBCL_SOURCE_ROOT=${EPREFIX}/usr/$(get_libdir)/${PN}/src" >> "${ENVD}"
+ doenvd "${ENVD}"
+}
diff --git a/dev-lisp/trivial-gray-streams-20170830 b/dev-lisp/trivial-gray-streams-20170830
deleted file mode 100644
index 1706c8ce3407..000000000000
--- a/dev-lisp/trivial-gray-streams-20170830
+++ /dev/null
@@ -1,12 +0,0 @@
-DEFINED_PHASES=compile install
-DESCRIPTION=A thin compatibility layer between Gray Stream Common Lisp implementations
-EAPI=6
-HOMEPAGE=https://common-lisp.net/project/trivial-gray-streams/
-KEYWORDS=amd64 ~ppc ~sparc x86
-LICENSE=MIT
-PDEPEND=virtual/commonlisp
-RDEPEND=!dev-lisp/cl-trivial-gray-streams
-SLOT=0
-SRC_URI=mirror://gentoo/trivial-gray-streams-20170830.tar.bz2
-_eclasses_=common-lisp-3 3f23602a5efddf587c5205de7b6de7f8 desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=cd1fbc470a518475fefcb05e0e24c245
diff --git a/dev-lisp/trivial-gray-streams-99999999 b/dev-lisp/trivial-gray-streams-99999999
deleted file mode 100644
index 835fdebe53f3..000000000000
--- a/dev-lisp/trivial-gray-streams-99999999
+++ /dev/null
@@ -1,11 +0,0 @@
-DEFINED_PHASES=compile install unpack
-DEPEND=>=dev-vcs/git-1.8.2.1[curl]
-DESCRIPTION=A thin compatibility layer between Gray Stream Common Lisp implementations
-EAPI=6
-HOMEPAGE=https://common-lisp.net/project/trivial-gray-streams/
-LICENSE=MIT
-PDEPEND=virtual/commonlisp
-RDEPEND=!dev-lisp/cl-trivial-gray-streams
-SLOT=0
-_eclasses_=common-lisp-3 3f23602a5efddf587c5205de7b6de7f8 desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc git-r3 8f6de46b0aa318aea0e8cac62ece098b ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=c88a58dba393a1c9c601ff872346cbc8
diff --git a/dev-lisp/trivial-gray-streams/Manifest b/dev-lisp/trivial-gray-streams/Manifest
new file mode 100644
index 000000000000..d9fd9f319bd2
--- /dev/null
+++ b/dev-lisp/trivial-gray-streams/Manifest
@@ -0,0 +1,4 @@
+DIST trivial-gray-streams-20170830.tar.bz2 7520 BLAKE2B 2080b9ee30249c61c21f88663a247323afe2854c6444467d68fbdc42df9b8868cc49c305ab319ca88cf37ee8b0d423681c01174bb2a26d373a0c9427f2ad8e4e SHA512 4fbcfff5f2875daaf9c9bb286e2f753fccbb9840bb3c3593b9755204475aaf34241c1ffc2c93b5bf2c3428400e91082b01f15812eb51251afcabe9a57d5df3fa
+EBUILD trivial-gray-streams-20170830.ebuild 427 BLAKE2B 4c9d6f0fb8947010f7258d91dca5372b8f57e9a41d224e808949cb4383fc819ae6d8afbb3c3c012f7c62eef9b886698425fd1ca1cb6c297b25fbdf757210d483 SHA512 2dce2e1ae6fe587c3c73e8304c6237a42b4fe7b1c4186c2f1ceaff42c7e2bd395d9f82e2e2dc790cb0d783e0b69b7e136b94fd8c017688996e95cdd572e6bc14
+EBUILD trivial-gray-streams-99999999.ebuild 409 BLAKE2B 1c77e3dc48bcba51a2e3f142aa3c28d93424ee98a1743bae04ef44e3e03c7b078b496285c4c900106526eedd09738926e8db95d0566741cb3d85e6ff52c01fcb SHA512 193bb970f025012af66a890758ee862d0b97d03e558b9b19fd4b4378c51b1811e33f10690e88b7804927f500c31cd332a07eec6b96e13a8e631517f51630860f
+MISC metadata.xml 394 BLAKE2B 534576740809be806e39dd10ef1be5f5b2a3c44a511a4e2f2a92fca120e4c02d1430486ba6c5a0d50ac74e36fc6822275a5b8e063adcc4a3209d56ba217f8a35 SHA512 2aee230ee6fd936e5ba5d50c3e17e47aaa1dffc4cae7cddf2751ff331fe2191ad4c4e899aed7871ce90404c1b3e366282a9fcfaf928fea3dba8c159c64c6560f
diff --git a/dev-lisp/trivial-gray-streams/metadata.xml b/dev-lisp/trivial-gray-streams/metadata.xml
new file mode 100644
index 000000000000..53f2ee0bd5c2
--- /dev/null
+++ b/dev-lisp/trivial-gray-streams/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+ </maintainer>
+ <longdescription lang="en">
+ This system provides an extremely thin compatibility layer for
+ Gray streams
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-lisp/trivial-gray-streams/trivial-gray-streams-20170830.ebuild b/dev-lisp/trivial-gray-streams/trivial-gray-streams-20170830.ebuild
new file mode 100644
index 000000000000..63d5924ffdb0
--- /dev/null
+++ b/dev-lisp/trivial-gray-streams/trivial-gray-streams-20170830.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit common-lisp-3
+
+DESCRIPTION="A thin compatibility layer between Gray Stream Common Lisp implementations"
+HOMEPAGE="https://common-lisp.net/project/trivial-gray-streams/"
+SRC_URI="mirror://gentoo/${P}.tar.bz2"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~sparc x86"
+IUSE=""
+
+RDEPEND="!dev-lisp/cl-${PN}"
diff --git a/dev-lisp/trivial-gray-streams/trivial-gray-streams-99999999.ebuild b/dev-lisp/trivial-gray-streams/trivial-gray-streams-99999999.ebuild
new file mode 100644
index 000000000000..9fa802eff228
--- /dev/null
+++ b/dev-lisp/trivial-gray-streams/trivial-gray-streams-99999999.ebuild
@@ -0,0 +1,16 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit common-lisp-3 git-r3
+
+DESCRIPTION="A thin compatibility layer between Gray Stream Common Lisp implementations"
+HOMEPAGE="https://common-lisp.net/project/trivial-gray-streams/"
+EGIT_REPO_URI="https://github.com/${PN}/${PN}"
+
+LICENSE="MIT"
+SLOT="0"
+IUSE=""
+
+RDEPEND="!dev-lisp/cl-${PN}"
diff --git a/dev-lisp/uiop-3.1.5 b/dev-lisp/uiop-3.1.5
deleted file mode 100644
index 68be6d3a4d39..000000000000
--- a/dev-lisp/uiop-3.1.5
+++ /dev/null
@@ -1,11 +0,0 @@
-DEFINED_PHASES=install
-DESCRIPTION=UIOP is a portability layer spun off ASDF3
-EAPI=5
-HOMEPAGE=http://common-lisp.net/project/asdf/
-KEYWORDS=alpha amd64 ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris
-LICENSE=MIT
-RDEPEND=~dev-lisp/asdf-3.1.5
-SLOT=0
-SRC_URI=http://common-lisp.net/project/asdf/archives/asdf-3.1.5.tar.gz
-_eclasses_=desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=c4ea340f61dbd2b75c09a2e9c1f9426d
diff --git a/dev-lisp/uiop-3.3.1 b/dev-lisp/uiop-3.3.1
deleted file mode 100644
index 4787cee8fdd2..000000000000
--- a/dev-lisp/uiop-3.3.1
+++ /dev/null
@@ -1,12 +0,0 @@
-DEFINED_PHASES=compile install
-DESCRIPTION=UIOP is a portability layer spun off ASDF3
-EAPI=6
-HOMEPAGE=http://common-lisp.net/project/asdf/
-KEYWORDS=~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris
-LICENSE=MIT
-PDEPEND=virtual/commonlisp
-RDEPEND=~dev-lisp/asdf-3.3.1
-SLOT=0
-SRC_URI=http://common-lisp.net/project/asdf/archives/asdf-3.3.1.tar.gz
-_eclasses_=common-lisp-3 3f23602a5efddf587c5205de7b6de7f8 desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=e60ca8c4e219a801504cdef51fc2d8ca
diff --git a/dev-lisp/uiop-3.3.2 b/dev-lisp/uiop-3.3.2
deleted file mode 100644
index 8f1b03ce4bad..000000000000
--- a/dev-lisp/uiop-3.3.2
+++ /dev/null
@@ -1,12 +0,0 @@
-DEFINED_PHASES=compile install
-DESCRIPTION=UIOP is a portability layer spun off ASDF3
-EAPI=6
-HOMEPAGE=http://common-lisp.net/project/asdf/
-KEYWORDS=~alpha ~amd64 ~ia64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris
-LICENSE=MIT
-PDEPEND=virtual/commonlisp
-RDEPEND=~dev-lisp/asdf-3.3.2
-SLOT=0
-SRC_URI=http://common-lisp.net/project/asdf/archives/uiop-3.3.2.tar.gz
-_eclasses_=common-lisp-3 3f23602a5efddf587c5205de7b6de7f8 desktop 1b286a7e7143d8c4ec89cd0d2743a097 epatch 9a5f039771f143195164a15a4faa41a1 estack 43ddf5aaffa7a8d0482df54d25a66a1f eutils 5b8ce72259e08104b337fe28c6de5dbc ltprune 607e058da37aa6dabfa408b7d61da72e multilib 97f470f374f2e94ccab04a2fb21d811e preserve-libs ef207dc62baddfddfd39a164d9797648 toolchain-funcs 1e35303c63cd707f6c3422b4493d5607 vcs-clean 2a0f74a496fa2b1552c4f3398258b7bf
-_md5_=29e75c9152553b19183a8ec63f3e1b1f
diff --git a/dev-lisp/uiop/Manifest b/dev-lisp/uiop/Manifest
new file mode 100644
index 000000000000..787639f544e7
--- /dev/null
+++ b/dev-lisp/uiop/Manifest
@@ -0,0 +1,7 @@
+DIST asdf-3.1.5.tar.gz 400359 BLAKE2B 586a66799a37259694baa673f2849e183fac5fedfe5ff5c92529d47fc0954d40b48bbc095db926b9ea2214b551729c269d0925e4396a52310b72fd5f21842f49 SHA512 937d45eabea0853cd1b2e78e84cf33e7b55065857ffcf49fd87ccd60e21ae09c6dc7ab3649d48b37aeb1beaeeaf6c816e5ce035f0283707105296fb976044516
+DIST asdf-3.3.1.tar.gz 479255 BLAKE2B 5161b79741a52721eaa4da80a61bbe51e924967ecb744a087fdcbd99407abcc42faf39eafe6d30af7dd8af751a80caaf23e93ce42aa5f584123a1e8b528cc613 SHA512 bf5efec4518eb5312ce743c0fbe60c587bebfe26c36c833c163d67bf8631e18eeb293f2185e547f6be10da061a17f024d9f4a3a0808727d7b9b3a7d7a0faf133
+DIST uiop-3.3.2.tar.gz 98207 BLAKE2B a003fabde2ee66244e48caa5ae319fb7ce872dc72cdb8f66c39cfa97a5fc5307de667b48a403432cc3c5cf3d8bfa2e3d330ee91b6251add532ec462d0c4c1d29 SHA512 3af6bfc7d0aa6ee102d3d9cbef3277026d9d7ac4811f6c966b4a9f84ab1e0f128822bddcf8b221288a3c895fc5be377f0ae907e2a08f38e6b09f36e5b4635ecc
+EBUILD uiop-3.1.5.ebuild 884 BLAKE2B b065886d1584fe4619656585052a601bbb66a2a7873ea4f4ed2a3e46186d428551745398bcf8e1efd9e2b3b2045ce34d618b269674370e66a9b82f33bcee9476 SHA512 7c3d2beb186769971aa6b13f6253dd1dff378a997c03f56e4d0a98f2113c8dfddf6997a1a29a59b71cbaf691cbee9041c45422ce75e09ee75bc00e4d0c4b0914
+EBUILD uiop-3.3.1.ebuild 809 BLAKE2B 085a8819b62018aeea1a6b98ea4793fcfd83c2d873cff66f8e82a40ecbef6001f3d08154d68d81a37ae19b1f6da4081a47ea38b4573ef248e534ada50c92cddf SHA512 7ca137a6496e41b7a1c8ffdc99990aab7d54bb20887357f23422f4411d32a50c9eb299e1e86bdbf118063a1bbe182f5d889efbe7b5bae65db8f07a8dbdc9aadc
+EBUILD uiop-3.3.2.ebuild 482 BLAKE2B 68493530c82eeef0110606aa4b0326bf8023c25dad52e78865c3c4a335088f96eac4a25353292d8f4ecf45247270c77ff97ecba566184d8e85796ccb78bd3ba6 SHA512 f07905e014e586ad7367869239bdcffae70ba2cc48c7e1c59251f199ca4c0cc7ed2a2b1ff7bb576c1c09272c4b0ee1dcb61329958459112917fbe09eae1b006d
+MISC metadata.xml 261 BLAKE2B 161dea7ab371cbcbc08b8aac63e402f9fe994c08d55f2291360e900bf73e21f2c2ea67b6fcc3cb000f1cef03d1c41c6d2e5e16dd06d6916ec90d4e54a1ba3dd7 SHA512 fb754c4ed3579db5dbe303197a05647b7cfab0a3fe47fd2140d5f77641be752d10ccf49a9c267406a0f3ba3dcda8831f778b9596d723f65aff10142bfad60d3d
diff --git a/dev-lisp/uiop/metadata.xml b/dev-lisp/uiop/metadata.xml
new file mode 100644
index 000000000000..7ea645c67e72
--- /dev/null
+++ b/dev-lisp/uiop/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+</maintainer>
+</pkgmetadata>
diff --git a/dev-lisp/uiop/uiop-3.1.5.ebuild b/dev-lisp/uiop/uiop-3.1.5.ebuild
new file mode 100644
index 000000000000..597cdb26d9bd
--- /dev/null
+++ b/dev-lisp/uiop/uiop-3.1.5.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit eutils
+
+DESCRIPTION="UIOP is a portability layer spun off ASDF3"
+HOMEPAGE="http://common-lisp.net/project/asdf/"
+SRC_URI="http://common-lisp.net/project/asdf/archives/asdf-${PV}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris"
+IUSE=""
+
+RDEPEND="~dev-lisp/asdf-${PV}"
+
+S="${WORKDIR}/asdf-${PV}/${PN}"
+
+src_install() {
+ insinto /usr/share/common-lisp/source/${PN}
+ doins -r contrib *.lisp ../version.lisp-expr uiop.asd asdf-driver.asd
+ dodir /usr/share/common-lisp/systems
+ dosym /usr/share/common-lisp/source/${PN}/uiop.asd /usr/share/common-lisp/systems/uiop.asd
+ dosym /usr/share/common-lisp/source/${PN}/asdf-driver.asd /usr/share/common-lisp/systems/asdf-driver.asd
+}
diff --git a/dev-lisp/uiop/uiop-3.3.1.ebuild b/dev-lisp/uiop/uiop-3.3.1.ebuild
new file mode 100644
index 000000000000..354fca8768ef
--- /dev/null
+++ b/dev-lisp/uiop/uiop-3.3.1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit common-lisp-3
+
+DESCRIPTION="UIOP is a portability layer spun off ASDF3"
+HOMEPAGE="http://common-lisp.net/project/asdf/"
+SRC_URI="http://common-lisp.net/project/asdf/archives/asdf-${PV}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris"
+IUSE=""
+
+RDEPEND="~dev-lisp/asdf-${PV}"
+
+S="${WORKDIR}/asdf-${PV}/${PN}"
+
+src_install() {
+ insinto "${CLSOURCEROOT}/${PN}"
+ doins -r contrib *.lisp ../version.lisp-expr "${PN}.asd" asdf-driver.asd
+ dodir "${CLSYSTEMROOT}"
+ dosym "${CLSOURCEROOT}/${PN}/${PN}.asd" "${CLSYSTEMROOT}/${PN}.asd"
+ dosym "${CLSOURCEROOT}/${PN}/asdf-driver.asd" "${CLSYSTEMROOT}/asdf-driver.asd"
+}
diff --git a/dev-lisp/uiop/uiop-3.3.2.ebuild b/dev-lisp/uiop/uiop-3.3.2.ebuild
new file mode 100644
index 000000000000..7b084004812d
--- /dev/null
+++ b/dev-lisp/uiop/uiop-3.3.2.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit common-lisp-3
+
+DESCRIPTION="UIOP is a portability layer spun off ASDF3"
+HOMEPAGE="http://common-lisp.net/project/asdf/"
+SRC_URI="http://common-lisp.net/project/asdf/archives/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris"
+IUSE=""
+
+RDEPEND="~dev-lisp/asdf-${PV}"