summaryrefslogtreecommitdiff
path: root/dev-lisp
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lisp')
-rw-r--r--dev-lisp/abcl/Manifest8
-rw-r--r--dev-lisp/abcl/abcl-0.0.9-r1.ebuild78
-rw-r--r--dev-lisp/abcl/abcl-0.20.0-r1.ebuild48
-rw-r--r--dev-lisp/abcl/abcl-0.20.0.ebuild34
-rw-r--r--dev-lisp/abcl/metadata.xml21
-rw-r--r--dev-lisp/asdf-binary-locations/Manifest5
-rw-r--r--dev-lisp/asdf-binary-locations/asdf-binary-locations-20061018.ebuild26
-rw-r--r--dev-lisp/asdf-binary-locations/metadata.xml8
-rw-r--r--dev-lisp/asdf/Manifest24
-rw-r--r--dev-lisp/asdf/asdf-1.89.ebuild40
-rw-r--r--dev-lisp/asdf/asdf-3.0.3.ebuild49
-rw-r--r--dev-lisp/asdf/asdf-3.1.5.ebuild49
-rw-r--r--dev-lisp/asdf/asdf-3.1.6.ebuild49
-rw-r--r--dev-lisp/asdf/asdf-3.1.7.ebuild49
-rw-r--r--dev-lisp/asdf/asdf-3.2.0-r1.ebuild47
-rw-r--r--dev-lisp/asdf/asdf-3.2.0.ebuild46
-rw-r--r--dev-lisp/asdf/asdf-3.2.1-r1.ebuild63
-rw-r--r--dev-lisp/asdf/asdf-3.2.1.ebuild47
-rw-r--r--dev-lisp/asdf/asdf-3.3.0.ebuild54
-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-unicode/Manifest4
-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/Manifest5
-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/Manifest4
-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/Manifest14
-rw-r--r--dev-lisp/clisp/clisp-2.48-r1.ebuild165
-rw-r--r--dev-lisp/clisp/clisp-2.48-r2.ebuild164
-rw-r--r--dev-lisp/clisp/clisp-2.49-r100.ebuild150
-rw-r--r--dev-lisp/clisp/clisp-2.49-r8.ebuild144
-rw-r--r--dev-lisp/clisp/files/clisp-2.48-bits_ipctypes_to_sys_ipc.patch21
-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-readline-7.patch10
-rw-r--r--dev-lisp/clisp/files/clisp-2.49-tinfo.patch15
-rw-r--r--dev-lisp/clisp/metadata.xml31
-rw-r--r--dev-lisp/clozurecl/Manifest13
-rw-r--r--dev-lisp/clozurecl/clozurecl-1.10.ebuild91
-rw-r--r--dev-lisp/clozurecl/clozurecl-1.11-r1.ebuild93
-rw-r--r--dev-lisp/clozurecl/clozurecl-1.11-r2.ebuild100
-rw-r--r--dev-lisp/clozurecl/files/ccl-format.patch128
-rw-r--r--dev-lisp/clozurecl/metadata.xml11
-rw-r--r--dev-lisp/clx/Manifest11
-rw-r--r--dev-lisp/clx/clx-0.7.4-r1.ebuild46
-rw-r--r--dev-lisp/clx/clx-9999.ebuild14
-rw-r--r--dev-lisp/clx/files/gentoo-fix-asd.patch303
-rw-r--r--dev-lisp/clx/files/gentoo-fix-dep-openmcl.patch21
-rw-r--r--dev-lisp/clx/files/gentoo-fix-dynamic-extent-sbcl-1.0.45.patch13
-rw-r--r--dev-lisp/clx/files/gentoo-fix-obsolete-eval-when.patch12
-rw-r--r--dev-lisp/clx/files/gentoo-fix-unused-vars.patch69
-rw-r--r--dev-lisp/clx/metadata.xml24
-rw-r--r--dev-lisp/cmucl/Manifest16
-rw-r--r--dev-lisp/cmucl/cmucl-20e.ebuild97
-rw-r--r--dev-lisp/cmucl/cmucl-21a.ebuild92
-rw-r--r--dev-lisp/cmucl/files/20e-customize-lisp-implementation-version.patch16
-rw-r--r--dev-lisp/cmucl/files/20e-execstack-fixes.patch118
-rw-r--r--dev-lisp/cmucl/files/21a-build.patch22
-rw-r--r--dev-lisp/cmucl/files/21a-customize-lisp-implementation-version.patch16
-rw-r--r--dev-lisp/cmucl/files/21a-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.xml39
-rw-r--r--dev-lisp/common-lisp-controller/Manifest10
-rw-r--r--dev-lisp/common-lisp-controller/common-lisp-controller-4.27.ebuild92
-rw-r--r--dev-lisp/common-lisp-controller/common-lisp-controller-5.13-r1.ebuild96
-rw-r--r--dev-lisp/common-lisp-controller/files/4.27/lisp-config.lisp3
-rw-r--r--dev-lisp/common-lisp-controller/files/5.13/lisp-config.lisp3
-rw-r--r--dev-lisp/common-lisp-controller/files/README.Gentoo27
-rw-r--r--dev-lisp/common-lisp-controller/metadata.xml14
-rw-r--r--dev-lisp/ecls/Manifest23
-rw-r--r--dev-lisp/ecls/ecls-13.5.1-r1.ebuild89
-rw-r--r--dev-lisp/ecls/ecls-15.3.7.ebuild90
-rw-r--r--dev-lisp/ecls/ecls-16.0.0-r1.ebuild91
-rw-r--r--dev-lisp/ecls/ecls-16.0.0.ebuild90
-rw-r--r--dev-lisp/ecls/ecls-16.1.2-r1.ebuild91
-rw-r--r--dev-lisp/ecls/ecls-16.1.2.ebuild90
-rw-r--r--dev-lisp/ecls/ecls-16.1.3.ebuild92
-rw-r--r--dev-lisp/ecls/files/13.5.1-gc74.patch57
-rw-r--r--dev-lisp/ecls/files/13.5.1-headers-gentoo.patch13
-rw-r--r--dev-lisp/ecls/files/15.3.7-headers-gentoo.patch13
-rw-r--r--dev-lisp/ecls/files/16.0.0-headers-gentoo.patch13
-rw-r--r--dev-lisp/ecls/files/16.1.2-headers-gentoo.patch13
-rw-r--r--dev-lisp/ecls/files/16.1.3-build.patch10
-rw-r--r--dev-lisp/ecls/files/16.1.3-headers-gentoo.patch15
-rw-r--r--dev-lisp/ecls/files/README.Gentoo15
-rw-r--r--dev-lisp/ecls/metadata.xml22
-rw-r--r--dev-lisp/flexi-streams/Manifest4
-rw-r--r--dev-lisp/flexi-streams/flexi-streams-1.0.16.ebuild25
-rw-r--r--dev-lisp/flexi-streams/metadata.xml27
-rw-r--r--dev-lisp/gcl/Manifest18
-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.ebuild152
-rw-r--r--dev-lisp/gcl/gcl-2.6.11.ebuild147
-rw-r--r--dev-lisp/gcl/gcl-2.6.12.ebuild147
-rw-r--r--dev-lisp/gcl/metadata.xml17
-rw-r--r--dev-lisp/gentoo-init/Manifest8
-rw-r--r--dev-lisp/gentoo-init/files/gentoo-init-1.lisp11
-rw-r--r--dev-lisp/gentoo-init/files/gentoo-init.lisp7
-rw-r--r--dev-lisp/gentoo-init/files/source-registry.conf5
-rw-r--r--dev-lisp/gentoo-init/gentoo-init-0.1.ebuild23
-rw-r--r--dev-lisp/gentoo-init/gentoo-init-1.0.ebuild22
-rw-r--r--dev-lisp/gentoo-init/metadata.xml8
-rw-r--r--dev-lisp/hyperspec/Manifest5
-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/Manifest75
-rw-r--r--dev-lisp/sbcl/files/bsd-sockets-test-1.2.11.patch350
-rw-r--r--dev-lisp/sbcl/files/bsd-sockets-test-1.3.12.patch346
-rw-r--r--dev-lisp/sbcl/files/bsd-sockets-test.patch22
-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.13-config.patch32
-rw-r--r--dev-lisp/sbcl/files/sbcl-1.3.14-gentoo-fix_nopie_for_hardened_toolchain.patch17
-rw-r--r--dev-lisp/sbcl/files/sbcl-1.3.15-gentoo-fix_nopie_for_hardened_toolchain.patch19
-rw-r--r--dev-lisp/sbcl/files/sbcl-1.3.16-gentoo-fix_install_man.patch12
-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.xml42
-rw-r--r--dev-lisp/sbcl/sbcl-1.3.0.ebuild244
-rw-r--r--dev-lisp/sbcl/sbcl-1.3.11.ebuild242
-rw-r--r--dev-lisp/sbcl/sbcl-1.3.12.ebuild242
-rw-r--r--dev-lisp/sbcl/sbcl-1.3.13.ebuild242
-rw-r--r--dev-lisp/sbcl/sbcl-1.3.14.ebuild236
-rw-r--r--dev-lisp/sbcl/sbcl-1.3.15.ebuild236
-rw-r--r--dev-lisp/sbcl/sbcl-1.3.16.ebuild234
-rw-r--r--dev-lisp/sbcl/sbcl-1.3.17.ebuild234
-rw-r--r--dev-lisp/sbcl/sbcl-1.3.18.ebuild234
-rw-r--r--dev-lisp/sbcl/sbcl-1.3.19.ebuild235
-rw-r--r--dev-lisp/sbcl/sbcl-1.3.20.ebuild237
-rw-r--r--dev-lisp/sbcl/sbcl-1.3.21.ebuild237
-rw-r--r--dev-lisp/sbcl/sbcl-1.4.0.ebuild240
-rw-r--r--dev-lisp/trivial-gray-streams/Manifest5
-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/Manifest17
-rw-r--r--dev-lisp/uiop/metadata.xml8
-rw-r--r--dev-lisp/uiop/uiop-3.0.3.ebuild26
-rw-r--r--dev-lisp/uiop/uiop-3.1.5.ebuild26
-rw-r--r--dev-lisp/uiop/uiop-3.1.6.ebuild26
-rw-r--r--dev-lisp/uiop/uiop-3.1.7.ebuild27
-rw-r--r--dev-lisp/uiop/uiop-3.2.0.ebuild27
-rw-r--r--dev-lisp/uiop/uiop-3.2.1.ebuild27
-rw-r--r--dev-lisp/uiop/uiop-3.3.0.ebuild27
163 files changed, 10435 insertions, 0 deletions
diff --git a/dev-lisp/abcl/Manifest b/dev-lisp/abcl/Manifest
new file mode 100644
index 000000000000..5ea690713d72
--- /dev/null
+++ b/dev-lisp/abcl/Manifest
@@ -0,0 +1,8 @@
+DIST abcl-0.0.9.tar.gz 592410 SHA256 ee634443a4a77b2bb9324fa4ff900b15aea5081042fde039045b535d28a8049b SHA512 d822f099ab73f1f62f14bfa3991b88573587d90a8c31e97933549bd19fabaa4d9337963ba33f6ef59f65c259f374bbabb5263c2c3fda3d99a19a645756f80a1c WHIRLPOOL dc405429363bb5a06cc49ad2368451048c83a2eb481e8e8b3d0e9659754d4fdaf5d1a98ba93f9aff647c0e82dff71c41f3e3d75023ab6b02c6142f7062163e82
+DIST abcl-src-0.20.0.tar.gz 735614 SHA256 050e9f6eac7714a39fadafcf5a98893a7926322505c564b1d355748e47c06b48 SHA512 73b033883149b1083a03d87ed5c41b5b6e790cb02978a82f1b57274e6744b66c7b05c5a708077f354ee46ce0780327dfc728bbd9cd9c4f87bd69b730ead8e81b WHIRLPOOL a160ff7d436354fd66bfb467a57ffe3b41c6c08a6a1d02b775979d5955470eac15512737d32003b8d6c73428c655f1f33750a65f5288ecdf06bbfe21e52e9fe0
+EBUILD abcl-0.0.9-r1.ebuild 2004 SHA256 8f631cc98d5250cdbaa765319e586d13213475d3cd234ebd10b4ed27af6e7227 SHA512 07d39aaa6f35ebcfa454b8a28527bd79a10693fb111afb45683f7ae04b5e8b38d4ab65426b45df3c99fe194f53c528d40a547a91fe689b96d24701e8ecc1527d WHIRLPOOL 5b14649bf6bdd5a3e2fe24d32bf9f81232a44b1ed6aad895b8b8bdb8dace3a00092f551bf0dd6354d276d76b5d8417894c088fc3f131a5bb5724684083242605
+EBUILD abcl-0.20.0-r1.ebuild 1059 SHA256 e0072c45cf2dce37f270d248b44f7cb61ebeb27a7d87de051dc5307622908637 SHA512 c336fb09ad29372dcb344e1c784c3e2b03122f541f38418b3100a5a9f6b34df97c45be230aad81772b4c692447c4148adebbb5ba775af54c83143aba93b44d0c WHIRLPOOL f4fe76a1da97c740f30f8a6f8af6378953a407205b6faac642ce6fe632c0060edf3aaf28fb1e7280f789ce0069f3bc0f0485a6af101c110eeecee1ad0aaadb55
+EBUILD abcl-0.20.0.ebuild 841 SHA256 b84d173124c1b5f10f21c47a32cbd95a48e64c36023961ec3468a75374f0e6c1 SHA512 4d9ec141c654c4bc08fb40028dd1bf3b95eb77a8bbf879a32b47ae7fda9e2b8825f16355c268321280c2fd07d16cdd4f4142b0db85e8fd84dc1769805ecd7870 WHIRLPOOL 1e94372e804247b5ba681b4594e31a4bd8e058aaf2b7565a72576045cb2ac408c3ff60cbe4a71eb9d0c455760d4273e848e92f3fc67992db275b783d9c89b5c8
+MISC ChangeLog 2865 SHA256 68d5eacc31fee06cf931027522fbab8e2a570e662fa49c2fd6046759eb826f32 SHA512 4967aa65855dde45e8d5dd0daa93bbbe9fd4cb8c857c57370305219011f58eeed689f56c77d31466bd5654c3bde01fa17627e5d069373de1b6bd9311df650e2c WHIRLPOOL 7ef0fd7bf588db82d17ec67212e7ec98de97b10da95871e54d82e226e09efd1bc2108cd906181788f9e763566608716c2de365a37658ac3bbcc767e51e0c3fba
+MISC ChangeLog-2015 1647 SHA256 a787f8443c98d63653f866553265c64bb490eb0a3fe976592cbe4bde4ee0d720 SHA512 c6bb35f29660e655ddcf66969548c2df0dec8c6cb2595f425033f4d3f785cb3410ee1b282a5086a869e4f4b770059971ec51b8dd0c079ed638917cf08a783fb3 WHIRLPOOL 3dec715845e89ae256ab74375cb8b1cec1fb2213616f90174d6b4f53b6b587368d74b684a2c7e74bbe1c8bd2835ce46a181121b69de3d20fe60adfc07be6c0d2
+MISC metadata.xml 756 SHA256 6330b42fde76b79fd7a2df8fc80b7459801a13f53f3be915e11029198bc9c23c SHA512 5b04db4f6e680850b17493db2973bff0b260194fc7f4e9252c4250b58bfe7eea1398df2fe703a49106e5c7c8b5c1bb31bd8b18296767b164566b02f6673ab860 WHIRLPOOL 8f1e9e295425ebd6dc78279c0abfb250b930a768744e5c3698161ced8755da52bb730296d582e43c534a6e3532a3d785499db6e76a9b95dee67e08c90aa0ba35
diff --git a/dev-lisp/abcl/abcl-0.0.9-r1.ebuild b/dev-lisp/abcl/abcl-0.0.9-r1.ebuild
new file mode 100644
index 000000000000..6698eaa4a04e
--- /dev/null
+++ b/dev-lisp/abcl/abcl-0.0.9-r1.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+inherit eutils java-pkg-2
+
+DESCRIPTION="ABCL is an implementation of ANSI Common Lisp that runs in a Java VM"
+HOMEPAGE="http://armedbear.org/abcl.html"
+SRC_URI="http://armedbear.org/${P}.tar.gz"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~x86"
+IUSE="jad clisp cmucl"
+
+RDEPEND=">=virtual/jre-1.4
+ jad? ( dev-java/jad-bin )"
+
+DEPEND=">=virtual/jdk-1.4
+ dev-lang/python
+ !cmucl? ( !clisp? ( dev-lisp/sbcl ) )
+ cmucl? ( dev-lisp/cmucl )
+ clisp? ( dev-lisp/clisp )"
+
+src_unpack() {
+ unpack ${A}
+ cat > "${S}/customizations.lisp" <<EOF
+(in-package #:build-abcl)
+(setf
+*javac-options* "-g $(java-pkg_javac-args)"
+*jikes-options* "+D -g $(java-pkg_javac-args)"
+*jdk* "${JAVA_HOME}/"
+*java-compiler* "${JAVAC}"
+*jar* "jar")
+EOF
+ einfo "Building with the following customizations.lisp:"
+ cat "${S}/customizations.lisp"
+ cat >"${S}/build.lisp" <<'EOF'
+(progn (load "build-abcl") (funcall (intern "BUILD-ABCL" "BUILD-ABCL") :clean t :full t) #+sbcl (sb-ext:quit) #+clisp (ext:quit) #+cmu (extensions:quit))
+EOF
+}
+
+getutfvars() {
+python << EOF
+import os
+for key,value in os.environ.iteritems():
+ try:
+ value.encode()
+ except UnicodeDecodeError:
+ print key
+EOF
+}
+
+src_compile() {
+ local lisp_compiler lisp_compiler_args
+ if use clisp; then
+ lisp_compiler="clisp"
+ lisp_compiler_args="-ansi build.lisp"
+ elif use cmucl; then
+ lisp_compiler="lisp"
+ lisp_compiler_args="-noinit -nositeinit -batch -load build.lisp"
+ else
+ lisp_compiler="sbcl"
+ lisp_compiler_args="--sysinit /dev/null --userinit /dev/null --disable-debugger --load build.lisp"
+ fi
+
+ einfo "Filtering non ASCII environment variables"
+ for var in $(getutfvars); do
+ einfo " ${var}"
+ unset ${var}
+ done
+ $lisp_compiler $lisp_compiler_args || die
+}
+
+src_install() {
+ java-pkg_dolauncher ${PN} --java_args "-Xmx256M -Xrs" --main org.armedbear.lisp.Main
+ java-pkg_doso src/org/armedbear/lisp/libabcl.so
+ java-pkg_dojar abcl.jar
+ dodoc README || die
+}
diff --git a/dev-lisp/abcl/abcl-0.20.0-r1.ebuild b/dev-lisp/abcl/abcl-0.20.0-r1.ebuild
new file mode 100644
index 000000000000..b8b725f655fd
--- /dev/null
+++ b/dev-lisp/abcl/abcl-0.20.0-r1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+JAVA_PKG_IUSE="doc"
+
+MY_P="${PN}-src-${PV}"
+
+inherit java-pkg-2 java-ant-2
+
+DESCRIPTION="Common Lisp implementation for the JVM"
+HOMEPAGE="http://common-lisp.net/project/armedbear/"
+SRC_URI="http://common-lisp.net/project/armedbear/releases/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND=">=virtual/jdk-1.6"
+RDEPEND=">=virtual/jre-1.6"
+
+S="${WORKDIR}/${MY_P}"
+
+JAVADOC_FILES="java-${PN}"
+JAVADOC_DIR="javadoc-${PN}"
+
+src_compile() {
+ eant abcl.compile
+ eant abcl.jar
+ if use doc; then
+ find "${S}/src" -type f -name \*.java > "${JAVADOC_FILES}" || die
+ mkdir -p "${JAVADOC_DIR}" || die
+ ejavadoc \
+ -d "${JAVADOC_DIR}" \
+ -docencoding UTF-8 \
+ -charset UTF-8 \
+ -quiet \
+ $(<"${JAVADOC_FILES}") || die
+ fi
+}
+
+src_install() {
+ java-pkg_dojar dist/abcl.jar
+ java-pkg_dolauncher ${PN} --java_args "-server -Xrs" --main org.armedbear.lisp.Main
+ use doc && java-pkg_dojavadoc "${JAVADOC_DIR}"
+ einstalldocs
+}
diff --git a/dev-lisp/abcl/abcl-0.20.0.ebuild b/dev-lisp/abcl/abcl-0.20.0.ebuild
new file mode 100644
index 000000000000..cd9abcd39b0c
--- /dev/null
+++ b/dev-lisp/abcl/abcl-0.20.0.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="2"
+
+inherit 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://common-lisp.net/project/armedbear/releases/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="jad"
+
+DEPEND=">=virtual/jdk-1.5"
+RDEPEND=">=virtual/jre-1.5
+ jad? ( dev-java/jad-bin )"
+
+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..47cec66cb9a1
--- /dev/null
+++ b/dev-lisp/abcl/metadata.xml
@@ -0,0 +1,21 @@
+<?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>
+ <use>
+ <flag name="clisp">Build Armed Bear Common Lisp using GNU CLISP</flag>
+ <flag name="cmucl">Build Armed Bear Common Lisp using CMU Common Lisp</flag>
+ <flag name="jad">Enable support for disassembling compiled code using JAD</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-lisp/asdf-binary-locations/Manifest b/dev-lisp/asdf-binary-locations/Manifest
new file mode 100644
index 000000000000..1a0de7df5f1b
--- /dev/null
+++ b/dev-lisp/asdf-binary-locations/Manifest
@@ -0,0 +1,5 @@
+DIST asdf-binary-locations_20061018.tar.gz 7504 SHA256 1ffc3473792cf383e7860551eaacb67fcf5a5421d371be2605ed3258f0f55f45 SHA512 3ce92f85763f65331debabd2fd6e2874e331552fda8a6657630b5696bacdb7282f00a5d98ecf2768087a7502a883582abc468de38a6d7aeef8ae0f03423653e0 WHIRLPOOL a9a7c61a267ad91ec4dec1dee7b5999c1e1b33685d244832595b4e4ee258e68882e0c9662139e7a3fdcbc9cedc568bf62eeb9f8ec94db3e7de4afc570e7827ec
+EBUILD asdf-binary-locations-20061018.ebuild 754 SHA256 69f26c2546728d3912b3cd1cf301dab4c30f9ebafffe31068bb6829c71298786 SHA512 0b125a4a324dd0de6ef1509530e9562eb80d525e494b26b01404e1b8054c614c8e7c9d8ecb66697388f3ffa66c2989c4fb8610a4d46642132046914086d17a86 WHIRLPOOL 9be957f6b65986a217672ab308b38b7551efdd145900ce173365752a8962c6668f71398bf02d5603637113d927962eca275301c219ea5bfd5ab3b6c803f2ee04
+MISC ChangeLog 2475 SHA256 551f751e34ef13f72ac9eb3bf032acc6245beb7ab6b27b95e3f82825fc5357c2 SHA512 1d17a507c88deecda1a2bb36c65fbf991df12d542b786b1f92504f3aa213e2ef39f03c9aaee023262e8ca1bfea5d3e01af235ee5f1665a5ae91a2d03ed7c7932 WHIRLPOOL 0138dd0df3e72a523ef1fb6f82d54b58892b5d933bcfa2c4a3d03806ffbc03436cb80e7dbb26d0365dedb5f0430fe882347f570df30e7a8af281f233a5fe61d9
+MISC ChangeLog-2015 2171 SHA256 3a55c5a0135f86e1c2594502ec7a006bea627760d33ea73822e8fa476ecff2d0 SHA512 d4c828f6f9027606acbdfacd2acf9106ff678039a8b46e0536954a62fb26407bd9b21fe7e45b98e71062b34b7a69f9fb5388673884bfe73d04aa646718e99ea3 WHIRLPOOL f2ced79615b35f9846d802f768ad54910dff017471b43e700c6dc7801bd687784f21fcba41ef560d504b33a7c16f7a2d105229b6f16223fc2f39f78ab34d4dfd
+MISC metadata.xml 261 SHA256 627a8fb846aff40f2f1e29e77040baa5b21fd7663158ab97b84012e0b5e2f742 SHA512 fb754c4ed3579db5dbe303197a05647b7cfab0a3fe47fd2140d5f77641be752d10ccf49a9c267406a0f3ba3dcda8831f778b9596d723f65aff10142bfad60d3d WHIRLPOOL 02fb9a9a64cd705025462ef7601b9b452954c62e41f57422a5a74e6e0c84695aca510635335b0cf35031dfbe75142c0feb06ce1ba4f2794c6230378d772c3ae3
diff --git a/dev-lisp/asdf-binary-locations/asdf-binary-locations-20061018.ebuild b/dev-lisp/asdf-binary-locations/asdf-binary-locations-20061018.ebuild
new file mode 100644
index 000000000000..4459b60001c5
--- /dev/null
+++ b/dev-lisp/asdf-binary-locations/asdf-binary-locations-20061018.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="3"
+inherit common-lisp
+
+DESCRIPTION="ASDF-Extension to specify where Common Lisp binaries (FASL files) should go"
+HOMEPAGE="http://common-lisp.net/project/cl-containers/asdf-binary-locations/"
+SRC_URI="http://common-lisp.net/project/portage-overlay/distfiles/${PN}_${PV}.tar.gz"
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
+IUSE=""
+
+DEPEND="dev-lisp/asdf"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${PN}"
+CLPACKAGE=${PN}
+
+src_install() {
+ insinto $CLSOURCEROOT/$CLPACKAGE/dev
+ doins dev/*.lisp
+ common-lisp-install *.asd
+ common-lisp-system-symlink
+}
diff --git a/dev-lisp/asdf-binary-locations/metadata.xml b/dev-lisp/asdf-binary-locations/metadata.xml
new file mode 100644
index 000000000000..7ea645c67e72
--- /dev/null
+++ b/dev-lisp/asdf-binary-locations/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/asdf/Manifest b/dev-lisp/asdf/Manifest
new file mode 100644
index 000000000000..7bd59e130205
--- /dev/null
+++ b/dev-lisp/asdf/Manifest
@@ -0,0 +1,24 @@
+AUX gentoo-init.lisp 354 SHA256 57503e093da27c94443c620ce0fa173326d8718c1aca0e1641b4a3b3bb5266b6 SHA512 28a24bdc25b7f2304b1c837eb1ca44d5006de6bae1d8e5cfd2bc4bac800dfad9c9c7b3964fd0667c89da95051a42da9054bda3f94202867dbae7b02dfd2b03e4 WHIRLPOOL 18649605d204e78cc1fd1b83b465a141233c82c1a18af16f8b04d275ce0e903e6b22b13283ca719cfefe45fd8698a57a99339d19c8acaf429f0902f054eeea44
+AUX source-registry.conf 138 SHA256 bf0b60f988249c21e5977718dfb28cef405a5968df9dda97db7e8458e05fdfee SHA512 244ce3e7cd9c5f483f99c8e43f2d62d16ea35b25897029b7b9038fe5412752f7d8c7ea11396fd87c218e77c63c5efe2f27c2a11fe49ffb79908f8e7b85bf64c9 WHIRLPOOL ab8f36d3534c46c00fc7db73fd881daf6fef5b85e774eceb52f211c114ebda399f05c54e99e8d6f0104930707f6271485591f06181bdacaba3370678c6f8913e
+DIST asdf-3.0.3.tar.gz 427575 SHA256 05f11d83d33f1080f683701ad0e139011051f9c3190c3b1f22bc63208d8d5f47 SHA512 d9d8d466c7b6aa6beb1c22da4fd10499fa784c39ab138bea7ecb8cdccf769766572ebe91c89db2d5c53e493096248f82a224be95c1fcac8b7beebe1b57f34883 WHIRLPOOL 3503250361350b59d095b743dcc627e9ec1e3ec469066287b80d97924d54ea254fed94f77596ed71b4c9974e4c9b97de8b6a35b3c6529f559d6ba392b695ccf4
+DIST asdf-3.1.5.tar.gz 400359 SHA256 3005aa50470feefc3f786e4e300f275bef3d3662ed1904fd25a22552e4cc59ad SHA512 937d45eabea0853cd1b2e78e84cf33e7b55065857ffcf49fd87ccd60e21ae09c6dc7ab3649d48b37aeb1beaeeaf6c816e5ce035f0283707105296fb976044516 WHIRLPOOL 730e55f875367d190a893b52663bcf35ed5880715ef696d519d35947b82f8a304c94a46294f48c4403c1583895f41a03955510c92848a7290d1d681ab3214e24
+DIST asdf-3.1.6.tar.gz 396066 SHA256 1c15f8db038ace781fa5e6f0cf045b06f6315c715c55d8bcc185238182bb6514 SHA512 3203bef1ce4c2d28306ca1ee214d3d5fd04b3d2caa61f606d0334f100358bfbd9b03d69c95e83734175639a91e76aeac509e949768fc694817631078671a9bc1 WHIRLPOOL 52a4a62f17d54c638a3f3ed4c42804c64e34a86c8df5bf0e118ff478c38c1558adb8751a987b97093ec5adc0f7a6c951f9c563ef7549fc7591fdffd9a7aa1212
+DIST asdf-3.1.7.tgz 402257 SHA256 06b7b081a887183d31d1fc710d4f63a2e30ff6f70ee9792f130017abd62037be SHA512 ebe2ddf702f6200bf98408fb262e9929565c9d29bcd874dd2657a6f84e123b0153a78e457fb425d48a05c427f7c090ab5fd0e6201223eb4b296b3b4cd5b57c26 WHIRLPOOL 6fff0e34909bc3094c6ea5acddd5c35b08a1ae173f3343f3fd4e11f4ba4320d377f014bca4f74218de794d2dd4d461641ba96ba55172427e8fa4c846aa2e20fb
+DIST asdf-3.2.0.tar.gz 438536 SHA256 2a5d406394c8b124e02857ccb0a640363afea8d71c194cfc7ece2ae00a84445b SHA512 2c273aa7b1049c1a8f4da5d195ac7c2cceba238228508847b5afbed8a258ad49e6b346e79b07d0347be0326d3558ed881838fe8461a6d45cc3f2d58380789fcb WHIRLPOOL 346d1acc18e8c48f3e49b5abb2cf0042005bea86be9895e0622963156133d4c5dfa2616e98b8bc15304acce8ce21c06c2bed015fc700c0f1b098126d9d14add0
+DIST asdf-3.2.1.tar.gz 460536 SHA256 58dcb02e0bc890aee4869e93726dc07a14d856f9eb9e3530cb3c79a081e69fa9 SHA512 686881536126eb6ffb7e9db763aec02e1ad7ab4df60cc96d094bc4cebb95453e3d57273cb925471c7ee13e4378ca3c0d697c416b7374ad07148e11d89aee85b0 WHIRLPOOL 7ac3c0b069cb23266b264c912880dbd1a2d92f3f5d6fe4de4e747fdeed10faf65bf8ad846f5bb46992f10febcfa0701bd58604b9ad19fbd808ea43c889ed1ff6
+DIST asdf-3.3.0.tar.gz 498451 SHA256 685bc6252feb2120c6d66aa73a0a0e4217da7bb64b9a913fbd44371a8584179b SHA512 4e8b3434d9eb504af253fa39ac759cceb7ea0c3e2c364875d7259b32a9818b051fb2a3c94c188c7f38e43825e2a18107f1732211534a8b1fbbaa77b6c7f90486 WHIRLPOOL da640ea3f99a6a2bee89ebb004fdca700bffe9f719c45233be9e26952fab0ae2b7461ad1078913e224e2fc63e3e7c9970690510e8631dab7a23f77dd3df005d2
+DIST cl-asdf_1.89-1.diff.gz 395 SHA256 1ad2de4d9bb494f58e69f327d02cd86100967371c93727393b99b3b6fd20d567 SHA512 0d5ac51e69914b58497815971f1736712bd65988944fff5966f854c2dd22d1969d9237c996bfd44a6195d2765db9af07c3055c9bf126ba25059eccdbf8da20b4 WHIRLPOOL 20bc02a86d3645bedf1952ef70193f3b52250dcab5720e21940f0721e2c8be330f8452d4f77c82cc7bb105afb935c3b255e435b5d99ac40965c49621082c0f4b
+DIST cl-asdf_1.89.orig.tar.gz 60134 SHA256 617853e512a0e6bdfa269811c3b9866af3878d40c7e4e8bab4ebf5374bd5a0ec SHA512 eb20877bb6acb6cab5874229290605aaef19d2501d8011473b66d0c9609d0b4d12f2951c39e4a3d2d07a3f0a7862c7e6beb6073514bb8b36189049bb96ba0e9a WHIRLPOOL 23636e9db0d351f88cec352a2c85489f41c5dc1085af75d2a3f4b460c462ff1115a0fb0408dcb21e2dc66d2ac773053c3586067aeaeca19615a2b22fcc3b384b
+EBUILD asdf-1.89.ebuild 954 SHA256 db41eafed151d1910cfc0ad5aa2135399a1123c4b5aa08a93c5b46629a9ae218 SHA512 35cf4118af9e0fe878702bffe87e1cf49abde2e2dac0797a75f70e52c65dc5aafc3c5424acee282b5fedfdbaeede956cfdcd5bb6843fc6c3463350df897ca250 WHIRLPOOL 8d7c9f85fde49448a5527ac8ce34822da27f7aee6b5a4f57e061e9df8f19ca5784409b53a27ab93be31df9812e36976c378fb1ee85a653f022aa917a7566102d
+EBUILD asdf-3.0.3.ebuild 1116 SHA256 1c75a5f2eaf6f384deaa856c8ad575854449a999b9efa52c450edb8ab594b9e2 SHA512 4eb651965855678df5d210bbce8022677de9cfb134ce3e616da11fa7edcb48dbb17987bca4f870e003e85f956cceab6820aa85c36d6692ec1015d13b46fa7201 WHIRLPOOL bf58c698f2be778dffa16b4ee6daef9b9fa938016f354879633b2678b9fe208cb8499a20f1d29dfd1704d3a96fcfc0e4f069646d2c18d2b72b91cdf062e81942
+EBUILD asdf-3.1.5.ebuild 1176 SHA256 6023152342a901ad7a82fffabbd9b90c6d6f2295d4b8c483ccaeed4d43abba21 SHA512 68360c67d66cceee65087e6450a4f18250d10024cac11b7652176f40a2774eebfb6910a06620d41062d9c1b3bd267eee468cfa25e036b61b239ddfcb5f8a9c4f WHIRLPOOL 9825a6122bd979f0554a197f47348e127a476e700a746b9fbce5d2846efe680a8c131198ec914f553747f1dba4063d98a9eba2a8bb97649d7a37c70620b414d5
+EBUILD asdf-3.1.6.ebuild 1180 SHA256 0c18e49f85ece4083bf61709cee42cbe53abd1e04bafde4d77fc31490621e17c SHA512 429009487f7b97cdd7dd9c9868bfb4a200aa0d7a3e21d5f40d574c6f6c03efb27e7da3033d5a9e1198bb3fb0484dfe91e9c01d5cf91bfc0b002319bd9d5bc0c0 WHIRLPOOL ecf8fcaa288702386cdc2d3a8cd347461fd96b2b10eb8e9c79c4059f7d739806665199c0f9bf86e9546b90dbf6ef7fb74b4e91abe8eeb5a5af67d5693f95ad22
+EBUILD asdf-3.1.7.ebuild 1176 SHA256 5ae07f0442fb9f894b2dc0c7fd3dfe0823c82535688bbc659172e0526b75d961 SHA512 ffa2180e39645c19559b2e1bd116a858e8b052ce2f162edd02f7a5f62db92f3ef1d222126569ac10294f9a29aa1711225d4f217e8529748895ba2f1aabf6de7e WHIRLPOOL bd7143c032c9766fe4b9176fdd38945fbf8d2e2a8ef39ee5d38cc54d2bf93cb47b00d5e5998fddac8c720a7f4ba54ce4a042dd41fa6b04a4cfde22a70c33ed93
+EBUILD asdf-3.2.0-r1.ebuild 1217 SHA256 6a330421ea7a4186943f46a1bdff008dd5ac563a94f3e038dc8ae2b4bcbba154 SHA512 324b8406d9955edda267ab00f34d6e97fd490d48184d8c8bc925b63f73737d207b85a7b29770eb02388bdb07a9ef8d77fb7633b8cccc48dea43bcf1b4067725b WHIRLPOOL ade6a3f2c7f86f3700f392de58fd46ca9a049185a9d53d0e19cd8ab8f6c37960485ed24c81dab4f1b5bdd995aaf44633cc0354237f7c03eb6e33c79dbfa06cc6
+EBUILD asdf-3.2.0.ebuild 1180 SHA256 dca374f2f464fb8128062d9a4a7cfd29ca20f805c5a63ba137660db9ee3233e9 SHA512 7b8ba0ddf907f715c34f296f88fe0332cbe69b051304b5a61647411c7c3ca9d0fb8267d18d8301472a4152e10d3e65281cd616f92746dbd888ed379cd0dc1cb8 WHIRLPOOL 2502ab62e7dce45b06f0cc378a464ea1d83b82c68451b940d7e7c4df8e47b53e481f50caafe4dace57784789344b3cf2debc6939299afba3649216f294227dcc
+EBUILD asdf-3.2.1-r1.ebuild 1565 SHA256 6574c1e0c4d265433f4e5ab4252fa5a8f72e61ed57081bbf0818b578a0ffef58 SHA512 3832123b0ae4f5e99aa8603aa3165a61537ebd807ab9755dd7136d1adbe1fe593bfe2988f4e26814171909dd16923b77e1f445a42b5e2739e15cec0869076617 WHIRLPOOL cf1a07dd31d80e4e87d1efa0ff668adf030cfbf52ed8833550e82d2744a336e4547bbc682a742ff94a9a8ebf687a7492c8871c4b6b9b57361d22f1d51c197655
+EBUILD asdf-3.2.1.ebuild 1217 SHA256 6a330421ea7a4186943f46a1bdff008dd5ac563a94f3e038dc8ae2b4bcbba154 SHA512 324b8406d9955edda267ab00f34d6e97fd490d48184d8c8bc925b63f73737d207b85a7b29770eb02388bdb07a9ef8d77fb7633b8cccc48dea43bcf1b4067725b WHIRLPOOL ade6a3f2c7f86f3700f392de58fd46ca9a049185a9d53d0e19cd8ab8f6c37960485ed24c81dab4f1b5bdd995aaf44633cc0354237f7c03eb6e33c79dbfa06cc6
+EBUILD asdf-3.3.0.ebuild 1356 SHA256 f606e58088abdb478bef9ea4dacf7c9fad829eaafe2ef04e4fdd6cf9dd146523 SHA512 00e051520132161f72d3df0ace9d71871416363d81d393c7e78eb6119833a5c84422665fdb0554e336d5b30ee651bdce0d55d1f80b877af567cb992fa3587c89 WHIRLPOOL 1a72e5e8aa3f4aec8c756dae0d02631e5373a0837854b4bd4797b594a5d80eedeb0138ad75e9f8088dc09de3bf57c2abda935526eeb23b886fe6a9b7975af62f
+MISC ChangeLog 3794 SHA256 8dd8375a341d0887e5e5f7c698b8f4483fd9da73927cdbb11a3093a04fac167d SHA512 ea5e83f11849e64b1390f0f33dbe9e5a2ee4266aa90cd94a188bb9cf9a4fc9044b483d4c0879e81bcbe2199027ceed46a2522e7b486484143cc9f6c8fe92a38e WHIRLPOOL ba5b6e9222b3b912c5f86c8ebd572fafdcb92ae82125d05d0c1c78c56620d4aab0824161eb4da711a232a71fc93bcdc17e44732d731471b9e090b59003074291
+MISC ChangeLog-2015 7148 SHA256 7e32561a57899ee6e5bb5f43d6db4d9a208a6aaabf018e233edfa8adb009d83e SHA512 0c0d65ecbd4b82f4c82fa52370cb2d6813eda9ef8ed2f9a956340da7e19e947eb181e5ac4297903b2c4fbfea099970a4c2b8a24446ab50b96ca6e0d626afed8d WHIRLPOOL 73084a5ac71679827d448b98497b6c78026aef4056a649724c2c9a08bfb8c1f6b1fe5608644d6bb76927d4c359db5da36c3c17a68c4ce7dcbe5bd2b04a40ef1f
+MISC metadata.xml 261 SHA256 627a8fb846aff40f2f1e29e77040baa5b21fd7663158ab97b84012e0b5e2f742 SHA512 fb754c4ed3579db5dbe303197a05647b7cfab0a3fe47fd2140d5f77641be752d10ccf49a9c267406a0f3ba3dcda8831f778b9596d723f65aff10142bfad60d3d WHIRLPOOL 02fb9a9a64cd705025462ef7601b9b452954c62e41f57422a5a74e6e0c84695aca510635335b0cf35031dfbe75142c0feb06ce1ba4f2794c6230378d772c3ae3
diff --git a/dev-lisp/asdf/asdf-1.89.ebuild b/dev-lisp/asdf/asdf-1.89.ebuild
new file mode 100644
index 000000000000..63159cfeec99
--- /dev/null
+++ b/dev-lisp/asdf/asdf-1.89.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="3"
+DEB_PV="1"
+MY_PN="cl-${PN}"
+MY_P="${MY_PN}-${PV}"
+
+inherit eutils
+
+DESCRIPTION="ASDF is Another System Definition Facility for Common Lisp"
+HOMEPAGE="http://packages.debian.org/unstable/devel/cl-asdf"
+SRC_URI="mirror://gentoo/${MY_PN}_${PV}.orig.tar.gz
+ mirror://gentoo/${MY_PN}_${PV}-${DEB_PV}.diff.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="alpha amd64 ia64 ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
+IUSE="examples"
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+EPATCH_SOURCE="${WORKDIR}"
+S="${WORKDIR}"/${MY_P}.orig
+
+src_prepare() {
+ epatch ${MY_PN}_${PV}-${DEB_PV}.diff || die
+}
+
+src_install() {
+ insinto /usr/share/common-lisp/source/asdf
+ doins asdf.lisp wild-modules.lisp asdf-install.lisp
+ dodoc README
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}/examples
+ doins test/*
+ fi
+}
diff --git a/dev-lisp/asdf/asdf-3.0.3.ebuild b/dev-lisp/asdf/asdf-3.0.3.ebuild
new file mode 100644
index 000000000000..09f459a15ec2
--- /dev/null
+++ b/dev-lisp/asdf/asdf-3.0.3.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 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="amd64 ppc sparc x86"
+IUSE="doc test"
+
+SLOT="0/${PVR}"
+
+DEPEND="!dev-lisp/cl-${PN}
+ !dev-lisp/asdf-binary-locations
+ !dev-lisp/gentoo-init
+ !<dev-lisp/asdf-2.33-r3
+ doc? ( virtual/texi2dvi )
+ test? ( dev-lisp/sbcl )"
+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 TODO
+ dohtml doc/*.{html,css,ico,png}
+ if use doc; then
+ 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.1.5.ebuild b/dev-lisp/asdf/asdf-3.1.5.ebuild
new file mode 100644
index 000000000000..089db5106c57
--- /dev/null
+++ b/dev-lisp/asdf/asdf-3.1.5.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2017 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="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-binary-locations
+ !dev-lisp/gentoo-init
+ !<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.1.6.ebuild b/dev-lisp/asdf/asdf-3.1.6.ebuild
new file mode 100644
index 000000000000..26c3321cf7d7
--- /dev/null
+++ b/dev-lisp/asdf/asdf-3.1.6.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 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="~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-binary-locations
+ !dev-lisp/gentoo-init
+ !<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.1.7.ebuild b/dev-lisp/asdf/asdf-3.1.7.ebuild
new file mode 100644
index 000000000000..315ee1a70f0a
--- /dev/null
+++ b/dev-lisp/asdf/asdf-3.1.7.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2016 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}.tgz"
+
+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-binary-locations
+ !dev-lisp/gentoo-init
+ !<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.2.0-r1.ebuild b/dev-lisp/asdf/asdf-3.2.0-r1.ebuild
new file mode 100644
index 000000000000..dd43202a8395
--- /dev/null
+++ b/dev-lisp/asdf/asdf-3.2.0-r1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+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="~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-binary-locations
+ !dev-lisp/gentoo-init
+ !<dev-lisp/asdf-2.33-r3
+ doc? ( virtual/texi2dvi )"
+RDEPEND=""
+PDEPEND="~dev-lisp/uiop-${PV}"
+
+install_docs() {
+ # Not installing info file at the moment, see bug #605752
+ (cd doc ; dodoc *.{html,css,ico,png} "${PN}.pdf" ; dodoc -r asdf)
+}
+
+src_compile() {
+ make
+ use doc && make -C doc
+}
+
+src_install() {
+ insinto "/usr/share/common-lisp/source/${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.2.0.ebuild b/dev-lisp/asdf/asdf-3.2.0.ebuild
new file mode 100644
index 000000000000..4de3958b980a
--- /dev/null
+++ b/dev-lisp/asdf/asdf-3.2.0.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+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="~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-binary-locations
+ !dev-lisp/gentoo-init
+ !<dev-lisp/asdf-2.33-r3
+ doc? ( virtual/texi2dvi )"
+RDEPEND=""
+PDEPEND="~dev-lisp/uiop-${PV}"
+
+install_docs() {
+ (cd doc ; dodoc *.{html,css,ico,png} "${PN}.pdf" ; dodoc -r asdf ; doinfo "${PN}.info")
+}
+
+src_compile() {
+ make
+ use doc && make -C doc
+}
+
+src_install() {
+ insinto "/usr/share/common-lisp/source/${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.2.1-r1.ebuild b/dev-lisp/asdf/asdf-3.2.1-r1.ebuild
new file mode 100644
index 000000000000..248ed0f7689e
--- /dev/null
+++ b/dev-lisp/asdf/asdf-3.2.1-r1.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2017 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-binary-locations
+ !dev-lisp/gentoo-init
+ !<dev-lisp/asdf-2.33-r3
+ doc? ( virtual/texi2dvi )"
+RDEPEND=""
+PDEPEND="~dev-lisp/uiop-${PV}"
+
+COMMONLISPS="sbcl clisp clozurecl cmucl ecls"
+
+find-lisp-impl() {
+ for lisp in ${COMMONLISPS} ; do
+ [[ "$(best_version dev-lisp/${lisp})" ]] && echo "${lisp}" && return
+ done
+ die "No CommonLisp implementation found"
+}
+
+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 "$(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.2.1.ebuild b/dev-lisp/asdf/asdf-3.2.1.ebuild
new file mode 100644
index 000000000000..dd43202a8395
--- /dev/null
+++ b/dev-lisp/asdf/asdf-3.2.1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+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="~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-binary-locations
+ !dev-lisp/gentoo-init
+ !<dev-lisp/asdf-2.33-r3
+ doc? ( virtual/texi2dvi )"
+RDEPEND=""
+PDEPEND="~dev-lisp/uiop-${PV}"
+
+install_docs() {
+ # Not installing info file at the moment, see bug #605752
+ (cd doc ; dodoc *.{html,css,ico,png} "${PN}.pdf" ; dodoc -r asdf)
+}
+
+src_compile() {
+ make
+ use doc && make -C doc
+}
+
+src_install() {
+ insinto "/usr/share/common-lisp/source/${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.0.ebuild b/dev-lisp/asdf/asdf-3.3.0.ebuild
new file mode 100644
index 000000000000..c0f4d13930f9
--- /dev/null
+++ b/dev-lisp/asdf/asdf-3.3.0.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2017 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-binary-locations
+ !dev-lisp/gentoo-init
+ !<dev-lisp/asdf-2.33-r3
+ doc? ( virtual/texi2dvi )"
+RDEPEND=""
+PDEPEND="~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-unicode/Manifest b/dev-lisp/cl-ppcre-unicode/Manifest
new file mode 100644
index 000000000000..2d2312fd52ff
--- /dev/null
+++ b/dev-lisp/cl-ppcre-unicode/Manifest
@@ -0,0 +1,4 @@
+DIST cl-ppcre-2.0.11.tar.gz 158418 SHA256 ed8571915216788dc4f6cdb44e49b0e0782e203ed547fe2e58cd5b0e5c57edc4 SHA512 c693c568065c0571e5509599018e58951425a857cec3793312af0d22e248e32233f924eafc8ba67fbedad38cb3f4efa11343b785b073eaac53c31871422488b1 WHIRLPOOL 85e0bda97b1bea3da32fbe9a56dd45eb6926fccb7546ee41528a4c6b7b079a94f0d30c59d98cd0288ea26efe6b004b6856cabaaeb3cb93e441cdebc5d588bdf7
+EBUILD cl-ppcre-unicode-2.0.11.ebuild 639 SHA256 f2d148212b2c73e37757d0f108529460707b5917673c00c2d2bc24005ae105df SHA512 2cd35a3f05ca5e96febb6886abce59229c65abf7b662b32deb8ed47f560606b6e6030a94bb9d19a2ebd43b6bbca1a989b78861dbaa2b82240c9f3162809bbe80 WHIRLPOOL 08d1c6d4ce26ff6d3c896689ef5640c6b3e7b14aa98c825823a9f044a0d1aa0650e9eb6a6acb84324c2d442eee1ccae39df917059b1ceb9a700753fb6d9e29be
+MISC ChangeLog 1275 SHA256 e6d1c9f7ac0fac5248b7b3316970fd1a3fb3f1b47c118df8cb8dbe9e95c2c3e8 SHA512 59c9e26dbc2d9bf0aa218f786ef0d44e91e40cfd921d091934f8e3543664d790f21bc7f5dc6b60158736d7bc8860b6ee38ef461b164e49779c26c2f444a4159f WHIRLPOOL a6b51637a560379bb1ae5d49e7b33fbd132f3c232da46200cab5f69e2198e90eceb50055b0c450e1025e541d2d721a8d0b363cadbac78e4097421eb0b0114013
+MISC metadata.xml 647 SHA256 ac67172a518ab40207ee6eaab0f5dd493972aac7ed18e90df3cccb56d677a680 SHA512 297e93b9bb8205c5729834dcb3f5686001f0f1aeedc1df83701c1350a853104463b37dc902013cd6cbaeddc1b83b1102f29ae55ab7b8f0ad98b6fccecef2ef28 WHIRLPOOL 07501e60ed59d149ef5eecf5d6826feb410ef11cde623b349b40ccbc5a51fe0fbfd057c092234f42d6019f3e5b6592987bdce4f152047e56d9b2babdd9850341
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..3a396216ed35
--- /dev/null
+++ b/dev-lisp/cl-ppcre/Manifest
@@ -0,0 +1,5 @@
+DIST cl-ppcre-2.0.11.tar.gz 158418 SHA256 ed8571915216788dc4f6cdb44e49b0e0782e203ed547fe2e58cd5b0e5c57edc4 SHA512 c693c568065c0571e5509599018e58951425a857cec3793312af0d22e248e32233f924eafc8ba67fbedad38cb3f4efa11343b785b073eaac53c31871422488b1 WHIRLPOOL 85e0bda97b1bea3da32fbe9a56dd45eb6926fccb7546ee41528a4c6b7b079a94f0d30c59d98cd0288ea26efe6b004b6856cabaaeb3cb93e441cdebc5d588bdf7
+EBUILD cl-ppcre-2.0.11.ebuild 714 SHA256 33d48d989f4ed5103ba1f3c0711df2ce194704755baf8d65d61fbea5bc312126 SHA512 989a3f6dbf2468d8bf3dfb8e70a6189acd7fc63cee69bea26a81519d777a96b03d7722a2d9651f7cf82d1933dba1a5a912d0782bb520300dbc78e875caf551cc WHIRLPOOL e70e386d42066b4806579b866bf4fe8826c75d754056149f14a818b5073df03e304b7e21cc9562a1d98bd9549d2ab8ceb327f0f186fde581de772e85466f3b2e
+MISC ChangeLog 3495 SHA256 204cc93ab70e1afe745d8f8f313fa2e3120127b3e2b7e468c6883e7d2afd339c SHA512 71ae6e3fd7b706c66a8e8ef5c22a744e925c48b71d4dd3274b1c05ceb99da04f44bb93c71f05b23d1eaf9bc6e98234019da5c994cae9e62c5abca1f07745fd5b WHIRLPOOL 8212f9314fe77d80ac95ead5016025c43835afca742f9f6ce3a64e12f24a7224065b24fbc081e722dafafb176147a11068a268ed553c36e97fda24e6c3d65f4b
+MISC ChangeLog-2015 7124 SHA256 2da45388c7c646e7d55d728ac722032cd0ea28eff243230e440d16dbc063a0b6 SHA512 9f8073cfa2143bf6b795cc87d55e6bb47704483e1b636a7c6d9e5c154245001bd48b5764f9affff13f26998fb1f464cc448ada1faf6defbf2819ad2e172f6a62 WHIRLPOOL 2fc97f56a0a1319ad17f7207b5205f39c901c28f3f7bce137ef06b9bad9c368107422154b2e7d7bb9095dbf0c205b2e5c09b87dcfbc3231d54101ac665e647b7
+MISC metadata.xml 1092 SHA256 8aa394172868692025ca5b46efabe599f6c965d05fc1d897616e33392ac8b1c7 SHA512 c6c79bed5c6b888bfa98619b152ab3f3f59eae561ea3d94afd00b907c36bae3bcfe814cc299445e787517dafcbceb64a05b6586f07a7681f6dae4680e5329e2d WHIRLPOOL e8ec4e81e34b1724144a0d7d3de65db626f3136ae2de559c27f6921e60041b0336bd141decf595a38e79e0354df490de653f209eb8af3949a04be217d733591d
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..80cabfa13150
--- /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/Manifest b/dev-lisp/cl-unicode/Manifest
new file mode 100644
index 000000000000..847dd260a863
--- /dev/null
+++ b/dev-lisp/cl-unicode/Manifest
@@ -0,0 +1,4 @@
+DIST cl-unicode-0.1.5.tar.gz 485666 SHA256 9e9f1dda5133c3c94e09f638fec01410254c0020b89cc7342416d8ed1d377ee3 SHA512 0b66c0e711f7e37423aa638b43017adff648189a32032702b082dff140b2255847a15572a20f21e6f82a2e8cbd547f7f99bf9176e4fa464aa1d938575d8a2390 WHIRLPOOL e0b973416ff76f4e66b203ea5545c782a4bf59dccbbc7f1d26c6a78870efa31a4fe0b2e7eae17be25f49efc06272201ce9472fbb9e22d5332de8014aea1bc14c
+EBUILD cl-unicode-0.1.5.ebuild 1068 SHA256 620042dc20eafc655eafea3c4dd193a042d58d8c209637e4851d50b23d646203 SHA512 0b314acfac0367f59ec5690e71052a78a400f7e1631845a82152eff78328322b5f065ad227a3c74174385fe1ef4387361a9048dcc0e65bd6bb736daf48bc0a7a WHIRLPOOL 4ac9fae1a80c04b2317b6a333be9aac246ee3d42a9e43b354207b9d8115ce5932451cb52900919929562febbd0be7909ceb9656b26d656bd4bc242012ec6abd9
+MISC ChangeLog 1587 SHA256 bfdaf7c7e841b2a1667088e1ee5b5230d04c2527b38c8333743b8f93458ba592 SHA512 e9ab642c8b104e8994f92231a9c764dc33548ec5fb03cbaeee6468b7f229d6c2eb8b5224aa4dd5eced8903d07311a7e8153c1e26680b1c26bb7430615a0e1707 WHIRLPOOL 704b5d220ac91eb77f9357fb30650ac97fcd3d6f6483e7b86783c189e5a0b3f6a4a054e76882c2735f09d10dd695565dd55525ac0722c014e7aa2e4105fbbc25
+MISC metadata.xml 1362 SHA256 8ae81c164ceb64ca0b8c367ae0e0717d572c491543541b41c3646994aacfc83a SHA512 cde1545cbd82dbe5758fca85783022153f2f19a187128082c0f58f10740af62eae8be0abf800bb9c58a1037868fb6eaeab7ba7e3f52aae5eafd0f8a1a226a0bb WHIRLPOOL d9dd90b0c8cdb3af5591821bb21ff939eaaf5e929e2dc9953b80097ae15aef93b8d0c94b3b5322111163f4a4aeaa70aed1f6ee5b3d77d1f7302adce8cf63efff
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/Manifest b/dev-lisp/clisp/Manifest
new file mode 100644
index 000000000000..dcac5fbd8436
--- /dev/null
+++ b/dev-lisp/clisp/Manifest
@@ -0,0 +1,14 @@
+AUX clisp-2.48-bits_ipctypes_to_sys_ipc.patch 784 SHA256 ab6a22717b5139a24d3c4f810d18222d7fd314efb26aecc69fee2f70bbcc7cbe SHA512 7b48abf1a7c8a0bff7946f310c4a1f8ca5add5a6aef5b69379cb52b17b5ad279fa264a50b1017453a902dc3e7e1e4db09730cef1cb1abc20bf0694d674da33b0 WHIRLPOOL 63342c08d1e48762e53896798ecda18cad507765132570dff7ffb62e4b081e5185895c22f5d84a175e21a9e5685f6280a5607409783f69aeaa8ceee71932e776
+AUX clisp-2.49-bits_ipctypes_to_sys_ipc.patch 784 SHA256 3d52a7ebc7d2ca34654f6be33b2958e609f2a3a8fc0f9681fe4c2739d2358e08 SHA512 163d9e29135268272ae3316709c60a25408158dda6649b79bedd07bd0f2e216d8eef113418230e983ad1115ecd1870f9e6c52ce94f02c09eff484f709ed3cd3f WHIRLPOOL 0946405d3df92760c1011680a6acea7784c7f08c3959091d06fe531651b8b158c803569112bf0583bbb46f7fa3d54154befb875a0c03133729b830cdc5f52e2f
+AUX clisp-2.49-get_hostname.patch 2356 SHA256 1e45bd6aa7e520e12ca9d08c038f23de20cd249da8bfb1ddd0d307897bec7fa0 SHA512 5e9dfc70f017fef08c24ede15c2312a2a54a5c8433a5a952ad4e41113ee0ce01febc631818c4cb506883d9992ef4468c429752e4924b8d1ce00f21b33a209a9b WHIRLPOOL 57b03de1e5ef6828138808561a9118f0af1475b754eaa8c037a22cb2105c16b4c8582d23d7b5f74e63e7e6c766a7e7c76ea4e293138e7513c120e74653d7e179
+AUX clisp-2.49-readline-7.patch 690 SHA256 1ce78bde0384bed2aa36b82718763aefdf1ead1362d0edba98834492ee6b8cdb SHA512 c5c1dd093d19d2d62db29808d418d8fce6233ad226a6b7414223e0cf8e9777231cdd69f4625ac1535a9bbc831b5a3e4fd4baad91a880f3992cd6d98220f887c4 WHIRLPOOL 16e6b88a04d64e4a7fd26dcd9f0739732ecf68510f410b9c845b74da32a1282550448426c6f33ac66dd971515acf19f809a3efd3e781f6e38509ce1df5853453
+AUX clisp-2.49-tinfo.patch 404 SHA256 e39aa722caecffda474d936b508ace270306f1dca6e847583ce8c301b7d5600d SHA512 10f27e205557cb48fe0165bd5ee7e3a33b0dbe403fa2d10df62854c44eb762a44ef005c78e8c23a67f7ed6d3c6317c893c7760f9c2ca72b6b088adae5f03247c WHIRLPOOL 0e580e59877bb97f247cc7ce15a85c0b89d7daa8f43a7bb8ff7774cb6c3e459f278641b09b6680376c73b58dcc6534661e38ea34209cd50fbf1295d75aa9f186
+DIST clisp-2.48.tar.bz2 7885098 SHA256 05b83f560859a23679ccfc073a128a5377fe9489d734431a3dc32ef88f0c3dc2 SHA512 3288b6a2973c924006b14bbed1e8e3e688276a187ac2a6c7851dc7ae699e7832d30e5e7eecdabc76c08c7e8e8ce1b562eb97a44570d3035e558ea2310de2b719 WHIRLPOOL 6be21d4e3e88a1abf4536e1dfc01f99b714b0543494e214647c6d292a5ce355119a415ecfeae32823670bd8ddb918621531b2c8b43edcbbb33313312acfa28ab
+DIST clisp-2.49.tar.bz2 8091011 SHA256 8132ff353afaa70e6b19367a25ae3d5a43627279c25647c220641fed00f8e890 SHA512 eef66fc85199a2c283b616db61bf67ff103eeb0f19fa907da48994dc790b6f5f8d0c74fb3bd723c6b827c0ff3cfd89fa6ba67934fc669ed5d5249044b5140d81 WHIRLPOOL fe14d3cd09ad5768c72470b71068331623239a9d5c7247267be25bc4fc97d91ca6c53dd0a495b3d2a8c45faeaa01060aa135a19fea5f76d2968ffc505f5b6416
+EBUILD clisp-2.48-r1.ebuild 4797 SHA256 30900bce239fdbe966353ff355f55404c88daeaf617d2b538c803f3b19e85e1e SHA512 130ffc47b63c934aa8556ea3e5d5eb8a81300d98bbbff503bdb84a1c7ad1dcbf97b092124bd841bd9b2009df5588aa78c2bda7cea34a461526199957cf44862d WHIRLPOOL e45d1a07ec78c5151ea5fe4a173ce63944dc49134a5fe6fdd7084aa2fd5cc1efdaa1d8e093a315bb2714084d7fdfe58215fab8d77a9c3e8ec201b763d42d36f0
+EBUILD clisp-2.48-r2.ebuild 4726 SHA256 9ec46a4abd0bff90d85348f6593d6fe99817215f7246b6c1011d1639cfddf179 SHA512 afce7666a82e947f48e2eeed5ceba5f4cbe981e8f37d6e35beab4dc973a6077b8eecfebb2d1336f2476b6cfc252f5aaef552354d8dfc153920ac2d3291f76de3 WHIRLPOOL 7e3d38247b1c2d7cb18f4eda5f5a853540e03d8f5a04273b63d4fecc5d8089fb67d50c8ca48243f2ddc7e3d0d9edbe31d823bc20588129effd5b842663634aba
+EBUILD clisp-2.49-r100.ebuild 4495 SHA256 34088fb45660f30dccb1960fdfb577566c8970480cb591a37a96c237a2638d5c SHA512 c022a0b1c704d9d252fdbc741ef6fe6a44ae26b1047c7e8d334aeb171f4bfa836b043432294d508725d429a43bfbca3c413be35b6a38fd02ab8be79506c43dd0 WHIRLPOOL 2320eaa519d90878e2eb23f27d9409778cb08bdee5c528fe917a4ac7e51aad1e2e838cf23282091eab3496d5a008586f42aa0bf9305d3c2420d6ff78dacb48c8
+EBUILD clisp-2.49-r8.ebuild 4394 SHA256 f211b05b2bc503e85fa63f36837b1f377baa44102925ef40b08e9a8372a05b19 SHA512 7548cca817b47bfb9b09812c9564e86f2b5092d1263919d563172555d1371c86bdd0aa7f2f4b3315237a154b911f8c025f62917f434973a608f86728873e97f5 WHIRLPOOL ed75d54fa125ec188a6e7384fd83f70be3e546de62c342609d34e2d37ab0775731c0824ad9bfce0e290c1ec36ef3b7af64dde9dbbdf9ed3722aa87a634af0af5
+MISC ChangeLog 3546 SHA256 a4173a4dbce808c75b45c4c8bc5174500f264612abaa2af2bb1f1e511d4b8bf1 SHA512 200c94a4f5849a27b742feb527b1ab36d26d073f657f56d72251b2f554699ce9bca5d700c056a7f1eecfe98cc144fccfda38637f98c8ae07697989e79a64d5d4 WHIRLPOOL e49c5859b17305001fb5be8bfc315130e910dd0b2c654285de708ed2f8def534b29767ad124b96a63d2c94956d527a1be103c87015ede2820c61d5fe760e9689
+MISC ChangeLog-2015 26951 SHA256 9fee24e373f2de40091b6d14d75fb41151f9ccbfb3d30065e65eaa0b865785a0 SHA512 2b915208866c9e4b96c08dfa8aaab597c0fa71f047a6ee211556d457c25c295ae1655e84613ec059d546c3a5d4ef7ac67b29ea9ac9a9bb344ab301630fd52e0e WHIRLPOOL 7ce9f07c527d2f1d2aa8ec029eced4670582d94e76dd451b4d2da9216f3511b3c39f1f90f41d73dfc5601b967bc901038b47f9e71d7b536e1679b53f77fbbd4e
+MISC metadata.xml 1450 SHA256 fb1beffc987511752c3c92551952b01d80bda8c5290046f8f73b55013278b011 SHA512 08cd4868b9d6f2600b13add32c2fffda8d59be7190779ef4d3bfc64ab10f13c2644b925cef0ca8f3aa06cd5c8473ef399dfaa3c3ac2cae88d627a6ad83e54128 WHIRLPOOL 7898b56232188707a5ce46434eb69351022c7175fc9b678cf932d8766dd1b68d3680d07f33baf37d24e8d060f8d28797837ca728dd1998b526a04e787229d5b3
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..a91495a40b8e
--- /dev/null
+++ b/dev-lisp/clisp/clisp-2.48-r1.ebuild
@@ -0,0 +1,165 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="2"
+
+inherit flag-o-matic eutils toolchain-funcs multilib
+
+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 pari +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 )
+ pari? ( >=sci-mathematics/pari-2.3.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-misc/imake x11-proto/xextproto ) )"
+
+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
+}
+
+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 pari && enable_modules pari
+ 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
+ # stripping them removes common symbols (defined but uninitialised variables)
+ # which are then needed to build modules...
+ export STRIP_MASK="*/usr/$(get_libdir)/clisp-${PV}/*/*"
+ 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.48-r2.ebuild b/dev-lisp/clisp/clisp-2.48-r2.ebuild
new file mode 100644
index 000000000000..95be00d3779b
--- /dev/null
+++ b/dev-lisp/clisp/clisp-2.48-r2.ebuild
@@ -0,0 +1,164 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="2"
+
+inherit flag-o-matic eutils toolchain-funcs multilib
+
+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 pari +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 )
+ pari? ( >=sci-mathematics/pari-2.3.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.7 )"
+
+DEPEND="${RDEPEND}
+ X? ( new-clx? ( x11-misc/imake x11-proto/xextproto ) )"
+
+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:
+# * 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"
+}
+
+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.7
+ fi
+ use dbus && enable_modules dbus
+ use fastcgi && enable_modules fastcgi
+ use gdbm && enable_modules gdbm
+ use gtk && enable_modules gtk2
+ use pari && enable_modules pari
+ 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
+ # stripping them removes common symbols (defined but uninitialised variables)
+ # which are then needed to build modules...
+ export STRIP_MASK="*/usr/$(get_libdir)/clisp-${PV}/*/*"
+ 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-r100.ebuild b/dev-lisp/clisp/clisp-2.49-r100.ebuild
new file mode 100644
index 000000000000..8210edc75f43
--- /dev/null
+++ b/dev-lisp/clisp/clisp-2.49-r100.ebuild
@@ -0,0 +1,150 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit eutils flag-o-matic multilib toolchain-funcs
+
+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/7"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+IUSE="hyperspec X berkdb dbus fastcgi gdbm gtk pari +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:2 >=gnome-base/libglade-2.6 )
+ pari? ( <sci-mathematics/pari-2.5.0 )
+ 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 )"
+# jit? ( >=dev-libs/lightning-1.2 )
+
+DEPEND="${RDEPEND}
+ X? ( x11-misc/imake x11-proto/xextproto )"
+
+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
+ # bug #594552
+ epatch "${FILESDIR}"/${P}-readline-7.patch
+}
+
+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
+
+ if use x86; then
+ append-flags -falign-functions=4
+ 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 pari && enable_modules pari
+ 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
+ # stripping them removes common symbols (defined but uninitialised variables)
+ # which are then needed to build modules...
+ export STRIP_MASK="*/usr/$(get_libdir)/clisp-${PV}/*/*"
+ 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-r8.ebuild b/dev-lisp/clisp/clisp-2.49-r8.ebuild
new file mode 100644
index 000000000000..e19e47f63f6c
--- /dev/null
+++ b/dev-lisp/clisp/clisp-2.49-r8.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit eutils flag-o-matic multilib toolchain-funcs
+
+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 pari +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 )
+ pari? ( <sci-mathematics/pari-2.5.0 )
+ 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-misc/imake x11-proto/xextproto )"
+
+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
+}
+
+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
+ 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 pari && enable_modules pari
+ 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
+ # stripping them removes common symbols (defined but uninitialised variables)
+ # which are then needed to build modules...
+ export STRIP_MASK="*/usr/$(get_libdir)/clisp-${PV}/*/*"
+ 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.48-bits_ipctypes_to_sys_ipc.patch b/dev-lisp/clisp/files/clisp-2.48-bits_ipctypes_to_sys_ipc.patch
new file mode 100644
index 000000000000..4711a86decbe
--- /dev/null
+++ b/dev-lisp/clisp/files/clisp-2.48-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-10 16:15:49.000000000 +0300
++++ b/modules/bindings/glibc/linux.lisp 2013-04-22 11:12:59.148502615 +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-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-readline-7.patch b/dev-lisp/clisp/files/clisp-2.49-readline-7.patch
new file mode 100644
index 000000000000..0be5bd8ccc20
--- /dev/null
+++ b/dev-lisp/clisp/files/clisp-2.49-readline-7.patch
@@ -0,0 +1,10 @@
+diff -r -U2 clisp-2.49.orig/modules/readline/readline.lisp clisp-2.49/modules/readline/readline.lisp
+--- clisp-2.49.orig/modules/readline/readline.lisp 2010-01-07 04:18:03.000000000 +0600
++++ clisp-2.49/modules/readline/readline.lisp 2016-09-29 22:23:53.837631568 +0700
+@@ -425,5 +425,5 @@
+ (def-c-var gnu-readline-p (:name "rl_gnu_readline_p") (:type int)
+ (:documentation "True if this is real GNU readline."))
+-(def-c-var readline-state (:name "rl_readline_state") (:type int)
++(def-c-var readline-state (:name "rl_readline_state") (:type ulong)
+ (:documentation "Flags word encapsulating the current readline state."))
+ (def-c-var editing-mode (:name "rl_editing_mode") (:type int)
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/metadata.xml b/dev-lisp/clisp/metadata.xml
new file mode 100644
index 000000000000..256106c8ea32
--- /dev/null
+++ b/dev-lisp/clisp/metadata.xml
@@ -0,0 +1,31 @@
+<?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="pari">Build CLISP with support for the PARI Computer Algebra System</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/Manifest b/dev-lisp/clozurecl/Manifest
new file mode 100644
index 000000000000..599b53f4b3ca
--- /dev/null
+++ b/dev-lisp/clozurecl/Manifest
@@ -0,0 +1,13 @@
+AUX ccl-format.patch 4281 SHA256 3b1c1d2cec58270c8286da7153e0d9710258aa657238a9e6e55b3f5ff317dde8 SHA512 61bc053d0b7bdfcb9d81fd472e2569bb3d2805f87afff57855ba5a86f745141190b1804067628d2e70ec399585a66289c10fdaf3ffdc81bd2b442b1873c75e1a WHIRLPOOL 046c7ddba6c09c10dddd0cfa96fda15bd21c97de951c0a52c7e41196897de2097f8b785e37b323afaf878de2f324241500687907ebc641ae23b39e9adebc1a03
+DIST ccl-1.10-linuxx86.tar.gz 43796090 SHA256 8ca272656214837b57746b9b84395987bc524329b38a1f42a605f45bf0282657 SHA512 10504e2569a99ba8b6fc4ac745312435c6be646c86ec3916a3750f823f79b3b8ec87fe53ba2410151feeaaed0609e1760ee3d37a77f01d815d1ec13c2394258e WHIRLPOOL 75c7516eba92ad0fc603301e958dc5ba8271b0819ab46af7f61e97edeb405098c4d84a8f8e8ed73ee85462b6ab7c4805bbcbf0a0f354fb62f077cf8cf10bffa4
+DIST ccl-1.11-darwinx86.tar.gz 14270464 SHA256 cf488651315638246ecdb9b7e8d58d78e0ce3222318044a115533e9b536fd94e SHA512 c2d320872c402405d2972898c77401b1c046685af95e75e0646be989fe91d2ff458a29eaa9c1475cb73531f30858c57a075a23bdf95b9bbf269d63399aea9ea1 WHIRLPOOL 9435cc26c854cd1044178c26e1f6836d4edbfd1763dfc6216017d892c999d8d46ca969c94bb3e7f3503cfad2edfc588ae45716c1c9c5fcd283669110633f45db
+DIST ccl-1.11-linuxarm.tar.gz 23044178 SHA256 64a1911fbe516b73964b377df360c3a40695c6155e0730a6590c67f1953a88f4 SHA512 b8034569f0c47106107fee6bd859051052d43c3bcd625a1956eae467ef0225425d5429678e3584136adc929ccfbbe4b800bffa66ea758cd2b734aa3ed55a9dda WHIRLPOOL bdd4e01fbfb1a5e2ac8b1d2ba9b85dd5e01e94ea0b99718e757b1e1c0b1c5dbc6ffd988ca5d7a7ac494b8cdb8ff4ca36260d61a32e39b6314fc4aec3253f9ff7
+DIST ccl-1.11-linuxx86.tar.gz 42482877 SHA256 08e885e8c2bb6e4abd42b8e8e2b60f257c6929eb34b8ec87ca1ecf848fac6d70 SHA512 34008654fd3ceca55a33413a768c398395141e26b9ea09204739ca7e998fdbe94ab92507eda14cf9bcbb9f76e6c3cae3006d7f2c9f48749c66e1f1281febb409 WHIRLPOOL 4a0d1e6495be62f04f48d6923f95468ca1d1c8bafb3c00d4a5b1f705eb70fac52b7d8ed3b248b698707cd89f1eb4a0196b94d869e9bea52ea895fb8fae00bb41
+DIST ccl-1.11-solarisx86.tar.gz 46926817 SHA256 8b983ec3968e987bae6109dbb12d912ea8f050983dcd3eb9e8a5e91f45f683aa SHA512 f35df9e9c7644331a0f6b77e7b0a6f0b2e297f6249ef7a669932ab6685ca426f87423faf01c64cc1f7eb7fcd0dd4fb7c0d70d039bbcadca5d9201b0a348a36be WHIRLPOOL 11e37a489cf51bff1084cacb33c91aa952f3552b2dac0d23c744d5371f45b8bd41fdb39bfdb5fc40bfc2f2467e5aa6224067f8b8a0ecf01ad9eddbc0d3fded7b
+DIST ccl.html 962003 SHA256 10fe7bf2818a2a029dcd53b274124f84713bed32b24170d09134feee470a5c6e SHA512 0cb9ee8f7eb6007e08241a0797519ff3bfc3d3adc0b5ac86e6a2e9e8b2e316fc421bea3b04159decc0a2b37ff7098147e25266946cc3c1ac367b93e4821a8b64 WHIRLPOOL ce93bb1537fd5c03050b5aa7f14414188a3cacf881ff0fcb87c532a43e51bd6139a11dd58c28397e7981ab120ce85e8303762c5f418f995b1c545f436b4d6abe
+EBUILD clozurecl-1.10.ebuild 2603 SHA256 a154a1328c05771a6dd0a7b5d9ae81831688f803e274a6f4cbb3dd6b7434c825 SHA512 3e7ed98b174f93835bea922e0ce58b60027d6fb920d515b5e108933e64fedee1380524ce0abb30daa7468813eeaf75cb9c0fc47bbfb63ae0e311ccf4df0a66ab WHIRLPOOL fc8c20ae1b8bbd8e860e38d1741182a16c440b9391018c532be9a23ea8ee766a36684dc3a9d4dc0e376a35a80aa919abbad5ee67141593ac87a7f020d2d604bf
+EBUILD clozurecl-1.11-r1.ebuild 2701 SHA256 069e1484a5758f6e461c184bc53184351f004fff80f0329525440c04aa870697 SHA512 91cbf704a82d5672fc9cd51f9b08e5df4eb4335b00f944d85cf60b60e8ddff9f4464cbe72f99d5dfebce237fcd2df1431fc78210a59ee33a6e6d36ee84766b2f WHIRLPOOL 858f61bae5e5421105c0d39bf6dc7415fc7ad2b55a30712db43802cbda3cfe53408d0432872b5836a8e195c5b7e05552424c7d9bb3158b1178862304b7e36a33
+EBUILD clozurecl-1.11-r2.ebuild 3291 SHA256 7d4bd970ea2b05118791f47b243675f25742673f5c594b5bc7639f17ac47fb38 SHA512 6d6b62b08c9a81a82a1c75ace997409eaa48644cac79b9eee90e117d22324594b3a0f57d842393085f4ef43969bac6032768a4f0ef20f98fbd10fe523f67b765 WHIRLPOOL 50f12c265d57d2f810c1c33095e9307bfd9aef0f78b9179019550dd0413ab4e284dd2860f320b9adee165117f422978e8a15d040df2bbaab8fa4cc769dadbaaf
+MISC ChangeLog 4443 SHA256 a62600347c4f788a823892454849bc2fed43ed7db3bd36a9e879aeaa05ebeafb SHA512 75ebfbd69d80b756a72568839f4c6c7af191fb2c05b7711841661d06c7f7ee97709037b5d214cdac45ac445b60c9f3c5ffe43bdf6bbc14bebc484fcdf939fd24 WHIRLPOOL c8c8d54d01b9d7553518011a8b47cc2df26e19adf291fe38908c524c28ab295be3aeac0daf1954399e18a1264e33b1c33b9e89a8d56250d03b777f16780b0eb8
+MISC ChangeLog-2015 2253 SHA256 2dba678a269bac26f5381dc6243387186f10b9d39dde484819b6f3fd1f974182 SHA512 661f6c431698b744df57acf2ceb31857160ea0bdbfa8491d980bf38b8f7096ff94d965b315aaf395a70d733f39531743ff42ee7864b55eac35f0a9472cde0174 WHIRLPOOL 6da6c8de3b9cb271dc71037a5949ca18ae1bab5f840020c51135330e2d3b25955789300174b52761a3fdcfc99984dda3eb2f574d699574d8804df640b9a2613c
+MISC metadata.xml 370 SHA256 6424b7e838c0fdba4696a99d70b302b461d946672d171ee62b334f15e7ef91ff SHA512 d961c24b6532aa9e5b8a2727b3ada479743434549a9aaf9ac9c7cdd4d2414a4ba078fd153537afd0daa940eb435fcfb7852bed594ad807f5bbc62a99b8503d12 WHIRLPOOL ec684d9a71539ac2ffe4f1af3bf6f4627fd103e46944c7564be5e805cd479b69dcfc5dd9ba074bae7a5c111c629869bb2ebcf6786d876f60bb6f1d76ea0a9a3b
diff --git a/dev-lisp/clozurecl/clozurecl-1.10.ebuild b/dev-lisp/clozurecl/clozurecl-1.10.ebuild
new file mode 100644
index 000000000000..a9b11fd14aa7
--- /dev/null
+++ b/dev-lisp/clozurecl/clozurecl-1.10.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils multilib toolchain-funcs
+
+MY_PN=ccl
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Common Lisp implementation, derived from Digitool's MCL product"
+HOMEPAGE="http://ccl.clozure.com/"
+SRC_URI="
+ x86? ( ftp://ftp.clozure.com/pub/release/${PV}/${MY_P}-linuxx86.tar.gz )
+ amd64? ( ftp://ftp.clozure.com/pub/release/${PV}/${MY_P}-linuxx86.tar.gz )"
+ # ppc? ( ftp://ftp.clozure.com/pub/release/${PV}/${MY_P}-linuxppc.tar.gz )
+ # ppc64? ( ftp://ftp.clozure.com/pub/release/${PV}/${MY_P}-linuxppc.tar.gz )"
+
+LICENSE="LLGPL-2.1"
+SLOT="0"
+# KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+RDEPEND=">=dev-lisp/asdf-2.33-r3:="
+DEPEND="${RDEPEND}
+ !dev-lisp/openmcl"
+
+S="${WORKDIR}"/${MY_PN}
+
+ENVD="${T}"/50ccl
+
+src_configure() {
+ if 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 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_prepare() {
+ cp /usr/share/common-lisp/source/asdf/build/asdf.lisp tools/ || die
+}
+
+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 install_dir=/usr/$(get_libdir)/${PN}
+
+ exeinto ${install_dir}
+ # install executable
+ doexe ${CCL_RUNTIME}
+ # install core image
+ cp ${CCL_RUNTIME}.image "${D}"/${install_dir} || die
+ # install optional libraries
+ dodir ${install_dir}/tools
+ cp tools/*fsl "${D}"/${install_dir}/tools || die
+
+ # until we figure out which source files are necessary for runtime
+ # optional features and which aren't, we install all sources
+ 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 contrib \
+ "${D}"/${install_dir} || die
+ cp -a ${CCL_HEADERS} "${D}"/${install_dir} || die
+
+ make_wrapper ccl "${install_dir}/${CCL_RUNTIME}"
+
+ echo "CCL_DEFAULT_DIRECTORY=${install_dir}" > "${ENVD}"
+ doenvd "${ENVD}"
+
+ dodoc doc/release-notes.txt
+ dohtml doc/ccl-documentation.html
+ use doc && dohtml -r examples
+}
diff --git a/dev-lisp/clozurecl/clozurecl-1.11-r1.ebuild b/dev-lisp/clozurecl/clozurecl-1.11-r1.ebuild
new file mode 100644
index 000000000000..6c355750f542
--- /dev/null
+++ b/dev-lisp/clozurecl/clozurecl-1.11-r1.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils multilib toolchain-funcs
+
+MY_PN=ccl
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Common Lisp implementation, derived from Digitool's MCL product"
+HOMEPAGE="http://ccl.clozure.com/"
+SRC_URI="
+ x86? ( ftp://ftp.clozure.com/pub/release/${PV}/${MY_P}-linuxx86.tar.gz )
+ amd64? ( ftp://ftp.clozure.com/pub/release/${PV}/${MY_P}-linuxx86.tar.gz )
+ doc? ( http://ccl.clozure.com/docs/ccl.html )"
+ # ppc? ( ftp://ftp.clozure.com/pub/release/${PV}/${MY_P}-linuxppc.tar.gz )
+ # ppc64? ( ftp://ftp.clozure.com/pub/release/${PV}/${MY_P}-linuxppc.tar.gz )"
+
+LICENSE="LLGPL-2.1"
+SLOT="0"
+# KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+RDEPEND=">=dev-lisp/asdf-2.33-r3:="
+DEPEND="${RDEPEND}
+ !dev-lisp/openmcl"
+
+S="${WORKDIR}"/${MY_PN}
+ENVD="${T}"/50ccl
+
+src_configure() {
+ if 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 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_prepare() {
+ default
+ epatch "${FILESDIR}"/ccl-format.patch
+ cp /usr/share/common-lisp/source/asdf/build/asdf.lisp tools/ || die
+}
+
+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 install_dir=/usr/$(get_libdir)/${PN}
+
+ exeinto ${install_dir}
+ # install executable
+ doexe ${CCL_RUNTIME}
+ # install core image
+ cp ${CCL_RUNTIME}.image "${D}"/${install_dir} || die
+ # install optional libraries
+ dodir ${install_dir}/tools
+ cp tools/*fsl "${D}"/${install_dir}/tools || die
+
+ # until we figure out which source files are necessary for runtime
+ # optional features and which aren't, we install all sources
+ 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 contrib \
+ "${D}"/${install_dir} || die
+ cp -a ${CCL_HEADERS} "${D}"/${install_dir} || die
+
+ make_wrapper ccl "${install_dir}/${CCL_RUNTIME}"
+
+ echo "CCL_DEFAULT_DIRECTORY=${install_dir}" > "${ENVD}"
+ doenvd "${ENVD}"
+
+ dodoc doc/release-notes.txt
+ use doc && dodoc "${DISTDIR}"/ccl.html
+ use doc && dodoc -r examples
+}
diff --git a/dev-lisp/clozurecl/clozurecl-1.11-r2.ebuild b/dev-lisp/clozurecl/clozurecl-1.11-r2.ebuild
new file mode 100644
index 000000000000..8c1c342d8706
--- /dev/null
+++ b/dev-lisp/clozurecl/clozurecl-1.11-r2.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2017 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? ( ${HOMEPAGE}/ftp/pub/release/${PV}/${MY_P}-linuxx86.tar.gz )
+ amd64? ( ${HOMEPAGE}/ftp/pub/release/${PV}/${MY_P}-linuxx86.tar.gz )
+ arm? ( ${HOMEPAGE}/ftp/pub/release/${PV}/${MY_P}-linuxarm.tar.gz )
+ x86-macos? ( ${HOMEPAGE}/ftp/pub/release/${PV}/${MY_P}-darwinx86.tar.gz )
+ x64-macos? ( ${HOMEPAGE}/ftp/pub/release/${PV}/${MY_P}-darwinx86.tar.gz )
+ x86-solaris? ( ${HOMEPAGE}/ftp/pub/release/${PV}/${MY_P}-solarisx86.tar.gz )
+ x64-solaris? ( ${HOMEPAGE}/ftp/pub/release/${PV}/${MY_P}-solarisx86.tar.gz )
+ doc? ( ${HOMEPAGE}/docs/ccl.html )"
+
+LICENSE="LLGPL-2.1"
+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_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_prepare() {
+ default
+ eapply "${FILESDIR}/${MY_PN}-format.patch"
+ # https://lists.clozure.com/pipermail/openmcl-devel/2016-September/011399.html
+ sed -i "s/-dynamic/-no_pie/" "${S}/lisp-kernel/darwinx8664/Makefile" || die
+ cp "${EPREFIX}/usr/share/common-lisp/source/asdf/build/asdf.lisp" tools/ || die
+}
+
+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 contrib 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/files/ccl-format.patch b/dev-lisp/clozurecl/files/ccl-format.patch
new file mode 100644
index 000000000000..c2df37c2b870
--- /dev/null
+++ b/dev-lisp/clozurecl/files/ccl-format.patch
@@ -0,0 +1,128 @@
+diff -r -U1 ccl.orig/lib/format.lisp ccl/lib/format.lisp
+--- ccl.orig/lib/format.lisp 2015-11-07 02:10:10.000000000 +0600
++++ ccl/lib/format.lisp 2015-11-20 22:51:51.736191995 +0600
+@@ -1296,5 +1296,2 @@
+
+-
+-
+-
+ ;;; Given a non-negative floating point number, SCALE-EXPONENT returns a
+@@ -1305,41 +1302,74 @@
+
+-
+-(defconstant long-log10-of-2 0.30103d0)
+-
+-#|
+-(defun scale-exponent (x)
+- (if (floatp x )
+- (scale-expt-aux (abs x) 0.0d0 1.0d0 1.0d1 1.0d-1 long-log10-of-2)
+- (report-bad-arg x 'float)))
+-
+-#|this is the slisp code that was in the place of the error call above.
+- before floatp was put in place of shortfloatp.
+- ;(scale-expt-aux x (%sp-l-float 0) (%sp-l-float 1) %long-float-ten
+- ; %long-float-one-tenth long-log10-of-2)))
+-|#
+-
+-; this dies with floating point overflow (?) if fed least-positive-double-float
+-
+-(defun scale-expt-aux (x zero one ten one-tenth log10-of-2)
+- (let ((exponent (nth-value 1 (decode-float x))))
+- (if (= x zero)
+- (values zero 1)
+- (let* ((e (round (* exponent log10-of-2)))
+- (x (if (minusp e) ;For the end ranges.
+- (* x ten (expt ten (- -1 e)))
+- (/ x ten (expt ten (1- e))))))
+- (do ((d ten (* d ten))
+- (y x (/ x d))
+- (e e (1+ e)))
+- ((< y one)
+- (do ((m ten (* m ten))
+- (z y (* z m))
+- (e e (1- e)))
+- ((>= z one-tenth) (values x e)))))))))
+-|#
+-
+-(defun scale-exponent (n)
+- (let ((exp (nth-value 1 (decode-float n))))
+- (values (round (* exp long-log10-of-2)))))
+-
++(defconstant single-float-min-e
++ (nth-value 1 (decode-float least-positive-single-float)))
++(defconstant double-float-min-e
++ (nth-value 1 (decode-float least-positive-double-float)))
++
++;;; Adapted from CMUCL.
++
++;; This is a modified version of the scale computation from Burger and
++;; Dybvig's paper "Printing floating-point quickly and accurately."
++;; We only want the exponent, so most things not needed for the
++;; computation of the exponent have been removed. We also implemented
++;; the floating-point log approximation given in Burger and Dybvig.
++;; This is very noticeably faster for large and small numbers. It is
++;; slower for intermediate sized numbers.
++(defun accurate-scale-exponent (v)
++ (declare (type float v))
++ (if (zerop v)
++ 1
++ (let ((float-radix 2) ; b
++ (float-digits (float-digits v)) ; p
++ (min-e
++ (etypecase v
++ (single-float single-float-min-e)
++ (double-float double-float-min-e))))
++ (multiple-value-bind (f e)
++ (integer-decode-float v)
++ (let ( ;; FIXME: these even tests assume normal IEEE rounding
++ ;; mode. I wonder if we should cater for non-normal?
++ (high-ok (evenp f)))
++ ;; We only want the exponent here.
++ (labels ((flog (x)
++ (declare (type (float (0.0)) x))
++ (let ((xd (etypecase x
++ (single-float
++ (float x 1d0))
++ (double-float
++ x))))
++ (ceiling (- (the (double-float -400d0 400d0)
++ (log xd 10d0))
++ 1d-10))))
++ (fixup (r s m+ k)
++ (if (if high-ok
++ (>= (+ r m+) s)
++ (> (+ r m+) s))
++ (+ k 1)
++ k))
++ (scale (r s m+)
++ (let* ((est (flog v))
++ (scale (the integer (10-to-e (abs est)))))
++ (if (>= est 0)
++ (fixup r (* s scale) m+ est)
++ (fixup (* r scale) s (* m+ scale) est)))))
++ (let (r s m+)
++ (if (>= e 0)
++ (let* ((be (expt float-radix e))
++ (be1 (* be float-radix)))
++ (if (/= f (expt float-radix (1- float-digits)))
++ (setf r (* f be 2)
++ s 2
++ m+ be)
++ (setf r (* f be1 2)
++ s (* float-radix 2)
++ m+ be1)))
++ (if (or (= e min-e)
++ (/= f (expt float-radix (1- float-digits))))
++ (setf r (* f 2)
++ s (* (expt float-radix (- e)) 2)
++ m+ 1)
++ (setf r (* f float-radix 2)
++ s (* (expt float-radix (- 1 e)) 2)
++ m+ float-radix)))
++ (scale r s m+))))))))
+
+@@ -1922,3 +1952,3 @@
+ (format-error "incompatible values for k and d")))
+- (when (not exp) (setq exp (scale-exponent number)))
++ (when (not exp) (setq exp (accurate-scale-exponent (abs number))))
+ AGAIN
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/Manifest b/dev-lisp/clx/Manifest
new file mode 100644
index 000000000000..38ee64503ded
--- /dev/null
+++ b/dev-lisp/clx/Manifest
@@ -0,0 +1,11 @@
+AUX gentoo-fix-asd.patch 11298 SHA256 9a9fe8c95020cbadbac7f283ce37abd346d550f9136d53807e8138e58534120d SHA512 80702eca8ae22affb3dc77ffddb1daac0740857d9deca157c650dea15691e4feeaf7d4a0220d3705111bbbb317a02c3adaae7e293bc219346eebb2dc1f598a9e WHIRLPOOL b0fb4f6890ad22f97801c2b36211f621c853cde5f6c0098feee08d777df90391d5e1c3028f5e3ab6d701f58670ea73358fa82909a48126303dc2fedbd6161a9c
+AUX gentoo-fix-dep-openmcl.patch 905 SHA256 c3d06020eb70df215de7b72b29af207d45239c908e3d0149ca8a3e40c6e70d76 SHA512 fdef997e33ffec46b4c28393faada80165b866398668eb1a6db5182586175cb264fdac462f4e3441d546dc3a195845ee92a1a7eae736da62c8741f9b7dd48612 WHIRLPOOL 092e93a6b7748a448354de56b70e4f3310575d5ebddd4916e443fbba1b9b513b1e448362c60437522c838022fa220725a9c83487292dc98fa282d548437590f2
+AUX gentoo-fix-dynamic-extent-sbcl-1.0.45.patch 600 SHA256 f3925863e607b5ec2bc96f891b11b89818feb5c17d985766c7c0e69e098000fd SHA512 97089c5e6b08b410ca26267116a4f7958b12d2ff93740292f53335a3d25a2b9f188f5afef75190db1648171eadaa62b6cec68425d410e87f7a6b97b5678102b6 WHIRLPOOL 42a86c5d1f76622b7bcbd0cac84aedc8ab30591ade84ee29e387cc3b98c155ba3cb1ce9a0352c5829b238f186cf2c6f5c1ce55716efcdae450dd1760c8a69287
+AUX gentoo-fix-obsolete-eval-when.patch 435 SHA256 7c7b3d17102223a6f0c24d31e7942880977ba4de422b51d189fac9c8a298c197 SHA512 0f3db1aa5d7a2f9a9e88f61d04633d399337fac517f7d4ee17bf88968f9bfe32f3105562dbe454b0bbaf91b4afe48c1361fbb2c492a3c6e4250426ea15a39610 WHIRLPOOL 6479f8564f374a21554ddb7b6909266c10d5682d18079c5ddd282183444faef269f93f533eb07f9b5820b9f41e98f7e775993d4c48f249f951c8113373c7eb09
+AUX gentoo-fix-unused-vars.patch 3139 SHA256 08a548efa8d7c69b41cf208a16efd42cf78aebaf3f529aa6b35f23ecfacd0b57 SHA512 fbb4d2e5866568adaed0534beb0f126792fc3d30880f2727fce7b62dcb0d57cb8367e1924ef52beb513a7a84f1b816832fa6d2f1605bda6354c075dc4db2b458 WHIRLPOOL 97b35c46cc206cfd849c48f6bef73ac0f22edc7bf9af910cd765479a58b2193e69e06c658f24ff6180b0face83d56a19f09ae03b2e4a58da7aaa650598dc9b56
+DIST clx-0.7.4.tgz 444490 SHA256 4a80f80255ace26eb8df214957dda3d7b7e51955537405ec893a34b18e569028 SHA512 07f93735bee25c8a6d8cccaa0755efa0b750954cbeab70d9db69bf51f1cf4eb7918c0225b9ae2834b11ebb261a857eea0f60b70e4044ccbe96ecb32c3ac31278 WHIRLPOOL af49b2dca591fd234c8b790867286383fc4fd32091415cc6c78b904bd7a3bff2e65c923553fe0bad41d83eb91fc74d801925ea9613c31c2f24a484ba0bb699ae
+EBUILD clx-0.7.4-r1.ebuild 1271 SHA256 4505b30cda03b2f28d406b9e30c51063f401b42764c9687abb211e5ceab365b1 SHA512 f8b14cf99f8ed0bd357e323930aa35784a77b32c5925eee9bfb6feb4f647f103b6a20a19428a309d68ce3281eeb03b3d2610ded2c994c4aa5e22f5af93d7e883 WHIRLPOOL 8d77b3db19ebc67a57654bc2207f1ec5f4e4215b1bf8e0074709383db9b1332ea7a3c9f66cf8a44b140e469c17a97b734982b59f74c536f3f41d35886099907f
+EBUILD clx-9999.ebuild 397 SHA256 18009a63485e58aa7c16d1a4ed9ddeef38966bccd9e9f1b43a26588a6be9a372 SHA512 12617d9b54692da5bb22d3ce6fa78e443249a0b8dd8b2c2a4c4f561c443bb9436773a685df4cd2aac88ac40cbe48a3ff32019978af84452f27cede98b62a802c WHIRLPOOL a7de37d2af63f5df7fb2794e3d4619e35a6617dc81a20766ca6f5076a37c9e8727f1df0602260e8ec94852c110a41dcf357d510877c1ab315d32b45ef1f9ae49
+MISC ChangeLog 2564 SHA256 1f6e258553bb7efa84c3e8388e829f3d345f1f9c73a52e981008a67eb7d98e9d SHA512 d8310549660880d54ec23aaedc5e542af467e69ee4ad1fba3ed8ad690f809a04bbaeb0a2aab908fff1b4df57b92c92719e51b2a6dfebbfe503ae313c54bb145e WHIRLPOOL 74fbd7c4e9506a42bc8ba994f1e9d5f10b2d8433cb5e084d4cb784faaea03d18ca8cfa9359b4459509ce9348f2b1c46a5b6b09d6cb65c247ea89072c7f28cf79
+MISC ChangeLog-2015 742 SHA256 7da852a0df9fc1334b39a5dda5192a0113fa1484595e6197948f39ef30018230 SHA512 341cded7370f81f030aa93437f309f001dc0a193055bf8be59f4ba45ebfaf632dcb7989db85f01a590aa66ddfa6bbd4e7e9877a6a7d8ebccf5b50766942bf09a WHIRLPOOL 9ac51c571281a86a2ec10131d7746d3f424fefc47d6a1a82bd6e355247a7e0fa5416fdbd6fbaabf5367aff52803e1f882d25902d81432b1f848f170012ba9457
+MISC metadata.xml 840 SHA256 5e0ea67a10993770da197b011a2939870e6389032edc03d45f918faefa584619 SHA512 3106a77aee90f41316844316d1c33195f2ea9489f2d45ce6f632d9146a3e820c7c762d9e6fcbb671ad979caa96106435bd2d8f7652b60e75b49b6cbb527d9589 WHIRLPOOL 69f13e8c1cc4550b91cb520ea115ec965ffef104e63c5a25d9a391590d868afe535308453aa4ffaa6c5581108010f6d958ad9dc748c975732d208e8db59f45f0
diff --git a/dev-lisp/clx/clx-0.7.4-r1.ebuild b/dev-lisp/clx/clx-0.7.4-r1.ebuild
new file mode 100644
index 000000000000..e229aaf004b9
--- /dev/null
+++ b/dev-lisp/clx/clx-0.7.4-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2017 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="http://common-lisp.net/~abridgewater/dist/${PN}/${P}.tgz"
+
+LICENSE="HPND"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+IUSE="doc"
+
+DEPEND="sys-apps/texinfo
+ doc? ( virtual/texi2dvi )"
+RDEPEND="!dev-lisp/cl-${PN}"
+
+src_prepare() {
+ rm -v {exclcmac,sockcl,defsystem,provide,cmudep}.lisp || die
+ eapply "${FILESDIR}"/gentoo-fix-asd.patch
+ eapply "${FILESDIR}"/gentoo-fix-dep-openmcl.patch
+ eapply "${FILESDIR}"/gentoo-fix-unused-vars.patch
+ eapply "${FILESDIR}"/gentoo-fix-obsolete-eval-when.patch
+ eapply "${FILESDIR}"/gentoo-fix-dynamic-extent-sbcl-1.0.45.patch
+ eapply_user
+}
+
+src_compile() {
+ cd manual || die
+ makeinfo ${PN}.texinfo -o ${PN}.info || die "Cannot compile info docs"
+ if use doc ; then
+ VARTEXFONTS="${T}"/fonts \
+ texi2pdf ${PN}.texinfo -o ${PN}.pdf || die "Cannot build PDF docs"
+ fi
+}
+
+src_install() {
+ common-lisp-install-sources *.lisp debug demo test
+ common-lisp-install-asdf
+ dodoc NEWS CHANGES README*
+ doinfo manual/${PN}.info
+ use doc && dodoc manual/${PN}.pdf
+}
diff --git a/dev-lisp/clx/clx-9999.ebuild b/dev-lisp/clx/clx-9999.ebuild
new file mode 100644
index 000000000000..58071bea11ca
--- /dev/null
+++ b/dev-lisp/clx/clx-9999.ebuild
@@ -0,0 +1,14 @@
+# 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 fork of crhodes' fork of danb's fork of CLX, an X11 client for Common Lisp"
+HOMEPAGE="https://github.com/sharplispers/clx http://www.cliki.net/CLX"
+EGIT_REPO_URI="https://github.com/sharplispers/clx.git"
+
+LICENSE="MIT"
+SLOT="0"
+IUSE=""
diff --git a/dev-lisp/clx/files/gentoo-fix-asd.patch b/dev-lisp/clx/files/gentoo-fix-asd.patch
new file mode 100644
index 000000000000..62ad58748170
--- /dev/null
+++ b/dev-lisp/clx/files/gentoo-fix-asd.patch
@@ -0,0 +1,303 @@
+diff -ur clx-0.7.4.orig/clx.asd clx-0.7.4/clx.asd
+--- clx-0.7.4.orig/clx.asd 2009-11-28 16:43:30.000000000 +0100
++++ clx-0.7.4/clx.asd 2009-11-29 22:29:11.000000000 +0100
+@@ -21,116 +21,80 @@
+ ;;; or implied warranty.
+
+ (defpackage :clx-system (:use :cl :asdf))
+-(in-package :clx-system)
++(in-package :clx-system)
+
+ (pushnew :clx-ansi-common-lisp *features*)
+
+ (defclass clx-source-file (cl-source-file) ())
+ (defclass xrender-source-file (clx-source-file) ())
+
+-;;; CL-SOURCE-FILE, not CLX-SOURCE-FILE, so that we're not accused of
+-;;; cheating by rebinding *DERIVE-FUNCTION-TYPES* :-)
+-(defclass example-source-file (cl-source-file) ())
+-
+-(defclass legacy-file (static-file) ())
+-
+-(defsystem CLX
+- :depends-on (#+sbcl sb-bsd-sockets)
+- :version "0.7.2"
+- :serial t
+- :default-component-class clx-source-file
++(defsystem clx
++ :depends-on (#+sbcl :sb-bsd-sockets)
++ :version "0.7.4"
++ :serial t
++ :default-component-class clx-source-file
++ :components
++ ((:file "package")
++ (:file "depdefs")
++ (:file "clx")
++ #-(or openmcl allegro) (:file "dependent")
++ #+openmcl (:file "dep-openmcl")
++ #+allegro (:file "dep-allegro")
++ (:file "macros")
++ (:file "bufmac")
++ (:file "buffer")
++ (:file "display")
++ (:file "gcontext")
++ (:file "input")
++ (:file "requests")
++ (:file "fonts")
++ (:file "graphics")
++ (:file "text")
++ (:file "attributes")
++ (:file "translate")
++ (:file "keysyms")
++ (:file "manager")
++ (:file "image")
++ (:file "resource")
++ #+allegro
++ (:file "excldep" :pathname "excldep.lisp")
++ (:module extensions
++ :pathname #.(make-pathname :directory '(:relative))
+ :components
+- ((:file "package")
+- (:file "depdefs")
+- (:file "clx")
+- #-(or openmcl allegro) (:file "dependent")
+- #+openmcl (:file "dep-openmcl")
+- #+allegro (:file "dep-allegro")
+- (:file "macros")
+- (:file "bufmac")
+- (:file "buffer")
+- (:file "display")
+- (:file "gcontext")
+- (:file "input")
+- (:file "requests")
+- (:file "fonts")
+- (:file "graphics")
+- (:file "text")
+- (:file "attributes")
+- (:file "translate")
+- (:file "keysyms")
+- (:file "manager")
+- (:file "image")
+- (:file "resource")
+- #+allegro
+- (:file "excldep" :pathname "excldep.lisp")
+- (:module extensions
+- :pathname #.(make-pathname :directory '(:relative))
+- :components
+- ((:file "shape")
+- (:file "big-requests")
+- (:file "xvidmode")
+- (:xrender-source-file "xrender")
+- (:file "glx")
+- (:file "gl" :depends-on ("glx"))
+- (:file "dpms")
+- (:file "xtest")
+- (:file "screensaver")
+- (:file "xinerama")))
+- (:module demo
+- :default-component-class example-source-file
+- :components
+- ((:file "bezier")
+- ;; KLUDGE: this requires "bezier" for proper operation,
+- ;; but we don't declare that dependency here, because
+- ;; asdf doesn't load example files anyway.
+- (:file "beziertest")
+- (:file "clclock")
+- (:file "clipboard")
+- (:file "clx-demos")
+- (:file "gl-test")
+- ;; FIXME: compiling this generates 30-odd spurious code
+- ;; deletion notes. Find out why, and either fix or
+- ;; workaround the problem.
+- (:file "mandel")
+- (:file "menu")
+- (:file "zoid")))
+- (:module test
+- :default-component-class example-source-file
+- :components
+- ((:file "image")
+- ;; KLUDGE: again, this depends on "zoid"
+- (:file "trapezoid")))
+- (:static-file "NEWS")
+- (:static-file "CHANGES")
+- (:static-file "README")
+- (:static-file "README-R5")
+- (:legacy-file "exclMakefile")
+- (:legacy-file "exclREADME")
+- (:legacy-file "exclcmac" :pathname "exclcmac.lisp")
+- (:legacy-file "excldepc" :pathname "excldep.c")
+- (:legacy-file "sockcl" :pathname "sockcl.lisp")
+- (:legacy-file "socket" :pathname "socket.c")
+- (:legacy-file "defsystem" :pathname "defsystem.lisp")
+- (:legacy-file "provide" :pathname "provide.lisp")
+- (:legacy-file "cmudep" :pathname "cmudep.lisp")
+- (:module manual
+- ;; TODO: teach asdf how to process texinfo files
+- :components ((:static-file "clx.texinfo")))
+- (:module debug
+- :default-component-class legacy-file
+- :components
+- ((:file "debug" :pathname "debug.lisp")
+- (:file "describe" :pathname "describe.lisp")
+- (:file "event-test" :pathname "event-test.lisp")
+- (:file "keytrans" :pathname "keytrans.lisp")
+- (:file "trace" :pathname "trace.lisp")
+- (:file "util" :pathname "util.lisp")))))
+-
+-(defmethod perform ((o load-op) (f example-source-file))
+- ;; do nothing. We want to compile them when CLX is compiled, but
+- ;; not load them when CLX is loaded.
+- t)
++ ((:file "shape")
++ (:file "big-requests")
++ (:file "xvidmode")
++ (:xrender-source-file "xrender")
++ (:file "glx")
++ (:file "gl" :depends-on ("glx"))
++ (:file "dpms")
++ (:file "xtest")
++ (:file "screensaver")
++ (:file "xinerama")))))
++
++(defsystem clx-test
++ :depends-on (:clx)
++ :serial t
++ :components
++ ((:file "image")
++ (:file "trapezoid")))
++
++(defsystem clx-demo
++ :depends-on (:clx)
++ :serial t
++ :components
++ ((:file "bezier")
++ (:file "beziertest")
++ (:file "clclock")
++ (:file "clipboard")
++ (:file "clx-demos")
++ (:file "gl-test")
++ ;; FIXME: compiling this generates 30-odd spurious code
++ ;; deletion notes. Find out why, and either fix or
++ ;; workaround the problem.
++ (:file "mandel")
++ (:file "menu")
++ (:file "zoid")))
+
+ #+sbcl
+ (defmethod perform :around ((o compile-op) (f xrender-source-file))
+@@ -146,35 +110,35 @@
+ ;; without STYLE-WARNINGs. Since it currently does, let's enforce
+ ;; it here so that we can catch regressions easily.
+ (let ((on-warnings (operation-on-warnings o))
+- (on-failure (operation-on-failure o)))
++ (on-failure (operation-on-failure o)))
+ (unwind-protect
+- (progn
+- (setf (operation-on-warnings o) :error
+- (operation-on-failure o) :error)
+- ;; a variety of accessors, such as AREF-CARD32, are not
+- ;; declared INLINE. Without this (non-ANSI)
+- ;; static-type-inference behaviour, SBCL emits an extra 100
+- ;; optimization notes (roughly one fifth of all of the
+- ;; notes emitted). Since the internals are unlikely to
+- ;; change much, and certainly the internals should stay in
+- ;; sync, enabling this extension is a win. (Note that the
+- ;; use of this does not imply that applications using CLX
+- ;; calls that expand into calls to these accessors will be
+- ;; optimized in the same way).
+- (let ((sb-ext:*derive-function-types* t)
++ (progn
++ (setf (operation-on-warnings o) :error
++ (operation-on-failure o) :error)
++ ;; a variety of accessors, such as AREF-CARD32, are not
++ ;; declared INLINE. Without this (non-ANSI)
++ ;; static-type-inference behaviour, SBCL emits an extra 100
++ ;; optimization notes (roughly one fifth of all of the
++ ;; notes emitted). Since the internals are unlikely to
++ ;; change much, and certainly the internals should stay in
++ ;; sync, enabling this extension is a win. (Note that the
++ ;; use of this does not imply that applications using CLX
++ ;; calls that expand into calls to these accessors will be
++ ;; optimized in the same way).
++ (let ((sb-ext:*derive-function-types* t)
+ (sadx (find-symbol "STACK-ALLOCATE-DYNAMIC-EXTENT" :sb-c))
+ (sadx-var (find-symbol "*STACK-ALLOCATE-DYNAMIC-EXTENT*" :sb-ext)))
+- ;; deeply unportable stuff, this. I will be shot. We
+- ;; want to enable the dynamic-extent declarations in CLX.
+- (when (and sadx (sb-c::policy-quality-name-p sadx))
+- ;; no way of setting it back short of yet more yukky stuff
+- (proclaim `(optimize (,sadx 3))))
++ ;; deeply unportable stuff, this. I will be shot. We
++ ;; want to enable the dynamic-extent declarations in CLX.
++ (when (and sadx (sb-c::policy-quality-name-p sadx))
++ ;; no way of setting it back short of yet more yukky stuff
++ (proclaim `(optimize (,sadx 3))))
+ (if sadx-var
+ (progv (list sadx-var) (list t)
+ (call-next-method))
+ (call-next-method))))
+ (setf (operation-on-warnings o) on-warnings
+- (operation-on-failure o) on-failure))))
++ (operation-on-failure o) on-failure))))
+
+ #+sbcl
+ (defmethod perform :around (o (f clx-source-file))
+@@ -186,31 +150,31 @@
+ ;; structured data is sufficiently equal.
+ (handler-bind
+ ((sb-ext:defconstant-uneql
+- (lambda (c)
+- ;; KLUDGE: this really means "don't warn me about
+- ;; efficiency of generic array access, please"
+- (declare (optimize (sb-ext:inhibit-warnings 3)))
+- (let ((old (sb-ext:defconstant-uneql-old-value c))
+- (new (sb-ext:defconstant-uneql-new-value c)))
+- (typecase old
+- (list (when (equal old new) (abort c)))
+- (string (when (and (typep new 'string)
+- (string= old new))
+- (abort c)))
+- (simple-vector
+- (when (and (typep new 'simple-vector)
+- (= (length old) (length new))
+- (every #'eql old new))
+- (abort c)))
+- (array
+- (when (and (typep new 'array)
+- (equal (array-dimensions old)
+- (array-dimensions new))
+- (equal (array-element-type old)
+- (array-element-type new))
+- (dotimes (i (array-total-size old) t)
+- (unless (eql (row-major-aref old i)
+- (row-major-aref new i))
+- (return nil))))
+- (abort c))))))))
++ (lambda (c)
++ ;; KLUDGE: this really means "don't warn me about
++ ;; efficiency of generic array access, please"
++ (declare (optimize (sb-ext:inhibit-warnings 3)))
++ (let ((old (sb-ext:defconstant-uneql-old-value c))
++ (new (sb-ext:defconstant-uneql-new-value c)))
++ (typecase old
++ (list (when (equal old new) (abort c)))
++ (string (when (and (typep new 'string)
++ (string= old new))
++ (abort c)))
++ (simple-vector
++ (when (and (typep new 'simple-vector)
++ (= (length old) (length new))
++ (every #'eql old new))
++ (abort c)))
++ (array
++ (when (and (typep new 'array)
++ (equal (array-dimensions old)
++ (array-dimensions new))
++ (equal (array-element-type old)
++ (array-element-type new))
++ (dotimes (i (array-total-size old) t)
++ (unless (eql (row-major-aref old i)
++ (row-major-aref new i))
++ (return nil))))
++ (abort c))))))))
+ (call-next-method)))
diff --git a/dev-lisp/clx/files/gentoo-fix-dep-openmcl.patch b/dev-lisp/clx/files/gentoo-fix-dep-openmcl.patch
new file mode 100644
index 000000000000..1ec3eca0897c
--- /dev/null
+++ b/dev-lisp/clx/files/gentoo-fix-dep-openmcl.patch
@@ -0,0 +1,21 @@
+diff -ur clx-0.7.4.orig/dep-openmcl.lisp clx-0.7.4/dep-openmcl.lisp
+--- clx-0.7.4.orig/dep-openmcl.lisp 2009-11-28 16:43:30.000000000 +0100
++++ clx-0.7.4/dep-openmcl.lisp 2009-11-29 22:39:36.000000000 +0100
+@@ -492,7 +492,7 @@
+ ;;; value changes.
+
+ (defun process-block (whostate predicate &rest predicate-args)
+- (declare (dynamic-extern predicate-args))
++ (declare (dynamic-extent predicate-args))
+ (apply #'ccl:process-wait whostate predicate predicate-args))
+
+ ;;; PROCESS-WAKEUP: Check some other process' wait function.
+@@ -1113,7 +1113,7 @@
+ unit byte-lsb-first-p bit-lsb-first-p)
+ (declare (ignore bbuf boffset pixarray x y width height
+ padded-bytes-per-line bits-per-pixel unit
+- byte-lsb-first-p bit-lsp-first-p))
++ byte-lsb-first-p bit-lsb-first-p))
+ nil)
+
+ ;;; FAST-COPY-PIXARRAY - copy part of a pixarray into another
diff --git a/dev-lisp/clx/files/gentoo-fix-dynamic-extent-sbcl-1.0.45.patch b/dev-lisp/clx/files/gentoo-fix-dynamic-extent-sbcl-1.0.45.patch
new file mode 100644
index 000000000000..961d1bedaa67
--- /dev/null
+++ b/dev-lisp/clx/files/gentoo-fix-dynamic-extent-sbcl-1.0.45.patch
@@ -0,0 +1,13 @@
+diff -ur clx-0.7.4.orig/requests.lisp clx-0.7.4/requests.lisp
+--- clx-0.7.4.orig/requests.lisp 2009-11-28 16:43:30.000000000 +0100
++++ clx-0.7.4/requests.lisp 2010-12-16 23:37:07.122629835 +0100
+@@ -466,8 +466,7 @@
+ (type event-key event-key)
+ (type (or null event-mask) event-mask)
+ (type generalized-boolean propagate-p)
+- (type (or null display) display)
+- (dynamic-extent args))
++ (type (or null display) display))
+ (unless event-mask (setq event-mask 0))
+ (unless display (setq display (window-display window)))
+ (let ((internal-event-code (get-event-code event-key))
diff --git a/dev-lisp/clx/files/gentoo-fix-obsolete-eval-when.patch b/dev-lisp/clx/files/gentoo-fix-obsolete-eval-when.patch
new file mode 100644
index 000000000000..e1df016b4a56
--- /dev/null
+++ b/dev-lisp/clx/files/gentoo-fix-obsolete-eval-when.patch
@@ -0,0 +1,12 @@
+diff -ur clx-0.7.4.orig/depdefs.lisp clx-0.7.4/depdefs.lisp
+--- clx-0.7.4.orig/depdefs.lisp 2009-11-28 16:43:30.000000000 +0100
++++ clx-0.7.4/depdefs.lisp 2009-11-29 22:56:38.000000000 +0100
+@@ -142,7 +142,7 @@
+ ;;; overlapping array and image code.
+
+ #+(or lispm vax little-endian Minima)
+-(eval-when (eval compile load)
++(eval-when (:compile-toplevel :load-toplevel :execute)
+ (pushnew :clx-little-endian *features*))
+
+ #+lcl3.0
diff --git a/dev-lisp/clx/files/gentoo-fix-unused-vars.patch b/dev-lisp/clx/files/gentoo-fix-unused-vars.patch
new file mode 100644
index 000000000000..96dc255ffbf4
--- /dev/null
+++ b/dev-lisp/clx/files/gentoo-fix-unused-vars.patch
@@ -0,0 +1,69 @@
+diff -ur clx-0.7.4.orig/gl.lisp clx-0.7.4/gl.lisp
+--- clx-0.7.4.orig/gl.lisp 2009-11-28 16:43:30.000000000 +0100
++++ clx-0.7.4/gl.lisp 2009-11-29 22:46:37.000000000 +0100
+@@ -2274,7 +2274,7 @@
+ (let ((constant 0)
+ (calculated ()))
+ (loop
+- for (name type length length-var) in argspecs
++ for (nil type length length-var) in argspecs
+ do (let ((byte-width (byte-width type)))
+ (typecase length
+ (number (incf constant (* byte-width length)))
+@@ -2287,7 +2287,7 @@
+
+ (defun composite-args (argspecs)
+ (loop
+- for (name type length length-var) in argspecs
++ for (nil nil length length-var) in argspecs
+ when (consp length)
+ collect (list length-var length)))
+
+diff -ur clx-0.7.4.orig/xrender.lisp clx-0.7.4/xrender.lisp
+--- clx-0.7.4.orig/xrender.lisp 2009-11-28 16:43:30.000000000 +0100
++++ clx-0.7.4/xrender.lisp 2009-11-29 22:50:42.000000000 +0100
+@@ -408,7 +408,7 @@
+
+ (macrolet ((foo (&rest specs)
+ `(progn
+- ,@(loop for (type slot default) in specs
++ ,@(loop for (nil slot nil) in specs
+ for index from 0
+ collect
+ `(progn
+@@ -426,7 +426,7 @@
+ (data +X-RenderChangePicture+)
+ (picture picture)
+ (mask
+- ,@(loop for (type slot default) in specs
++ ,@(loop for (type slot nil) in specs
+ for index from 0
+ collect
+ `(,type (and
+@@ -454,7 +454,7 @@
+ (drawable
+ &key format
+ (picture (make-picture :display (drawable-display drawable)))
+- ,@(loop for (type slot default-value) in specs
++ ,@(loop for (nil slot nil) in specs
+ collect (cond ((eql slot 'clip-mask)
+ `(clip-mask :none))
+ (t
+@@ -475,7 +475,7 @@
+ (drawable drawable)
+ (picture-format format)
+ (mask
+- ,@(loop for (type slot default) in specs
++ ,@(loop for (type slot nil) in specs
+ collect
+ (cond ((eql slot 'clip-mask)
+ (list type `(and
+@@ -487,7 +487,7 @@
+ (%render-change-picture-clip-rectangles picture clip-mask))
+ (setf (picture-format picture) format)
+ (setf (picture-%server-values picture)
+- (vector ,@(loop for (type slot default) in specs
++ (vector ,@(loop for (nil slot default) in specs
+ collect
+ `(or ,slot ,default))))
+ (setf (picture-%values picture) (copy-seq (picture-%server-values picture)))
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/Manifest b/dev-lisp/cmucl/Manifest
new file mode 100644
index 000000000000..d113e293958c
--- /dev/null
+++ b/dev-lisp/cmucl/Manifest
@@ -0,0 +1,16 @@
+AUX 20e-customize-lisp-implementation-version.patch 683 SHA256 81c421f80c06c567d2ae0812c8e0e66ad86631662adfd8891ae36152328eae63 SHA512 77acf6d31d8a932075b61e90b42b2c74648ad29ef3cf2f98e69a44f957672a935ea88a541815c19bf71ba5e64c587d27878288038178a7ad3d96144a26b1bb2b WHIRLPOOL 54cbca06348c4a0b4d8efe7b502e3834102640aa3cf9a0817a39a2d9dfac5e1234ff22260c9cd29864acd1a7bdf156b64f9feb2e87fad9205ce7164c697e5ab9
+AUX 20e-execstack-fixes.patch 3990 SHA256 f507d48eef3ae55e9f38ef96964d2179a3a328837420e866be4509c5fdde9131 SHA512 bb32dfffa6b737af8be924f194112863b64010b00b30caf92c023a16ac1d2884f51ee724b57cdeb2786f10aad6bd0054a835c94f03b911eca4648c2e5927ce3b WHIRLPOOL aaf48fbbb369e7742e06a3bfb79d887e916e892d66a185edbffc23774d1e8c0f73d76fe784d2f36080e7e6fe9d5cd8fdd8c5b6c22b0143db6a10da2a642724f0
+AUX 21a-build.patch 733 SHA256 8419730a89d53667c5af920f976a3ef6187879d0c342c005fb10142abf1ff011 SHA512 ca84e1e54ddbd0aa9e5e68da02be3d97c0746477f1dc3680503879cbfd3b875b23c2b96b77cf07c786de22f6a05d83afc7b267a1f30cfea4320f1c29c40bb1ef WHIRLPOOL 22935f7a0426dc5baa1add17e6834b126a657636e544292ec6e8040ab5b0a176522d4315fd32ba82c73270b47a2d013b266fa008a93a328c16b54ec157697a8b
+AUX 21a-customize-lisp-implementation-version.patch 683 SHA256 81c421f80c06c567d2ae0812c8e0e66ad86631662adfd8891ae36152328eae63 SHA512 77acf6d31d8a932075b61e90b42b2c74648ad29ef3cf2f98e69a44f957672a935ea88a541815c19bf71ba5e64c587d27878288038178a7ad3d96144a26b1bb2b WHIRLPOOL 54cbca06348c4a0b4d8efe7b502e3834102640aa3cf9a0817a39a2d9dfac5e1234ff22260c9cd29864acd1a7bdf156b64f9feb2e87fad9205ce7164c697e5ab9
+AUX 21a-execstack-fixes.patch 3990 SHA256 f507d48eef3ae55e9f38ef96964d2179a3a328837420e866be4509c5fdde9131 SHA512 bb32dfffa6b737af8be924f194112863b64010b00b30caf92c023a16ac1d2884f51ee724b57cdeb2786f10aad6bd0054a835c94f03b911eca4648c2e5927ce3b WHIRLPOOL aaf48fbbb369e7742e06a3bfb79d887e916e892d66a185edbffc23774d1e8c0f73d76fe784d2f36080e7e6fe9d5cd8fdd8c5b6c22b0143db6a10da2a642724f0
+AUX cmuclrc 305 SHA256 4f1f050f8dcbf261c9ee33075d5546a43fd14f7f0cd0ad486b175081bd4b27d2 SHA512 36ae348795f27a7aae2e1cf10376606b9a6898b4c4f0e6da692b3e60bed21e2825ac766a51fb648f1365b238046efd155e80d70421ff65ecffe5b68342895740 WHIRLPOOL ffeea73a1a69dfd43a3d4cc86e8e6b63f447fec0c6fd6f6f80ae2b6feee2bb1683b67f18b7364a311bfbac9056c73cf3813e455a1eb459884bda0794daff57be
+AUX site-init.lisp.in 1839 SHA256 6164e40b50a0a0e7175089f0b55d549b8f24ef602c1c0c41f9433f5c61c512e7 SHA512 374e5acf970b1bd26d2318b678cba509296f2356a4672648f8522387c216288e8f43b514004b0d0c98da5d03a5db10435d5f42f57db88c916691eb4ae93f126a WHIRLPOOL 4c4fb508d7546dea9d75dcff3239c56f8c3b3ed249f3f7fd71f9a2a60dbafc57f0b172d2cd2c6efdca5441e8c30ee3f49c829b3db64bf9ab9db5d4526726f8cc
+DIST cmucl-20e-x86-linux.tar.bz2 18861880 SHA256 94dc1c0ddcaa915f83cdc23462a4cc3c4af98d64fe42e79d7c5232225b149480 SHA512 1eee852b2a11733d0fac2c046137ccd099370bf208be71becc03710e832510b288768f557e326b1ce95cba16490413142e607fd71346e20e5f8592b51d86b0fe WHIRLPOOL 765476aeb037b782380b33fb8e7ae137bb38544547b427c54c23661122552108e8940413c55003c31ba05b4729bb18f99f5b462742cbd9c1c7426f0c04e26863
+DIST cmucl-21a-x86-linux.tar.bz2 10870693 SHA256 02d00c025723e7a2fa7a44e43d3f27ec39c9b871ea0332e472a439ada2620d71 SHA512 7f7d327e47b01dcee1cbb05aae826ef7c64d4d192d7d32d1aba51c8839a06d65942fff5d4c7dbccc955e1e233d2065d83d078266327caee07201e9dce59c39ee WHIRLPOOL 50e64b6d03464c9fc7015d3d6829949ab4bc41f69b890a82f36096f89d63da989197deaa7164c687d781b70ca2a7b23e3e23f9605bdb986f5a94553e9aa664c0
+DIST cmucl-src-20e.tar.bz2 6147575 SHA256 b18fd27b67321a0c00f2019bbb18557f239062ba947080149ed42e30f72ae7cd SHA512 d04f6ac7335572198d37d5df00934edfc82495294446cc5420dada4f2df44009f0983b438d6f10ce5bb02e46fd89df985da5eee3e91a6a75d98e9f86240c0dcc WHIRLPOOL babb020bacf474e1cea4bc865ba7352686ff5d92d01dd4d44d121b101ac328da6cd3e63798a2086ce29ba260fdbefc26f5f7d496ecb0af9566cb1cbdbb3846bf
+DIST cmucl-src-21a.tar.bz2 8195492 SHA256 41604a4f828a134dbf8a58623f45bd81b76ae05fc5c4cea5ccb74edfdc9e3167 SHA512 74b077732030dbc3681aadcf9c802fd5b399362c9653b972063e49eb0a2ad528d02d6dde74107210c94c94dc7e9664472c2d072a6ae6f75e7e8c4cf847987e3b WHIRLPOOL 8799e9a2171ef1a9eebce4deaed8aaaa3e2b5e0970ca158020792cc5d864f71525c175b2e9530f8faeee8d1c49a14b04803ed1aa83dc1247c2005a80f5fc972e
+EBUILD cmucl-20e.ebuild 2752 SHA256 7c67b0ce565598c3e7022716e20e4dc8140dc8e9e761c0635f58594f42ca7cc5 SHA512 0034c000d0001a3820efa94613c7f4eb2be373a251b0c4de1b1d9e8f4a469f407af9ad6b65fc39cba7b3332b7492b8dc46dee9d74ad59d0b9d930fd9e0dedcf1 WHIRLPOOL d26c7699c0ee7c47b1e7f3e770b3588832dd374ee08cc9d2b19c790663e0d5bbbda377c364e1bcf054c6e3d10e291f11ecf2accd2e1bb2bf22936c53fa057f6a
+EBUILD cmucl-21a.ebuild 2619 SHA256 db854d781fcb8307218818abfe8a3c80a6d42e95d15915b4c4071e26c4a781b1 SHA512 aca74badee7e617d1a0571bbfd45fea92896579eb956c022d985de3c93e1deecef4d5fe798fefc801dd49fef7a917b913f11caaeba9d886562780b0324381978 WHIRLPOOL 34ea7d86e08e6ad355330f0bd3bf8985512563f4e29bf95f83ea2a167f3013db456c505c7ef765ac0338f5cbd3de3d3797de1758a08deabeac7167f6d17b4d02
+MISC ChangeLog 3210 SHA256 cfd180b3a8c09af353ef732012cc82853cefd7b4ab1927f2860c1e41b07f5cb2 SHA512 b4081d3230b6929b55b5b9f7f5f62b6f3fd6797fc93e383044b4c80761cd464b701415083ca97cdd4f04c983723a14e1fc00155124d2028cb981c02938282d5a WHIRLPOOL 7348174d72b3d45d9fac92bd7e622b1a2cf52de7f51c4eaa92f2fd1a96674f8215b8bf8d35f8a833bf2185de8ead88aeff0a1cd2b2ee0d9ec2617a47cb0d439e
+MISC ChangeLog-2015 9649 SHA256 e2f6854b56e0105ae2568af26afad66e24da17f63b9f8ce32afe7d48492f5f65 SHA512 7d6110ec6df9946b48555c9f4d278b74134385cfd73fbdfec6cf2aa3382d23d1a8e25ba4372740c5ac84f9497d5399eac28684ebd376ef1d86a4b65bb319c098 WHIRLPOOL dfbcbebc84b730499fe427060339298ff2b72362ac700e5419c6ba777cf9c412a1fac655299e4b6a13d3a5aefad9224ba2cdcf269925412375b0d0eb3f40837a
+MISC metadata.xml 1389 SHA256 39e867e3024a9e39c8c402164513d4cd2096a20f38f973a48d420ca1765f89f5 SHA512 5c6ded0a26b6f1a5705d122f0c2e463f61aa673c5a302cd4676418e12216ca0f3cde81b3ebc0848d879caeae87ca786e01c2f2d61b6f89fedd564d2c739a5fb0 WHIRLPOOL cfffa4f45238d699db3ab3f7932fd7653bf2d9d3004ed00ed49db6b71b3355ae83afb412bc2daef15da06ead2232a4a63e6bb1314d2167f2777395de267639d3
diff --git a/dev-lisp/cmucl/cmucl-20e.ebuild b/dev-lisp/cmucl/cmucl-20e.ebuild
new file mode 100644
index 000000000000..9e122b9a2c9f
--- /dev/null
+++ b/dev-lisp/cmucl/cmucl-20e.ebuild
@@ -0,0 +1,97 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+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 source cpu_flags_x86_sse2"
+
+CDEPEND=">=dev-lisp/asdf-2.33-r3:=
+ x11-libs/motif:0"
+DEPEND="${CDEPEND}
+ sys-devel/bc"
+RDEPEND="${CDEPEND}"
+
+S="${WORKDIR}"
+
+TARGET=linux-4
+
+src_prepare() {
+ epatch "${FILESDIR}"/${MY_PV}-execstack-fixes.patch
+ epatch "${FILESDIR}"/${MY_PV}-customize-lisp-implementation-version.patch
+
+ cp /usr/share/common-lisp/source/asdf/build/asdf.lisp src/contrib/asdf/ || die
+}
+
+src_compile() {
+ local cmufpu cmuopts
+
+ if use cpu_flags_x86_sse2; then
+ cmufpu=sse2
+ else
+ cmufpu=x87
+ fi
+
+ if use X; then
+ cmuopts="-f ${cmufpu}"
+ else
+ cmuopts="-u -f ${cmufpu}"
+ fi
+
+ local buildimage="bin/lisp -core lib/cmucl/lib/lisp-${cmufpu}.core -noinit -nositeinit -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
+}
+
+src_install() {
+ env MANDIR=share/man/man1 DOCDIR=share/doc/${PF} \
+ bin/make-dist.sh -S -g -G root -O root ${TARGET} ${MY_PV} x86 linux \
+ || 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}
+ 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"
+}
diff --git a/dev-lisp/cmucl/cmucl-21a.ebuild b/dev-lisp/cmucl/cmucl-21a.ebuild
new file mode 100644
index 000000000000..f3f9b830b735
--- /dev/null
+++ b/dev-lisp/cmucl/cmucl-21a.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+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 source"
+
+CDEPEND=">=dev-lisp/asdf-2.33-r3:=
+ x11-libs/motif:0"
+DEPEND="${CDEPEND}
+ sys-devel/bc"
+RDEPEND="${CDEPEND}"
+
+S="${WORKDIR}"
+
+TARGET=linux-4
+
+src_prepare() {
+ epatch "${FILESDIR}"/${MY_PV}-execstack-fixes.patch
+ epatch "${FILESDIR}"/${MY_PV}-customize-lisp-implementation-version.patch
+ epatch "${FILESDIR}"/${MY_PV}-build.patch
+
+ 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
+}
+
+src_install() {
+ env MANDIR=share/man/man1 DOCDIR=share/doc/${PF} \
+ bin/make-dist.sh -S -g -G root -O root ${TARGET} ${MY_PV} x86 linux \
+ || 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}
+ 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"
+}
diff --git a/dev-lisp/cmucl/files/20e-customize-lisp-implementation-version.patch b/dev-lisp/cmucl/files/20e-customize-lisp-implementation-version.patch
new file mode 100644
index 000000000000..8fc9278af87d
--- /dev/null
+++ b/dev-lisp/cmucl/files/20e-customize-lisp-implementation-version.patch
@@ -0,0 +1,16 @@
+diff -ur cmucl.orig/src/code/misc.lisp cmucl/src/code/misc.lisp
+--- cmucl.orig/src/code/misc.lisp 2011-10-25 05:31:39.000000000 +0200
++++ cmucl/src/code/misc.lisp 2012-01-31 21:46:49.441273068 +0100
+@@ -187,8 +187,10 @@
+
+ (defun lisp-implementation-version ()
+ "Returns a string describing the implementation version."
+- (format nil "~A (~X~A)" *lisp-implementation-version* c:byte-fasl-file-version
+- #+unicode _" Unicode" #-unicode ""))
++ (format nil "~X~A~A"
++ c:byte-fasl-file-version
++ #+unicode "-unicode" #-unicode ""
++ *lisp-implementation-version*))
+
+ (defun machine-instance ()
+ "Returns a string giving the name of the local machine."
diff --git a/dev-lisp/cmucl/files/20e-execstack-fixes.patch b/dev-lisp/cmucl/files/20e-execstack-fixes.patch
new file mode 100644
index 000000000000..034848d64a26
--- /dev/null
+++ b/dev-lisp/cmucl/files/20e-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/21a-build.patch b/dev-lisp/cmucl/files/21a-build.patch
new file mode 100644
index 000000000000..464234109b32
--- /dev/null
+++ b/dev-lisp/cmucl/files/21a-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=20f
++version=21a
+ 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/21a-customize-lisp-implementation-version.patch b/dev-lisp/cmucl/files/21a-customize-lisp-implementation-version.patch
new file mode 100644
index 000000000000..8fc9278af87d
--- /dev/null
+++ b/dev-lisp/cmucl/files/21a-customize-lisp-implementation-version.patch
@@ -0,0 +1,16 @@
+diff -ur cmucl.orig/src/code/misc.lisp cmucl/src/code/misc.lisp
+--- cmucl.orig/src/code/misc.lisp 2011-10-25 05:31:39.000000000 +0200
++++ cmucl/src/code/misc.lisp 2012-01-31 21:46:49.441273068 +0100
+@@ -187,8 +187,10 @@
+
+ (defun lisp-implementation-version ()
+ "Returns a string describing the implementation version."
+- (format nil "~A (~X~A)" *lisp-implementation-version* c:byte-fasl-file-version
+- #+unicode _" Unicode" #-unicode ""))
++ (format nil "~X~A~A"
++ c:byte-fasl-file-version
++ #+unicode "-unicode" #-unicode ""
++ *lisp-implementation-version*))
+
+ (defun machine-instance ()
+ "Returns a string giving the name of the local machine."
diff --git a/dev-lisp/cmucl/files/21a-execstack-fixes.patch b/dev-lisp/cmucl/files/21a-execstack-fixes.patch
new file mode 100644
index 000000000000..034848d64a26
--- /dev/null
+++ b/dev-lisp/cmucl/files/21a-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..005eddefa58d
--- /dev/null
+++ b/dev-lisp/cmucl/metadata.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="person">
+<email>grozin@gentoo.org</email>
+<name>Andrey Grozin</name>
+</maintainer>
+<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="source">Include source code for CMUCL in installation</flag>
+</use>
+</pkgmetadata>
diff --git a/dev-lisp/common-lisp-controller/Manifest b/dev-lisp/common-lisp-controller/Manifest
new file mode 100644
index 000000000000..ff9d68c94b25
--- /dev/null
+++ b/dev-lisp/common-lisp-controller/Manifest
@@ -0,0 +1,10 @@
+AUX 4.27/lisp-config.lisp 32 SHA256 11e20d2fb562054a919113705e682e86c4967b8e33aaaa78d4b6ef39ee4ab527 SHA512 a5847d7d2d8fc385dea530d212de9f87db5a87774be57aa2f9fa0e32a2b53c77dd069afca1baba5b94265a64fb1b53163ad51653175a39d2546cdc1ba666b883 WHIRLPOOL c04cb5d72a0c6c59b4348b0c1a6a35c359d61e83596f93ab5d3fc29b7ce6819643a1e7df65ee661767dffba61f14e971e6084d34a9640e7ef0e9fafe84ee421b
+AUX 5.13/lisp-config.lisp 32 SHA256 11e20d2fb562054a919113705e682e86c4967b8e33aaaa78d4b6ef39ee4ab527 SHA512 a5847d7d2d8fc385dea530d212de9f87db5a87774be57aa2f9fa0e32a2b53c77dd069afca1baba5b94265a64fb1b53163ad51653175a39d2546cdc1ba666b883 WHIRLPOOL c04cb5d72a0c6c59b4348b0c1a6a35c359d61e83596f93ab5d3fc29b7ce6819643a1e7df65ee661767dffba61f14e971e6084d34a9640e7ef0e9fafe84ee421b
+AUX README.Gentoo 989 SHA256 603a4f938f88be364775a5ae9b72dac3d291a5077038a69d29a64b0b2d08c802 SHA512 f3ba1358242e6308f1df25d0480c0524e0dda9b154c329fb897c7b03c39048800f8d4b4e5692a1aececc0508414bfa999cccae0066468d11fac9e8a6a1d7bfbe WHIRLPOOL d1562bfb23e1fc2de89329201dd3afa5436d1570bfad5d9f6df58c1b3bfc093217509e32a8de16507a362f1bb7391b73338ee274b42d9460f57dda5414ab5124
+DIST common-lisp-controller_4.27.tar.gz 27636 SHA256 e4576c018e136ae34dfaf163cd20c3fc000b4a7ac716a53bde6268700a515082 SHA512 afba310bf525fb40f98a6bd67747647d105080667a3ebef883e19ffc60186bdfc7b937c2efe7535e3daa08503d8079d69453264fe8124f1b9a4a55e6303fe1b3 WHIRLPOOL d30ec6261cadd4235bebbc9d87493cb7a8ffb76027f3913f07af2ee0a047881b253e6816ad1309ff407462d37e4b804ba5470cee1888339e10668b18d0a79204
+DIST common-lisp-controller_5.13.tar.gz 30846 SHA256 ec2e9c6fa566b2d5f18d2823e48e54834392ca8c76e677047f03d5d940e40249 SHA512 11a6e2b7a3ca6846c8b88ee3808ae4e01c269dce8eb4293e57bf061a6c74786fe8bdff0f11c3db5c8ac60e3ba7a1e74222f9ab1418da114b6ece2fa6f23464e2 WHIRLPOOL 2211168a7cf0198cec689caf3fd07dc2a1d536bbb1005287abae9e8d1e135754a38980aef220696e175805aa64a8d5dd8b8a874c7bd9b76029bac62cf175357e
+EBUILD common-lisp-controller-4.27.ebuild 2639 SHA256 62f2435514bf8481f91097463c9ad025cc243e88cc3917591bce80f3046c57fb SHA512 ed86fe9ae84f2c2b10d416826d95b40d009c9968a3b394b59e75b5e23df1d2316d8406de9fc3b5ba3da6fdc4ac35e34a59d587d32c69e8de1238fdbda105370b WHIRLPOOL cf0d0dbab39ef51cde6d2532a3e1c0297bb854883466ba8f0fdb0dc1a9f9d4e749ffa46301dd6cfdcf9cfa1efa62b0671aaffca47f861a59dea039a41f5de629
+EBUILD common-lisp-controller-5.13-r1.ebuild 2742 SHA256 13145b5bbacbef84c5944290b41ce1cccbd6eaa1b2c715eed071db56cc0e3394 SHA512 7eec94f1f8f286f6dd5fa22953f069cb841c11e52efd6a0454db72635d87d7ea2a8bc41cd93b0081db7b3a0147cf766f4421fc0e7436d479c7af02c17991df6e WHIRLPOOL ce821f71d511093d524d77bbda8a6e514af52cd77ee509709846b02447a6826d60fc226b1c1f6a75dd74ddcb10a849602efd8a073fd0744bcd00b53a91bbc9c3
+MISC ChangeLog 2642 SHA256 57f91935cf055868a1cbc5dcb01f699f49519b784f3e0450b8f3fdbd390e5dd8 SHA512 a86d68817b9fd2608caeda90fd8c8b6942d2d90b1c005873017730015ada711bf1fb84ba8ffebf78f28ff654589ef7d7a45db8ef7978b7cc6a8da7d4b061e549 WHIRLPOOL 1566176734083f3553fc99289c94bc1927ebacff5581ca997edb1f39a9957c7193593bc1b3a9d4b727a279a307d46142d74826bb18f4fcc3ce99800eed2239fb
+MISC ChangeLog-2015 7617 SHA256 63fe56ac2ac7f16df25c5896b091d8ea4d264c7af8a9d7024931a15f9d87f212 SHA512 e9de4369446176bfeea41d7fe8666b245d79da360da6d8643b2fb9c0edeca43a4c9ba311a006ee035b3cf56b42f5a7a256b33da20427253827d70eaebea5149f WHIRLPOOL e5a08db2826730ec48c1eaa7ec3ea39d2c0ee6632a7dc54275cae4e976dae5daca7eb32d0657e8ce9d6b8c5879a629873fc18b89b2ec4dbee5ff66da40a89fba
+MISC metadata.xml 608 SHA256 b531ad58eadf3259b8426361591d009a5b547cff0e24ef566603f8d04f2a5c4c SHA512 1bd22fdf164cb86fbb6ef0da125f30f5a6092f844bc4ae527451b1614d1ed5a1d8e018beabba50fb49ec30aace5172426246428477062a599963264d548f53a0 WHIRLPOOL 01750ec256d7e0fbec301b9d735fe04c51b0a6e9ff6f65cb0230bdd06da85b071bb70ff961c3ca4dfb486d78002dca75b4c1c8ebbed45d3e5e327b1abd75ec65
diff --git a/dev-lisp/common-lisp-controller/common-lisp-controller-4.27.ebuild b/dev-lisp/common-lisp-controller/common-lisp-controller-4.27.ebuild
new file mode 100644
index 000000000000..1a7c3508f040
--- /dev/null
+++ b/dev-lisp/common-lisp-controller/common-lisp-controller-4.27.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+inherit eutils
+
+DESCRIPTION="Common Lisp Controller"
+HOMEPAGE="http://packages.debian.org/unstable/devel/common-lisp-controller"
+SRC_URI="mirror://gentoo/common-lisp-controller_${PV}.tar.gz"
+
+LICENSE="LLGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ~mips ppc ppc64 sparc x86"
+IUSE=""
+
+DEPEND="|| ( >=sys-apps/coreutils-8.15 app-misc/realpath )
+ >=dev-lisp/asdf-1.84
+ dev-lang/perl"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/${PN}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}/man"
+ ln -s clc-{,un}register-user-package.1
+ for i in unregister-common-lisp-implementation {,un}register-common-lisp-source; do
+ ln -s register-common-lisp-implementation.8 ${i}.8
+ done
+}
+
+src_install() {
+ dobin clc-register-user-package
+ dobin clc-unregister-user-package
+ dosbin register-common-lisp-implementation
+ dosbin register-common-lisp-source
+ dosbin unregister-common-lisp-implementation
+ dosbin unregister-common-lisp-source
+ insinto /usr/share/common-lisp/source/common-lisp-controller
+ doins common-lisp-controller.lisp
+ doins post-sysdef-install.lisp
+ doman man/*.[18]
+ insinto /etc
+ doins "${FILESDIR}/${PV}/lisp-config.lisp"
+ dodoc "${FILESDIR}/README.Gentoo"
+ dodoc DESIGN.txt
+}
+
+pkg_postinst() {
+ test -d /var/cache/common-lisp-controller \
+ || mkdir /var/cache/common-lisp-controller
+ chmod 1777 /var/cache/common-lisp-controller
+
+ # This code from ${S}/debian/postinst
+
+ for compiler in /usr/lib/common-lisp/bin/*.sh
+ do
+ if [ -f "${compiler}" -a -r "${compiler}" -a -x "${compiler}" ] ; then
+ i=${compiler##*/}
+ i=${i%.sh}
+ einfo ">>> Recompiling Common Lisp Controller for $i"
+ bash "$compiler" install-clc || true
+ einfo ">>> Done rebuilding"
+ fi
+ done
+
+ # This code from ${S}/debian/preinst
+
+ # cleanup fasl files:
+ ( find /usr/share/common-lisp/source/defsystem \
+ /usr/share/common-lisp/source/asdf \
+ /usr/share/common-lisp/source/common-lisp-controller -type f -not -name "*.lisp" -print0 \
+ | xargs --null rm --force 2> /dev/null ) &>/dev/null
+
+ # remove old autobuild files:
+# find /etc/common-lisp -name autobuild -print0 \
+# | xargs -0 rm 2> /dev/null || true
+# find /etc/common-lisp -type d -depth -print0 \
+# | xargs rmdir 2> /dev/null || true
+
+ # remove old fals files:
+ test -d /usr/lib/common-lisp-controller \
+ && rmdir --ignore-fail-on-non-empty /usr/lib/common-lisp-controller
+ for compiler in /usr/lib/common-lisp/bin/*.sh ; do
+ if [ -f "$compiler" -a -r "$compiler" ] ; then
+ i=${compiler##*/}
+ i=${i%.sh}
+ if [ -d "/usr/lib/common-lisp/${i}" ] ; then
+ rm -rf "/usr/lib/common-lisp/${i}"
+ fi
+ fi
+ done
+}
diff --git a/dev-lisp/common-lisp-controller/common-lisp-controller-5.13-r1.ebuild b/dev-lisp/common-lisp-controller/common-lisp-controller-5.13-r1.ebuild
new file mode 100644
index 000000000000..450a227f9929
--- /dev/null
+++ b/dev-lisp/common-lisp-controller/common-lisp-controller-5.13-r1.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="3"
+inherit eutils
+
+DESCRIPTION="Common Lisp Controller"
+HOMEPAGE="http://packages.debian.org/unstable/devel/common-lisp-controller"
+SRC_URI="mirror://gentoo/common-lisp-controller_${PV}.tar.gz"
+
+LICENSE="LLGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 ia64 ~mips ppc ppc64 sparc x86"
+IUSE=""
+
+DEPEND="|| ( >=sys-apps/coreutils-8.15 app-misc/realpath )
+ >=dev-lisp/asdf-1.84
+ dev-lang/perl"
+RDEPEND="${DEPEND}"
+
+S=${WORKDIR}/${PN}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}/man"
+ ln -s clc-{,un}register-user-package.1
+ for i in unregister-common-lisp-implementation {,un}register-common-lisp-source; do
+ ln -s register-common-lisp-implementation.8 ${i}.8
+ done
+}
+
+src_install() {
+ dobin clc-register-user-package
+ dobin clc-unregister-user-package
+ dosbin register-common-lisp-implementation
+ dosbin register-common-lisp-source
+ dosbin unregister-common-lisp-implementation
+ dosbin unregister-common-lisp-source
+
+ dosbin clc-update-customized-images
+ keepdir /etc/common-lisp/images
+
+ insinto /usr/share/common-lisp/source/common-lisp-controller
+ doins common-lisp-controller.lisp post-sysdef-install.lisp
+ doman man/*.[138]
+ insinto /etc
+ doins "${FILESDIR}/${PV}/lisp-config.lisp"
+ dodoc "${FILESDIR}/README.Gentoo"
+ dodoc DESIGN.txt debian/changelog
+}
+
+pkg_postinst() {
+ test -d /var/cache/common-lisp-controller \
+ || mkdir /var/cache/common-lisp-controller
+ chmod 1777 /var/cache/common-lisp-controller
+
+ # This code from ${S}/debian/postinst
+
+ for compiler in /usr/lib/common-lisp/bin/*.sh
+ do
+ if [ -f "${compiler}" -a -r "${compiler}" -a -x "${compiler}" ] ; then
+ i=${compiler##*/}
+ i=${i%.sh}
+ einfo ">>> Recompiling Common Lisp Controller for $i"
+ bash "$compiler" install-clc || true
+ einfo ">>> Done rebuilding"
+ fi
+ done
+
+ # This code from ${S}/debian/preinst
+
+ # cleanup fasl files:
+ ( find /usr/share/common-lisp/source/defsystem \
+ /usr/share/common-lisp/source/asdf \
+ /usr/share/common-lisp/source/common-lisp-controller -type f -not -name "*.lisp" -print0 \
+ | xargs --null rm --force 2> /dev/null ) &>/dev/null
+
+ # remove old autobuild files:
+# find /etc/common-lisp -name autobuild -print0 \
+# | xargs -0 rm 2> /dev/null || true
+# find /etc/common-lisp -type d -depth -print0 \
+# | xargs rmdir 2> /dev/null || true
+
+ # remove old fals files:
+ test -d /usr/lib/common-lisp-controller \
+ && rmdir --ignore-fail-on-non-empty /usr/lib/common-lisp-controller
+ for compiler in /usr/lib/common-lisp/bin/*.sh ; do
+ if [ -f "$compiler" -a -r "$compiler" ] ; then
+ i=${compiler##*/}
+ i=${i%.sh}
+ if [ -d "/usr/lib/common-lisp/${i}" ] ; then
+ rm -rf "/usr/lib/common-lisp/${i}"
+ fi
+ fi
+ done
+}
diff --git a/dev-lisp/common-lisp-controller/files/4.27/lisp-config.lisp b/dev-lisp/common-lisp-controller/files/4.27/lisp-config.lisp
new file mode 100644
index 000000000000..a6d36ce22005
--- /dev/null
+++ b/dev-lisp/common-lisp-controller/files/4.27/lisp-config.lisp
@@ -0,0 +1,3 @@
+
+(in-package common-lisp-user)
+
diff --git a/dev-lisp/common-lisp-controller/files/5.13/lisp-config.lisp b/dev-lisp/common-lisp-controller/files/5.13/lisp-config.lisp
new file mode 100644
index 000000000000..a6d36ce22005
--- /dev/null
+++ b/dev-lisp/common-lisp-controller/files/5.13/lisp-config.lisp
@@ -0,0 +1,3 @@
+
+(in-package common-lisp-user)
+
diff --git a/dev-lisp/common-lisp-controller/files/README.Gentoo b/dev-lisp/common-lisp-controller/files/README.Gentoo
new file mode 100644
index 000000000000..adaa56315a4f
--- /dev/null
+++ b/dev-lisp/common-lisp-controller/files/README.Gentoo
@@ -0,0 +1,27 @@
+ -*-outline-*-
+
+* Common Lisp Controller 4.x and 5.x
+
+With version 4.x and 5.x of the Debian Common Lisp Controller, the
+design of the controller was simplified so that source was compiled
+into /var/cache/, per user, on demand (ie. when you evaluate (require
+:foo) at the REPL).
+
+* Common Lisp Controller 3.x
+
+** IMPORTANT
+
+The Common Lisp Controller (CLC) in Gentoo GNU/Linux is a modified
+version of the original CLC sources from the Debian Project. Do not
+send bug reports to the Debian Project -- always send bug reports to
+http://bugs.gentoo.org.
+
+** NOTES
+
+If you are used to the CLC in Debian, please note that the Gentoo CLC
+does not require an Internet super-server such as inetd or xinetd in
+order to function. The original CLC implementation's clc-send-command
+has been replaced with a shell script which implements the same
+interface, but bypasses clc-build-daemon entirely.
+
+-- Matthew Kennedy <mkennedy@gentoo.org>
diff --git a/dev-lisp/common-lisp-controller/metadata.xml b/dev-lisp/common-lisp-controller/metadata.xml
new file mode 100644
index 000000000000..9b129ff98209
--- /dev/null
+++ b/dev-lisp/common-lisp-controller/metadata.xml
@@ -0,0 +1,14 @@
+<?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>
+The Common Lisp Controller was originally used in the Debian project. The Common
+Lisp Contoller lets you install and manage common lisp sources and compilers.
+It creates a user-specific cache of compiled objects. When a library or an
+implementation is upgraded all compiled objects in the cache are flushed.
+</longdescription>
+</pkgmetadata>
diff --git a/dev-lisp/ecls/Manifest b/dev-lisp/ecls/Manifest
new file mode 100644
index 000000000000..df0a18befce6
--- /dev/null
+++ b/dev-lisp/ecls/Manifest
@@ -0,0 +1,23 @@
+AUX 13.5.1-gc74.patch 1985 SHA256 c624a77a6a74e2d3f1907ed8459944f8bcd31413cf577b78ce415d8ce7088bf3 SHA512 59c5e23773273d84f896373d58d57c251644130a6da8d8a8bcbf7d2a56de1e58339bbd9937806aa054b0334489ff4670dc11e5005f6f86182802d684d86c6f3f WHIRLPOOL 089668cf750a8b8b305e78bb5b3d74b6ba5a10e8a9aa13aedf1a3138eaec7a30143e38bd3b0bac5dfe5f9a96b779a600abd3b8f945e9485bcfbcfb14b1928db9
+AUX 13.5.1-headers-gentoo.patch 365 SHA256 44a18f24b10dc6d8621d8557cc14faf1585ca77fd78b67b8449b789562199d46 SHA512 e3e8c2b871420bf35b0e887b291203f882818e688392f99f22d18dc6da0710d23d38d2f4a02a92bf9a1eda2c3b7fd05b0e4d57d7e885896369ed89c10b0730ad WHIRLPOOL 67b518bfb56eba71ad6f93c9ec1040a31d2accbd8d5489633efd5d9a6eb4a9331e8ba275f7887e083b3970de92433576a4200944d58944dbf4f175f580da3628
+AUX 15.3.7-headers-gentoo.patch 365 SHA256 44a18f24b10dc6d8621d8557cc14faf1585ca77fd78b67b8449b789562199d46 SHA512 e3e8c2b871420bf35b0e887b291203f882818e688392f99f22d18dc6da0710d23d38d2f4a02a92bf9a1eda2c3b7fd05b0e4d57d7e885896369ed89c10b0730ad WHIRLPOOL 67b518bfb56eba71ad6f93c9ec1040a31d2accbd8d5489633efd5d9a6eb4a9331e8ba275f7887e083b3970de92433576a4200944d58944dbf4f175f580da3628
+AUX 16.0.0-headers-gentoo.patch 396 SHA256 bae118e0d3df944d80ebd0e2555bca5a71ac5b5651e9bd2c1f9602d0c52a92e2 SHA512 df7b1672b5db900c1f9bc5f0d3090d92f95d16cba61fabdc99eb02da66854c06c1cf601fc5e8d41b9e6cc266bf4b4dd0f13e8d6b5c5b0458c4a1f1593cc1688c WHIRLPOOL e33f1a8476d687bff57532a8750c4c973bd1158880230c916f6b6d458f7c54ee5d079df9fa04632d1560504f6588798aacd10509f9123bfc2e6074be1d1d227d
+AUX 16.1.2-headers-gentoo.patch 396 SHA256 879ae6e2383066a9015123c9bc367e160b4e82559edc1231a3d81a0bfb168eab SHA512 a5983f1fbaa3b0edadbc2497cc2e19c4d66bb17b3db67417d544182cdb10f34d864aa056ca98d0f5340a8e094fb9578580a74f10e997485927b25252f9dba6d6 WHIRLPOOL 8fe22f96b480cf26baf4094e83fb431e1edf35010df544bdb16d4b0e81705b496242a624a6945087cae889898064c6438093bbc6ad0dca63307d677f58fe0926
+AUX 16.1.3-build.patch 341 SHA256 3ce01a92682ce9f6f97182e168a7a34bc26ae3a6baffcea7af8417b8b2a9b954 SHA512 0af8f0704e79197a4d7857ae11f20f0086f2e1c3d2578ec613c6ce5df742e35b9676399d8f724528781a530426425a977646ec75b317f01609d17d3a98b04ef4 WHIRLPOOL c9279e4005a363d5dbfaba04e43698a109537ad2da630dd7dc732430e004e8f93671c73b24d88fada05a10e92b09575ec5e144d96c40a9768f505a9145a61dd2
+AUX 16.1.3-headers-gentoo.patch 446 SHA256 4782b1f00a7d5e405491b1ac85ad8895949f6f7e7f50db98c09ebe5e29434c11 SHA512 a58b39deb9f8577da66216fd6902803019751171e4415149a89bdb72f13a006e5f6d9bede2312521162a0895340c1a1ce756b09bc0a18dccceca3e4c0950a7cb WHIRLPOOL 03a28908489d8b189fb539fd8cf0bacfc410ec10650b3cad1d943728db0218b6dad3e9f9c1f1c703322372ba3c78b33988cf28df9d1f2fc413d0f6fbf5ee05ca
+AUX README.Gentoo 632 SHA256 657813b5715f3b113e73435cabf4f503cf1786de2308ee0b3c0094c2862fc510 SHA512 df0640792271d01f84437645fe8854740b17dd349e36b76711c55f6f4fefa7d2fd810176ece2a25d8cab88192f31a6df38e67dfcb7992857e5d038ad74b11c8a WHIRLPOOL fc2e361f5c944180914065fe2db0fc35e54760a7d9fac92e535f019532a77d6bed81c0f633579ed3ba06d4fa4fe87ca82485b293f1ded07ed0208484fc8c36af
+DIST ecl-13.5.1.tgz 9401163 SHA256 f91c57ce065fe9748bc8104e191e4b2dcfe854d634315fe7800dd0a613472ca2 SHA512 a09f8b824aa78e461d700eefb1a8b68b876e15d49124a397e0b5b58ad73b80f818133a7b8e48ddb83505eea2f9c5fb024de8701b527524004e336e456eb07c84 WHIRLPOOL def6de6444430e45bfff29c0716a23869e3455ba9b1cd9bfc1f02ef5c79c83df5b2280b8bada28acb1e742cdbe5c819970273386333d7c7c7c4fb48464dc6a2b
+DIST ecl-15.3.7.tgz 8755180 SHA256 2dc6ffbbf1e0a7b1323d49a991ba1f005127ca3e153651d91ba9e65bdaec948f SHA512 50a28ed551e507bee526ae44a12da2524c1feedf07cf8ca99650e37ecd7b99c4e2f2758c077979b174d303ffdcd9325637b708a29d14d8c3851c7e65d4ea026c WHIRLPOOL 57b0382b0e3dc7cd601b835a371c9ec6658911b1471cb5bfeee6144d22500e8ca55268f2a001c49d446e9be1a3771ca12348f2565f68ec83f1660c4295545a06
+DIST ecl-16.0.0.tgz 8009304 SHA256 343ed4c3e4906562757a6039b85ce16d33dd5e8001d74004936795983e3af033 SHA512 15e4c604901dae1037e54ab1739d45a0f5f05decf6e72ba60d8b6b53e549021e93b811b809c4a72f423a20e9f9770969910d35edd5f184757293f98f89024c3a WHIRLPOOL 1af13ce81017bdad0ad6ee235beea9cc3e79d4b09b3863911a8092fd69a8d15f9c6eb75603c62d291450001d900cc1074c8882beb4c6da011b368b2a7f8fe7b5
+DIST ecl-16.1.2.tgz 7449461 SHA256 2d482b1a0a4fbd5d881434517032279d808cb6405e22dd91ef6d733534464b99 SHA512 f204494907226a12b4ecabc39d555f27c1ce5cba515fccd187d9b7ee584d86278558d6a26b2bbec98bce582239f21ac00c2d854f594c6b1f21e1636793845926 WHIRLPOOL 1590695d82c274d06806bffdadb872fba9b870efd19e234fd265b07911cd0bdfe456ddc16e63f9fd707559750a0373739627d440f91567084ee9e0c72b640f40
+DIST ecl-16.1.3.tgz 7459212 SHA256 76a585c616e8fa83a6b7209325a309da5bc0ca68e0658f396f49955638111254 SHA512 5d743f422f6bc24671abf4c739cde8273d08f056906a1ef8aed5145c703b6d52c7fa4b5e0be8c125f32240c20ce053007786bb3ae81cc34d47791f6fae0819c1 WHIRLPOOL 0e65b49e9a7fcf443aa3fb81766efae7f49ec7a8e30779a39279160da057b3a83d7649bb226045ee4a31e0658d85d7d1214799499f297399594d931091288b96
+EBUILD ecls-13.5.1-r1.ebuild 2231 SHA256 77020c9e2e47001abceeb5666a3f76720006ba4df603e5d1a0f311c0c657c4c8 SHA512 8542ca9bad0122153931dd949006928d63475669b81c3a17f148c3be1ffe8874586965c0a43fa294b492ff210bdae7f302aa92d2cca9e3fef19a6ceef91c0ed7 WHIRLPOOL c3aff50138b70cc4964188b25d3f5f79a33941a0dfb895a7e4f8ae05c6c2e3dc2524c4361e7c44cde912e9fac435303a5ed54f79e5a8272500749b33e8781514
+EBUILD ecls-15.3.7.ebuild 2319 SHA256 e45d9f1a6fd81210ffe9e55860acd73fbfed4155e91904462de5c70fdfa88762 SHA512 6b007bafa882658985e892b61e8f428df6953638f83607d0559f2c92417762ce1930390dd2cc1b5ad880f5f922e59b0dd7f5d4feb767122dcf4f915861ebb65c WHIRLPOOL 5fa889f1cca246045bcf992004f0722f08b359039a5fdae6946856f198cde2ff0896bb814fbcf4bb33a229ea283fb8d33cbd9664e64d9efce804be415dd5d541
+EBUILD ecls-16.0.0-r1.ebuild 2370 SHA256 e232f944162dfc50904271c3bda29772c21b3d8a4ec7be20e25b8fa380020f86 SHA512 15b9f559c340b76ad2771d942091b0913dce1b24f59f9ef111dd3300dda39c6a6dca139a7f466ff2052d4615d30ea6398c312373ec8d5e828be4ad8a38d02dec WHIRLPOOL d0345c363b819c9a0f8a0a113edf884f91fa23bfb6802840032518e18fbc835c29f9fef5efcf4eea62f2b0d3e2344ad0d947aa680a618694e93a302f2fca79fc
+EBUILD ecls-16.0.0.ebuild 2346 SHA256 d7e1c0dda0ba92e3cab50f25b3eac8b5c657f47c99b093ef44aef4ad9d031277 SHA512 724a13280895cf103744fe3afc3f61fa7371dd01c65d9292a373b6c729b0fe0ffd460964f8d42d9ca1a99b6caf6c017dda2dded8ff2727fbb2fb8b3d3954dd9a WHIRLPOOL 080960fb6dee2a85952ff029bf59136aee755cbf9e85424968608526322b1f161adb02536dd4219d9f0fa58e7baae594e88539a483d3bf94b77fcb0d6cb5bc73
+EBUILD ecls-16.1.2-r1.ebuild 2377 SHA256 ceb60a28e294e40595706f786cc3d9b9ce63b42fab9fa7628cd97be942a84369 SHA512 b8e6b4d2a51091e6790542beb2e9c823005ecf834c8575410e682ddb3cf977c645dc4d9b4d97ff63d7fce1b0ba431cf41f5813bccc338110fefcffe752425fbc WHIRLPOOL 0133d9610ccfeb4003e072106d8d302539b2fa98ce7c1abddfe160e4a06c3459a480e161fd301ca594a7635c47a0a8b6748e6d8c457d20c0be9799b5db90a22c
+EBUILD ecls-16.1.2.ebuild 2353 SHA256 877daeca819eb78bb65ceafbf9eb44ac632a321e29a7c2ab0debfc46657ef331 SHA512 1bcc9a83f82f23acd4a533b7b153af4be25d966af6ceb9d38292106ba9bdc9fbf6247a572734353a0796e328a31087f79dd1b2b084a3553e6ac485f28191b058 WHIRLPOOL c002b115aa7f3cd129e49e9ffd3643dd516205d59c8983d4745dfc1b0e26fa5b868a18d33809dd8f9f1f4b47d98bf15ddecfa9619f2a3e9a7fe488a2702a85a9
+EBUILD ecls-16.1.3.ebuild 2418 SHA256 a5cdb2a257b5a5f9f7b2e7d46a4a549dd172d803bed41a376850d577aa8e418f SHA512 e4ba51270ce279f09fc29574435ddee475d76c4d66b4a57d51a2235eb32da7aae1fbeadf946dcc1af6b67fbde6276b33a82d155ce38ae1213a2aadb55cf7519a WHIRLPOOL d000cc86c5df0d61558021c7b80b9e43b525fbee798308b874e097d2017185ac673828e57e58ccd213a5951558440b1bba11d0027f96d367162afd1ed25fe0ea
+MISC ChangeLog 4432 SHA256 68e99113249fd3951b8ac2a1afe47578642a5ea7a1a298db82a73d80bd916ad5 SHA512 c2ed80fd6e4effb3e65227f1d76d5d6d3435451d0a5a51cb86c7975a11381faed2b3d7c123d071c2335a2aba85c523a63c96d4bfda6c47e38f1f04ed74a931d3 WHIRLPOOL 8cca0313cfc18bf387d07655cbc0cf6fdbf4e145d655ea4b056062ee93dc5da9655b25e9332cd2bdbb69cb9149d104e75cfc0c9dc644026a7608a33d9bbe8f71
+MISC ChangeLog-2015 10396 SHA256 c3e2a51b8d2ebc26894e3a4d009d33401ae64acffc0050e459344e7072f3f842 SHA512 f7348a628758b45d156b25d9d674457f95fc7d827f5e2732dc1472562e44f8c00750381e935a3b76ec1462ce99ccd9f094938e8e5b1b2e4e4348c91673be158e WHIRLPOOL be7a06f0e8f057cf28397029912f494e74948ce8c519ccbb5574d92d8b4cabf7656677636fc93ef75d400a5107f25bc433078d82b3503f91eacddfdeddb33837
+MISC metadata.xml 901 SHA256 f05557b754876a7c5bed76b3cfdf77f54abaa6a6e8d71b133a417b8fe596a60e SHA512 15403f25533646601eb454946599d1d97353038286df0d075f923b598fe44047e525745a33f7e3dbc15fee717d6311abbe546371ecbc4c9df347771dd5c007e9 WHIRLPOOL 512e360f7ad9916fc9a79f4526a141d88811ed20b22b6abbd7b3fa78c198a8abc27cccc89445027fe883e2ed5e62b58b5541f5090316dd1c5a887d65c133eebd
diff --git a/dev-lisp/ecls/ecls-13.5.1-r1.ebuild b/dev-lisp/ecls/ecls-13.5.1-r1.ebuild
new file mode 100644
index 000000000000..19c50b0e32be
--- /dev/null
+++ b/dev-lisp/ecls/ecls-13.5.1-r1.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+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="http://ecls.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tgz"
+
+LICENSE="BSD LGPL-2"
+SLOT="0/${PV}"
+KEYWORDS="amd64 ~ppc ~sparc x86"
+IUSE="debug emacs gengc precisegc cpu_flags_x86_sse +threads +unicode X"
+
+CDEPEND="dev-libs/gmp
+ virtual/libffi
+ >=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}
+
+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() {
+ epatch "${FILESDIR}"/${PV}-headers-gentoo.patch
+ # bug #496780
+ epatch "${FILESDIR}"/${PV}-gc74.patch
+ 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 \
+ --with-dffi \
+ $(use_enable gengc) \
+ $(use_enable precisegc) \
+ $(use_with debug debug-cflags) \
+ $(use_with cpu_flags_x86_sse sse) \
+ $(use_enable threads) \
+ $(use_with threads __thread) \
+ $(use_enable unicode) \
+ $(use_with X x) \
+ $(use_with X clx)
+}
+
+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 ANNOUNCEMENT Copyright
+ 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/ecls-15.3.7.ebuild b/dev-lisp/ecls/ecls-15.3.7.ebuild
new file mode 100644
index 000000000000..d8991988204d
--- /dev/null
+++ b/dev-lisp/ecls/ecls-15.3.7.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+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="http://ecls.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tgz"
+
+LICENSE="BSD LGPL-2"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+IUSE="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}
+
+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() {
+ epatch "${FILESDIR}"/${PV}-headers-gentoo.patch
+ 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_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) \
+ $(use_with X clx)
+}
+
+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 ANNOUNCEMENT Copyright
+ 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/ecls-16.0.0-r1.ebuild b/dev-lisp/ecls/ecls-16.0.0-r1.ebuild
new file mode 100644
index 000000000000..27b77ccde6c0
--- /dev/null
+++ b/dev-lisp/ecls/ecls-16.0.0-r1.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+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/files/${MY_P}.tgz"
+
+LICENSE="BSD LGPL-2"
+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}
+
+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() {
+ epatch "${FILESDIR}"/${PV}-headers-gentoo.patch
+ 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) \
+ $(use_with X clx)
+}
+
+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 CHANGELOG Copyright
+ 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/ecls-16.0.0.ebuild b/dev-lisp/ecls/ecls-16.0.0.ebuild
new file mode 100644
index 000000000000..93421df52b5a
--- /dev/null
+++ b/dev-lisp/ecls/ecls-16.0.0.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+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/files/${MY_P}.tgz"
+
+LICENSE="BSD LGPL-2"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+IUSE="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}
+
+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() {
+ epatch "${FILESDIR}"/${PV}-headers-gentoo.patch
+ 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_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) \
+ $(use_with X clx)
+}
+
+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 CHANGELOG Copyright
+ 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/ecls-16.1.2-r1.ebuild b/dev-lisp/ecls/ecls-16.1.2-r1.ebuild
new file mode 100644
index 000000000000..9184abfffb91
--- /dev/null
+++ b/dev-lisp/ecls/ecls-16.1.2-r1.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+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/files/release/${PV}/${MY_P}.tgz"
+
+LICENSE="BSD LGPL-2"
+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}
+
+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() {
+ epatch "${FILESDIR}"/${PV}-headers-gentoo.patch
+ 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) \
+ $(use_with X clx)
+}
+
+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/ecls-16.1.2.ebuild b/dev-lisp/ecls/ecls-16.1.2.ebuild
new file mode 100644
index 000000000000..2b621d2b361c
--- /dev/null
+++ b/dev-lisp/ecls/ecls-16.1.2.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+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/files/release/${PV}/${MY_P}.tgz"
+
+LICENSE="BSD LGPL-2"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+IUSE="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}
+
+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() {
+ epatch "${FILESDIR}"/${PV}-headers-gentoo.patch
+ 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_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) \
+ $(use_with X clx)
+}
+
+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/ecls-16.1.3.ebuild b/dev-lisp/ecls/ecls-16.1.3.ebuild
new file mode 100644
index 000000000000..129d07b53568
--- /dev/null
+++ b/dev-lisp/ecls/ecls-16.1.3.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+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 LGPL-2"
+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}
+
+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() {
+ epatch "${FILESDIR}"/${PV}-headers-gentoo.patch
+ epatch "${FILESDIR}"/${PV}-build.patch
+ 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) \
+ $(use_with X clx)
+}
+
+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/13.5.1-gc74.patch b/dev-lisp/ecls/files/13.5.1-gc74.patch
new file mode 100644
index 000000000000..a1069b214b4b
--- /dev/null
+++ b/dev-lisp/ecls/files/13.5.1-gc74.patch
@@ -0,0 +1,57 @@
+diff -r -U1 ecl-13.5.1.orig/src/aclocal.m4 ecl-13.5.1/src/aclocal.m4
+--- ecl-13.5.1.orig/src/aclocal.m4 2013-05-28 03:37:36.000000000 +0700
++++ ecl-13.5.1/src/aclocal.m4 2014-01-12 00:34:36.663129950 +0700
+@@ -942,2 +942,6 @@
+ fi
++ if test "${system_boehm}" = "yes"; then
++ AC_CHECK_LIB( [gc], [GC_set_start_callback],
++ [AC_DEFINE(HAVE_GC_SET_START_CALLBACK)], [] )
++ fi
+ AC_MSG_CHECKING( [whether we can use the existing Boehm-Weiser library] )
+diff -r -U1 ecl-13.5.1.orig/src/c/alloc_2.d ecl-13.5.1/src/c/alloc_2.d
+--- ecl-13.5.1.orig/src/c/alloc_2.d 2013-05-28 03:37:36.000000000 +0700
++++ ecl-13.5.1/src/c/alloc_2.d 2014-01-12 00:43:44.177106924 +0700
+@@ -33,2 +33,9 @@
+
++static void (*GC_old_start_callback)(void) = NULL;
++#ifdef HAVE_GC_START_CALLBACK
++extern void GC_set_start_callback(void *);
++extern void *GC_get_start_callback(void *);
++#else
++extern void *GC_start_call_back(void);
++#endif
+ static void gather_statistics();
+@@ -752,3 +759,2 @@
+ extern void (*GC_push_other_roots)();
+-extern void (*GC_start_call_back)();
+ static void (*old_GC_push_other_roots)();
+@@ -1092,3 +1098,9 @@
+ GC_push_other_roots = stacks_scanner;
++#ifdef HAVE_GC_SET_START_CALLBACK
++ GC_old_start_callback = GC_get_start_callback();
++ GC_set_start_callback(gather_statistics);
++#else
++ GC_old_start_callback = GC_start_call_back;
+ GC_start_call_back = (void (*)())gather_statistics;
++#endif
+ GC_java_finalization = 1;
+@@ -1200,3 +1212,3 @@
+ */
+-#if 1 /*GBC_BOEHM == 0*/
++#if GBC_BOEHM == 0
+ extern int GC_print_stats;
+@@ -1279,2 +1291,4 @@
+ }
++ if (GC_old_start_callback)
++ GC_old_start_callback();
+ }
+Только в ecl-13.5.1/src/c: alloc_2.d.orig
+diff -r -U1 ecl-13.5.1.orig/src/h/config.h.in ecl-13.5.1/src/h/config.h.in
+--- ecl-13.5.1.orig/src/h/config.h.in 2013-05-28 03:37:36.000000000 +0700
++++ ecl-13.5.1/src/h/config.h.in 2014-01-12 00:34:36.663129950 +0700
+@@ -310,2 +310,5 @@
+
++/* GC_set_start_callback */
++#define HAVE_GC_SET_START_CALLBACK
++
+ /*
diff --git a/dev-lisp/ecls/files/13.5.1-headers-gentoo.patch b/dev-lisp/ecls/files/13.5.1-headers-gentoo.patch
new file mode 100644
index 000000000000..958b948bac41
--- /dev/null
+++ b/dev-lisp/ecls/files/13.5.1-headers-gentoo.patch
@@ -0,0 +1,13 @@
+diff -r -U1 ecl-13.5.1.orig/src/h/object.h ecl-13.5.1/src/h/object.h
+--- ecl-13.5.1.orig/src/h/object.h 2013-05-28 03:37:36.000000000 +0700
++++ ecl-13.5.1/src/h/object.h 2013-05-29 19:23:34.000000000 +0700
+@@ -25,4 +25,9 @@
+
++#ifndef TRUE
+ #define TRUE 1 /* boolean true value */
++#endif
++
++#ifndef FALSE
+ #define FALSE 0 /* boolean false value */
++#endif
+
diff --git a/dev-lisp/ecls/files/15.3.7-headers-gentoo.patch b/dev-lisp/ecls/files/15.3.7-headers-gentoo.patch
new file mode 100644
index 000000000000..958b948bac41
--- /dev/null
+++ b/dev-lisp/ecls/files/15.3.7-headers-gentoo.patch
@@ -0,0 +1,13 @@
+diff -r -U1 ecl-13.5.1.orig/src/h/object.h ecl-13.5.1/src/h/object.h
+--- ecl-13.5.1.orig/src/h/object.h 2013-05-28 03:37:36.000000000 +0700
++++ ecl-13.5.1/src/h/object.h 2013-05-29 19:23:34.000000000 +0700
+@@ -25,4 +25,9 @@
+
++#ifndef TRUE
+ #define TRUE 1 /* boolean true value */
++#endif
++
++#ifndef FALSE
+ #define FALSE 0 /* boolean false value */
++#endif
+
diff --git a/dev-lisp/ecls/files/16.0.0-headers-gentoo.patch b/dev-lisp/ecls/files/16.0.0-headers-gentoo.patch
new file mode 100644
index 000000000000..1c08bc57b737
--- /dev/null
+++ b/dev-lisp/ecls/files/16.0.0-headers-gentoo.patch
@@ -0,0 +1,13 @@
+diff -r -U1 ecl-16.0.0.orig/src/h/object.h ecl-16.0.0/src/h/object.h
+--- ecl-16.0.0.orig/src/h/object.h 2015-08-24 12:41:27.000000000 +0600
++++ ecl-16.0.0/src/h/object.h 2015-08-29 12:04:58.249594669 +0600
+@@ -25,4 +25,9 @@
+
++#ifndef TRUE
+ #define TRUE 1 /* boolean true value */
++#endif
++
++#ifndef FALSE
+ #define FALSE 0 /* boolean false value */
++#endif
+
diff --git a/dev-lisp/ecls/files/16.1.2-headers-gentoo.patch b/dev-lisp/ecls/files/16.1.2-headers-gentoo.patch
new file mode 100644
index 000000000000..193822a8fae2
--- /dev/null
+++ b/dev-lisp/ecls/files/16.1.2-headers-gentoo.patch
@@ -0,0 +1,13 @@
+diff -r -U1 ecl-16.1.2.orig/src/h/object.h ecl-16.1.2/src/h/object.h
+--- ecl-16.1.2.orig/src/h/object.h 2016-02-25 08:06:19.000000000 +0100
++++ ecl-16.1.2/src/h/object.h 2016-02-29 12:46:56.846308964 +0100
+@@ -27,4 +27,9 @@
+
++#ifndef TRUE
+ #define TRUE 1 /* boolean true value */
++#endif
++
++#ifndef FALSE
+ #define FALSE 0 /* boolean false value */
++#endif
+
diff --git a/dev-lisp/ecls/files/16.1.3-build.patch b/dev-lisp/ecls/files/16.1.3-build.patch
new file mode 100644
index 000000000000..ff7d6cd74d8b
--- /dev/null
+++ b/dev-lisp/ecls/files/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/16.1.3-headers-gentoo.patch b/dev-lisp/ecls/files/16.1.3-headers-gentoo.patch
new file mode 100644
index 000000000000..10802aa48803
--- /dev/null
+++ b/dev-lisp/ecls/files/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/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/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/Manifest b/dev-lisp/flexi-streams/Manifest
new file mode 100644
index 000000000000..d1e81ad6bbc9
--- /dev/null
+++ b/dev-lisp/flexi-streams/Manifest
@@ -0,0 +1,4 @@
+DIST flexi-streams-1.0.16.tar.gz 135698 SHA256 bcaaa51d4f8e176f3a532d54c9bf7b6f031b2a18761e0fa9888395dc799660b9 SHA512 66b7c5231616c7a6095a52d6c679717795c9308e33487536a5e1b7f0d25f26aacd2579a76c351f8e16a967a0611456cbc97b3824f4d9cf4875b8e48b0c4f7c78 WHIRLPOOL 0e5bfdc0b2fb00de56cf0cd3d7feac06ce68c0476969249a5c1fec03918da81c2596d4af2d3aa945e7ccaf1464543fb7aa2d23abd187b2f6fa5dba24fc266178
+EBUILD flexi-streams-1.0.16.ebuild 596 SHA256 c708cd34b24eb1afe596ff2e0d2b3f2a7c81b8f0d7c3fb624771b927670363ae SHA512 d77a4fb7ee26b503719c7cfbb17c56174d7a1942379546f9103136e5a5519b16e958dda0c67535d2bdbb01b13da3ac44ad6d8053cc331d1e1b7454f8b5f34028 WHIRLPOOL 88d036f8531644a568c2fff09cb67e24e445adf86ab15e3ac90fb0fe6a29d21422ba102a3d4504e62a1781ee0121b499e3124f0a0945282a235932961b54c15d
+MISC ChangeLog 1452 SHA256 09b89830a8b4b491955e76f267dd7f24374fed3ab3f03c53c10ba80edc12b68d SHA512 3e9dcf8c9ca4ec2cf842501b57c42acaaca12dee9793ce93ff984d2d52c2186fd7eea64ffb182e3c26616cabccc7f9dc4d355e6ce16c19bac627ed018d90096c WHIRLPOOL 5d1ffcf959a2b7106ce72f176a0ff0e385fa521b0550d08583fc24279f77469b1a9340515eb86417e29b58c8b751dd53875d6be298b762604325c98ac1908725
+MISC metadata.xml 1216 SHA256 cb4f3bbf8b0d8428e187b7a84777d2091e5d35c13087f5060972c7f7f31b0a66 SHA512 5c5e716f6358982fd4d711ae5355d7c3c97cca5a2cea2261e05b271c2b7769e9ff6dec0b41f23b05e98aad169535afd526e4fc179a24411f1f28121381946019 WHIRLPOOL 23932f6927c9ec4c80506952e11fd54f68ba7fed9c0b079312cbb75b3019383125f46d5bdfb8a195458f88e45c947c01935ade2fdbfb174b65d09292d54ab234
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/metadata.xml b/dev-lisp/flexi-streams/metadata.xml
new file mode 100644
index 000000000000..245d1e7eb09a
--- /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/Manifest b/dev-lisp/gcl/Manifest
new file mode 100644
index 000000000000..dbd7ccacac0a
--- /dev/null
+++ b/dev-lisp/gcl/Manifest
@@ -0,0 +1,18 @@
+AUX 64gcl-gentoo.el 184 SHA256 97842389c5509c45ebaf7020a72410ec6fc59ebcf539c782d4247b7252e8c633 SHA512 06749b0c4ec7a34a7fdbb591d40106fe00a794e6db0950cc7187293d4c495d5c908235a2ba38236132618442924a7feae08496356fcd4b0139477cd89121e3cf WHIRLPOOL e0d266f96e5383f1e231dafabe6ba422f40a149a9f94b66b81685109ea66f18692525715c1faebd3eb1c49fe4efcd7de677b1268cb83af996759972c3fdcacdb
+AUX bootstrap-gcl 336 SHA256 4d9f19e461b5bfc3e570b6812cf35dcf8ae98788b7eb4d4e04368a2f801f4244 SHA512 481a9ffa1102534c36a1a2084dda4b1ecd822888fafac4e6f0691b73ce0cc60e5328f628998ccef38bf75a26f3b79b24adf59562dc7cad23c3033a22d9593d0f WHIRLPOOL 9981d0e045775de0188ff75d82f8d0a78364323ffacfa690fa516ea95fbac95d69fc7ce657bbc020f8fed264103b9b3c32f643b992f6b5408b3a0a782bc4ffc9
+AUX gcl-2.6.12-gcc5.patch 469 SHA256 b0fd919c6316633c24226f19d5cd012943f18e828aa1de0e1771a28b81d54b02 SHA512 b2dffb7a8b3f89ab8d18d6d23dfc756e9e70921d036f9d7b2445351b9e3b67bdecff286b04f8dcb5f30b5199635cd44f3f3a28cde8ec150911fd445d172c70fb WHIRLPOOL 445ba9155ad514a76f878776c006c244e16844f3325e0f0b6831d5d2c31897bc16bea6a12816274664dfae27aa1c940c320756e479b9c7639a8d4198b736cc78
+AUX gcl-gmp-6.patch 363 SHA256 2a2929e93e498f9537c6575d32cba0b778f278527486d97ee006e5b697626ce6 SHA512 cc578a915d154e94cf992f79e5a0130d294f506da13315bef060e19b08af3390942b2ebd5b4989acb37582315f3396fe605b56e9e441755728f54cf693be0ef1 WHIRLPOOL b656ae78fbd3819cc7b54922a64e6410ef70d96e990a259b56fb43588e4cceb6970289a9c196f9f29e3275db6b8c31b718c3ce6096e662063bf18d3a21b7395f
+AUX gcl-readline-6.3.patch 656 SHA256 ef91a0c7743d4773a285d4e61e264ea3d94d6d74ca4c1a17b7b6934a755eff75 SHA512 d88e59a0082d01b7ae8bca1dd9870400b7e0b0e39eeb4fdce564bccfd615fadee6235c3cf1e3ef8074f74c17188144c93380cd499b215b5025304b0b2d272501 WHIRLPOOL 111e3be4bb82c2bfb8f2b7ed3ae6f1a36a90c63029000a4f5a1edf304911a3626d4adab6a231c17dc0020613c1892f30b711cfd9baf1c9eedb6f2cf727189cdd
+AUX gcl-tcl-8.6.patch 3331 SHA256 1a2a267b2bf993dde577686190ef3757c7a25f69bbe88811385074de987c8338 SHA512 108835fd285d6198935c6c1d20c96bc405f3c47dec66fc30201e01cd163734933cc0107b9a9035f728a594f1280a0c1bbfde2087ba5149d46c3b55ca066e3ca4 WHIRLPOOL 5a4cb6c43769de29def6b95a0a72fa4e9fc226e9f0827f5460a46f8bf74f9bbe60b7d57c4034149e4035f9d5f17925ea1b81e47343f8ae2866216d134c299ca6
+DIST gcl-2.6.10-fedora.tar.bz2 695718 SHA256 629da9f8288585d088017140da96de09d82a12ed0cf2f139f4fe9d9b5957ad96 SHA512 3e0ffaec859783443a8941a29302c7a17c9538ef2177d449ad34e24292c174de7bb8760a6d327e08f012773032f0d0a5230b79c7e4b4f5bad8354bf10a28af4c WHIRLPOOL 35dd9239ac27f99b98e8b1eb822f39e18b0ea1edcb991ff7b1b441408475148ac684a96ae2df6ea83e979297269c10520fdbdbf4f5b4377a26e7b071d6c26fd1
+DIST gcl-2.6.10.tar.gz 5490689 SHA256 79a1fb2f92b5e86f24988448db3e34116ab6ef7c93ad839848edd01ad06651ef SHA512 bbaacce712f15130550bcdf7e53edf4df9ab955e84ec701087034115df1c1e657d956853d5db85d7e88709981f9b7fd4c9df7acf6c8588a8ccf5f05e4e666aed WHIRLPOOL 8253507a02bd3adcf313e359fb346b19a2cc207c5a137b461addc117f00516cdd6ca28e0a7b5c0f3a48b72ba8f0bf2a3d6098297875db3281c0ef53ece474dfa
+DIST gcl-2.6.11-fedora.tar.bz2 680715 SHA256 cda649cf9049838bb8c69a02ab867b71c4944dad73c8cd5ca873e72c5efd2421 SHA512 a38e92571c0558aebe1f36613afb6da29338b9c1b779df2db6b6e5ad5b79758523a2036dc4d29d192a19a1a71103c42022f165e1a138e469338afcc117599eb9 WHIRLPOOL 01437336dfa1d92517a5de46cf6948e040b6b0a8eca309241e7f061cf62417ae26d4e8fa783b3eae56436187c3dab39463fbec968a543e53bff310e6b70c2213
+DIST gcl-2.6.11.tar.gz 7047082 SHA256 44058f029a631e8ebae38c6c5a25e2f986b5bfdd8e6283b32d7e56723efafb9c SHA512 0cec0e0e138ec13bccd5e52b2f803ccc6be5afc3c284c26550abb4392488fd8cf0085d5c3a99d9a6aba24dc2f7160341c98741003d8d09728e99da1cd909b325 WHIRLPOOL 610c8fb062381f66badc5e1982b502b891467041c21d695c228f1ff028e5570f96fd57cf620f92466bce3369263a493b8e3bf855cd76d389a6a617f65f6e4e59
+DIST gcl-2.6.12-fedora.tar.bz2 680471 SHA256 81108db301666552c2172a21b9b2f6e0d0c0594e79f8c2b0bf05d72152e6e53c SHA512 7640f8370754c889e2db9d047c4476195f949f4d97eafc7ef81761c1a548e24125d6d93381227b55f1840c3d127770995e88bf66f83c6952e121f5fa004e7f1a WHIRLPOOL bdaa561d275b3cc966f891653e61aa35a971b3de572bf7f9864cf4af0deda6d713f91f883cc445976c02e2fce0dd849c013d275a409082bedd82a8fc796833e1
+DIST gcl-2.6.12.tar.gz 7031837 SHA256 8eb8491bccafc49683599e92a30ba36db0825dd4bb138a104cb662b9b0d090e8 SHA512 e82b5bdded6f846de4ea35a83bc8294043ba6d4fe03ff421f8753e78add1e5e87124782f672cd38ad89bbec1ca7c5ff69fe2621be1552b209516b58b6c97fd20 WHIRLPOOL 30ef1bb4593ce2542352dd312bbe5427fb0ddabcc9734998976bcd556971c727275d7ebb1774d06f7ffb46da058a06b971b159cc431b763ae1a4ee9d38bc0a45
+EBUILD gcl-2.6.10.ebuild 3915 SHA256 c3e7002e7904be372cb5ed73bb5570957d2b6ccca9529b10adaf2fc02614d97b SHA512 fde90b244bbd20d2e5516637a6752cc1f1b5252dc4c582f4ee0e8ab782acb352ff0c88baf1eb029e992b03e88fccd6c6c9dd8469e52de5b457c24e82775aa348 WHIRLPOOL a558477b66efdb91127be1c9adaf13ad1a7dc75dd1abde096481f8ed8ac2181fa8ca811b597e49d285e652d961ad54989f4414b17632addbac57a9f3d3dbac97
+EBUILD gcl-2.6.11.ebuild 3756 SHA256 b11ec9cc2ee7090b6dc1d6ac1a5f8b3e0f3b62f536c0cf3c1286e8238bc0a48f SHA512 33b245fc258040e5307bb5af1ca6ac0e372ccbe1c128d29be56167a3257e5266f78aed48f30eeb7d61e880dbbccc888fd659d4d39626e7d7b701062913cca6fc WHIRLPOOL 8d0d9982ff2c841c99d3f132629b61bf3d8e9b944b58211a74c25f69dd7f0523314ca985922a2277beba9db63a895b3021930f50f6aa13a91da6cf31ccbe0b3a
+EBUILD gcl-2.6.12.ebuild 3772 SHA256 f3fe9dad209185448d2928a073798c902e94f581fb26a149ee68326da3afcea2 SHA512 753ad34500e1dbd4d9123728ba0613912e3e8f96b655e79499563d9e7082e2e5417dd063bc1afe38746508bc7b69c28a783063056e58648706ae7472c244897d WHIRLPOOL 9625a9bb9ad279095a0592bc6ef3c071ba796e653f31a34a0d1bde40c3c79ee97f01fff01591547122987aff85a47b2f90c4c12d0ccfdd14462c0d28c3e2d76c
+MISC ChangeLog 3632 SHA256 d1cdb5309d58e3490fcba75d9ab47ca758f3edc82398b0543bf1f777ca474508 SHA512 589d24bce0b4de999418847200bf9de48af212fbc05a7eb975628ee17565a5528f474cf776301b25792953594f31dde32b37afbba7e78f8e6adfc96edae6c9d7 WHIRLPOOL 7560e96bee990bcea496c93968e541d57f10348e35752f5b62d27d1f6c2bbf4d3556a376350680e51313df29364f4f758494c0ba00b194c9bd195e9a75bd319f
+MISC ChangeLog-2015 11014 SHA256 824e75e8a74558523eb7e3ffb61b5e9ce57460d694f734f8b8a9de1b103028ca SHA512 165a03f2efbb78b548dd1303f5c6d507f1986f546058fb7cd65bf706265b9d974591ba6e39d589765a10db7fa9c685fe8d80dea9b5fc08784be85369932f8320 WHIRLPOOL f37b2808a9e900aadb88757d9155032d5ed5e6d2a4f29d4a72838f783e5664c2df118d1d62c7ac9acf7a8362b67dcd9ac5f03537831e887f4c677aee31b14150
+MISC metadata.xml 721 SHA256 c552492816814b49788b5fde819d4cba020243b85f531531ccc44c1e0900415c SHA512 b1517bb263ce834d3c98f3a24e9defbfc96b29c781624456b3967eef81d5586c4bc4c6d8d6fec3b392a4de4d81b9d60f5418ed6d00065f644db57c9613e4cd2a WHIRLPOOL fd363d180ba5298edd60f055bd80a583102457268899bb0f539d2d2c07ae071041a3bc5890c23ce7f41a4c3475ee867c35bb71c73edb08d0fad2a69dc15e9d4a
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..6b2fd2d6d601
--- /dev/null
+++ b/dev-lisp/gcl/gcl-2.6.10.ebuild
@@ -0,0 +1,152 @@
+# Copyright 1999-2015 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
+ 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.11.ebuild b/dev-lisp/gcl/gcl-2.6.11.ebuild
new file mode 100644
index 000000000000..a49d2af852f7
--- /dev/null
+++ b/dev-lisp/gcl/gcl-2.6.11.ebuild
@@ -0,0 +1,147 @@
+# Copyright 1999-2014 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/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/reloc-type.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
+ 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
+ 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 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/gcl-2.6.12.ebuild b/dev-lisp/gcl/gcl-2.6.12.ebuild
new file mode 100644
index 000000000000..1d4449e6009a
--- /dev/null
+++ b/dev-lisp/gcl/gcl-2.6.12.ebuild
@@ -0,0 +1,147 @@
+# Copyright 1999-2017 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
+ 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/gentoo-init/Manifest b/dev-lisp/gentoo-init/Manifest
new file mode 100644
index 000000000000..85712da5adfc
--- /dev/null
+++ b/dev-lisp/gentoo-init/Manifest
@@ -0,0 +1,8 @@
+AUX gentoo-init-1.lisp 367 SHA256 45f0359425b141bfb12a9c5179b889627c75954a8d6ff2b1d38dffe3c780dfd0 SHA512 e7ff76fa8d6663f904d77438ea4e521ce4b35ef0dac0a7fbaa1797f89bcf2daa34d8cfedbe5af2621ef68cce906f88f2936eb2afd6ab2bb9dba1c31040b2e395 WHIRLPOOL 52720ad751a0ceccb0f7abba761c3ece117f1090bd8f046cf4b8ba584893190beeafe55c0fb1fc637fe2d09a73d9eee3349335ad6bd5ee5492a649263c3d9b7c
+AUX gentoo-init.lisp 378 SHA256 ea19a1a891db57c9e1fa9cd19bcf2a801c93fbe3a31e54d1baf4bbac388cb258 SHA512 e3433ea5ab34d756b989f3b03fd27fef7b71918efa608c0ea9c481c37dca59af2c7f0520f55a9f0d8bdcb4c7345a0fd81a702dc30a60dc435ddf4b1430f58982 WHIRLPOOL db6ca5d1fbf68a4c563eacd8449aff2579aa5bdd067f16839a18b84c6a0f26843d21cec7183672b1d1c77bbd30bb5f7c264e9af47f9aaedcc00ede4b61df7b82
+AUX source-registry.conf 114 SHA256 dd0f7235836705c3d310c8ff90374850370bcf418437922a4979973936d672b7 SHA512 1d42cf9f1b349eb8d8adea2e05a76fcbb7dc6aba34c1227d9aaca18f4b93e773d05389c4dce7be4621a644b2d955d26f9338829d769fed72501852a28dc8a19d WHIRLPOOL 8e1a71997454cbf00834f462ed832bad42220877426ece1bb0f0040f11ebe3de9975bc8ef58dad013ed2503357942e409624faa7fa4570bb920bd3c4f87a0416
+EBUILD gentoo-init-0.1.ebuild 509 SHA256 bc2eb88346d357c4704225a3c032c7ba66ff74920af0c0af68fe8a04c91515b4 SHA512 9900d68b65ac2238c86b63f1f7fa4aba288bd5db01577a64b83f3fd191cbeda618e74bb58c44c4ba21986f48488b309fb2534857529e180bb03ad3c365db850c WHIRLPOOL 5780b31618ed5d6dd31144fd466f8e874d590aff474fb5c3f44b08494185fd724b0a9a98a38e235f3bdf07a610c18695d1218d9a11e2d66565b134b6a531f117
+EBUILD gentoo-init-1.0.ebuild 512 SHA256 2b950b090aa226bcf08cc33cd2712a1cb0c8ba83fe251cd5113f1e2739f87252 SHA512 baed3b353e5b299fb855c81a8961bda7cd21583aae9ef6cf14879c0138135e04521fbfb207d56b7d9b9427eb8102bc7a8a0d48e5c12ad9a0ad80352dc6a30060 WHIRLPOOL 7517ddd532ad5f19cd8c4a1b38aa80c67814568116de5df9fd26bff2c3a757f250fd34c11da6c7290caa999096e0e0af729686f2a873aae559ff3509fb2c13d4
+MISC ChangeLog 2626 SHA256 22029adea6867be5d3461c3347794cb39e8d9da4c435db91519bd37f29e05803 SHA512 f107b41a0dbe5fc4cd019303822ac4496372d36787193110dd15e678317c4d156d6d45e895f76711b4cca1f16851b9782cacf17159bedc7836f893353501c4e3 WHIRLPOOL a3f125618f04c657c5754f9a25d9ecf1c3a9f82fe80afbe169f6886d1cbeba6874d50cb81e45154febfff679559eec889a693e93c177ae2aba5ee3429a30a78f
+MISC ChangeLog-2015 2169 SHA256 8fdcc2df918c4966e6a1f062eb7985c3ec9d76437c7e7109a19bc96fdbf10938 SHA512 0f1b77846f9ec9b9cf2670af6d6645498cbde8e8836731c2e5d7104f6dbf6aa1afe365d678b6ec64160238cffa5024f5ff718bbbe86802c952ecaa23b48b0860 WHIRLPOOL 8f5bc8ba335ee94c7a8ab12cf9e4508216aba9e60046aab2ce4f0f9a2a69d76940038dd62980dee07e9472118551cd91dcd176d4c79d1772bfe2658b28c3fd5d
+MISC metadata.xml 261 SHA256 627a8fb846aff40f2f1e29e77040baa5b21fd7663158ab97b84012e0b5e2f742 SHA512 fb754c4ed3579db5dbe303197a05647b7cfab0a3fe47fd2140d5f77641be752d10ccf49a9c267406a0f3ba3dcda8831f778b9596d723f65aff10142bfad60d3d WHIRLPOOL 02fb9a9a64cd705025462ef7601b9b452954c62e41f57422a5a74e6e0c84695aca510635335b0cf35031dfbe75142c0feb06ce1ba4f2794c6230378d772c3ae3
diff --git a/dev-lisp/gentoo-init/files/gentoo-init-1.lisp b/dev-lisp/gentoo-init/files/gentoo-init-1.lisp
new file mode 100644
index 000000000000..263aedd10c29
--- /dev/null
+++ b/dev-lisp/gentoo-init/files/gentoo-init-1.lisp
@@ -0,0 +1,11 @@
+(in-package #:cl-user)
+
+(let ((*compile-print* nil)
+ (*compile-verbose* nil)
+ #+cmu (ext:*gc-verbose* nil))
+ (handler-bind ((warning #'muffle-warning))
+ (load #p"/usr/share/common-lisp/source/asdf/asdf.lisp"
+ :print nil :verbose nil)
+ #+ecl
+ (load #p"/usr/share/common-lisp/source/asdf/asdf-ecl.lisp"
+ :print nil :verbose nil)))
diff --git a/dev-lisp/gentoo-init/files/gentoo-init.lisp b/dev-lisp/gentoo-init/files/gentoo-init.lisp
new file mode 100644
index 000000000000..e09dcb0ae43f
--- /dev/null
+++ b/dev-lisp/gentoo-init/files/gentoo-init.lisp
@@ -0,0 +1,7 @@
+(in-package #:cl-user)
+#+(or sbcl ecl) (require :asdf)
+#-(or sbcl ecl) (load #p"/usr/share/common-lisp/source/asdf/asdf.lisp")
+(push #p"/usr/share/common-lisp/systems/" asdf:*central-registry*)
+(asdf:oos 'asdf:load-op :asdf-binary-locations)
+(setf asdf:*centralize-lisp-binaries* t)
+(setf asdf:*source-to-target-mappings* '((#p"/usr/lib/sbcl/" nil) (#p"/usr/lib64/sbcl/" nil)))
diff --git a/dev-lisp/gentoo-init/files/source-registry.conf b/dev-lisp/gentoo-init/files/source-registry.conf
new file mode 100644
index 000000000000..45e1fdfc5aa0
--- /dev/null
+++ b/dev-lisp/gentoo-init/files/source-registry.conf
@@ -0,0 +1,5 @@
+;; -*- Mode: Lisp; -*-
+
+(:source-registry
+ (:directory "/usr/share/common-lisp/systems")
+ :inherit-configuration)
diff --git a/dev-lisp/gentoo-init/gentoo-init-0.1.ebuild b/dev-lisp/gentoo-init/gentoo-init-0.1.ebuild
new file mode 100644
index 000000000000..de448bb19336
--- /dev/null
+++ b/dev-lisp/gentoo-init/gentoo-init-0.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="3"
+
+DESCRIPTION="Simple ASDF-BINARY-LOCATIONS configuration for Gentoo Common Lisp ports"
+HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Common_Lisp/Guide"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 ia64 ppc ppc64 sparc x86"
+IUSE=""
+
+S=${WORKDIR}
+
+DEPEND="dev-lisp/asdf-binary-locations"
+RDEPEND="${DEPEND}"
+
+src_install() {
+ insinto /etc
+ doins "${FILESDIR}"/gentoo-init.lisp
+}
diff --git a/dev-lisp/gentoo-init/gentoo-init-1.0.ebuild b/dev-lisp/gentoo-init/gentoo-init-1.0.ebuild
new file mode 100644
index 000000000000..7a31af2a4b8d
--- /dev/null
+++ b/dev-lisp/gentoo-init/gentoo-init-1.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=4
+
+DESCRIPTION="Simple ASDF2 configuration for Gentoo Common Lisp ports"
+HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Common_Lisp/Guide"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~sparc x86"
+IUSE=""
+
+RDEPEND=">=dev-lisp/asdf-2.0"
+
+S="${WORKDIR}"
+
+src_install() {
+ insinto /etc/common-lisp
+ newins "${FILESDIR}"/gentoo-init-1.lisp gentoo-init.lisp
+ doins "${FILESDIR}"/source-registry.conf
+}
diff --git a/dev-lisp/gentoo-init/metadata.xml b/dev-lisp/gentoo-init/metadata.xml
new file mode 100644
index 000000000000..7ea645c67e72
--- /dev/null
+++ b/dev-lisp/gentoo-init/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/hyperspec/Manifest b/dev-lisp/hyperspec/Manifest
new file mode 100644
index 000000000000..73d2b098deb0
--- /dev/null
+++ b/dev-lisp/hyperspec/Manifest
@@ -0,0 +1,5 @@
+DIST HyperSpec-7-0.tar.gz 2032830 SHA256 1ac1666a9dc697dbd8881262cad4371bcd2e9843108b643e2ea93472ba85d7c3 SHA512 1b9058fe1ae2e283f4a68211dc659021e04bd10373d7c2392f4fa496543e2454f96c7eb671bcb1e72c906456792f8a265a5e34bac24d01e2c0e7fb1ce359c370 WHIRLPOOL 67550f4a52599fd36a4d185ff3554245a5b57d7ade60bd0019bce622113d9747a18eebc0a65313e8468522912e711183fd9db37da2b903524935ba89bbd4e936
+EBUILD hyperspec-7.0-r1.ebuild 587 SHA256 8b2c71d79a80442975d7b4cc6b5d718ad1679397a88a39648144d4d2cfc6d353 SHA512 8c3dcdc237fdacb71889f9e28daeca2e6dc92347843bab5a82ae6a00d483e2cb053c0ec8ba5445ae344658cf6533424ac4b744280ce833ecab113103d4708aa3 WHIRLPOOL 24ef1af5f59869c7bca5609b6052af54a8ee1a228d05f8a3f05128ae19951fb7780432c6c71dfc68dc6f78cc4515df360d9749abdd2cc36b732b681bb3151306
+MISC ChangeLog 2780 SHA256 e1dfebe8cda3c1c74d6560df182fbec2e7522124b4f6354da91cfbd5c36f4bbe SHA512 3c3d4751f9abaf6d10b585f18a952b18e84cdd73c55184c088f5bc0e88b809798c0a9d8c4739c88c9fa9978939c859ea42109c3e60375cc67f25d4866f5ece77 WHIRLPOOL 3c70e9f5bef6c3c94ba46310639a8e013ae8506ce88bdbbda580a351cd7282ac7945dc1ad7ff1e157cf30f00fa2186629107ac00016394ab632f07ba182817e6
+MISC ChangeLog-2015 1421 SHA256 b259fa69eb9bb9c787265454d7aee488b0fe64d57baa715b0669374cbbd2a691 SHA512 d36a4395b1dea63f8d87c8c9cf4d16a06a47596d974402f2331ef4774b55bed1d4fac97d8283dd4e1218e31f8903b7e3b99685bcfcf819767a4603032fbf0844 WHIRLPOOL 475143b8bbb503405dbc535dc80a68a3041ae46805bcde6cc420c97b0d685d19aa687acf182c38db63083930ecdde05abcdc0cf9c5c01d37e1461560c6893dbc
+MISC metadata.xml 261 SHA256 627a8fb846aff40f2f1e29e77040baa5b21fd7663158ab97b84012e0b5e2f742 SHA512 fb754c4ed3579db5dbe303197a05647b7cfab0a3fe47fd2140d5f77641be752d10ccf49a9c267406a0f3ba3dcda8831f778b9596d723f65aff10142bfad60d3d WHIRLPOOL 02fb9a9a64cd705025462ef7601b9b452954c62e41f57422a5a74e6e0c84695aca510635335b0cf35031dfbe75142c0feb06ce1ba4f2794c6230378d772c3ae3
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/Manifest b/dev-lisp/sbcl/Manifest
new file mode 100644
index 000000000000..5bff8e7e24c4
--- /dev/null
+++ b/dev-lisp/sbcl/Manifest
@@ -0,0 +1,75 @@
+AUX bsd-sockets-test-1.2.11.patch 14240 SHA256 9e806f10465f83a5248702d863a2f3c64ec659066d79c24c1879bb19763529f4 SHA512 5da3fcb4b0e76abd218716b14d5deb1612b100761672216330105afb591c83408910a5de10e99e2f6d9372036c7f6897b889a9241ef84b0564600eddfba83073 WHIRLPOOL dad84c2d84e778ae3b97491ef8d88f44a7ce2143ba9ad579b67802f642fcf4e76ffb60ad90f21b69a0f902218e1397629ed6160353a31e9e5a1d168ec39fb9de
+AUX bsd-sockets-test-1.3.12.patch 14295 SHA256 fd088c04d36a09a606714443f395333cfd9465e7988b5eff7acf10c7b40a6fca SHA512 68b79abcc0cfe4b792be9307d0bdf7fd750764cf2dd414a432013ac7cd665fa5ba57b952d4a5f38d0a937e5af9ae01148c6d2b373c8f6ccdf7a121de9c5f3d3d WHIRLPOOL fc1a4889573bd6d930335d1fa9f81f392131f2b605447280f3dfa0e2afe7f885ff4dfc0ece357e492b65e81b369f6b823eaaadb1db9aa9a684ee834cadf3121a
+AUX bsd-sockets-test.patch 748 SHA256 e23fff91524c4a5c12e5e6b088c9b9785ea86854690583b44118f4ed56fa423d SHA512 d46e08c92d8bf98095762b1a8601c9f9292ea41f55f0089f7fd150977b9cacdf7edd9340fab4242a9c100d7023bd7f12e4dd492c435bbdb2d849a6aba6907e42 WHIRLPOOL 435ac6780f8412fe982acc75902e577f9ff266ce05b14f629e70492a115f1bba5e84d9787fff9a595a549b7fb4e275bdfbd4a5c6701872d9641383663aceb6c7
+AUX concurrency-test-1.2.6.patch 1069 SHA256 1892dd13befdf551b346b1a17d1f3765b1a1024c62d3a725e6ab8af929b04021 SHA512 6969cec62ee9ee0ecb2aff34c854f51fd93b52f768ed1e1bf7cb3686c370c6e6b1d0691159b5d404f8d5e12e90a1447e6098ed83b0bb1ff4dc7f454f7052ec53 WHIRLPOOL e67e5eaafb44e4cd45812a4716b8d237e2316f0c280fc09ccb06117b0f91866fed4e6d49073fd727bf21b6e29836ede2b2edd6cd49a311275247c2140a3d3293
+AUX concurrency-test-1.3.15.patch 967 SHA256 fbb238f0e3dbb2aba86865d9bf6225d1b9ff1f97f5f784f25243f8c6dbe3f783 SHA512 628429eacd8c513190229260fcfc8ce403072fb7b4bade10c3b65e30a3fc60f1057b018b7043590a205626f3e2f05b244ffd48afa864911d350d37aa84eb1a98 WHIRLPOOL f570180a0b01de579134cd2f8453dc8db9ac16491bcef0497e2882944765b46bc29349ebc5ea6e7b44f787b1692efebc0f99099e7ca5ea7ce342563de652dea4
+AUX gentoo-fix_install_man.patch 399 SHA256 7e3e3f84be6d4dae51953825daaf26d8fe1482fd2f4e9d017297dd8ef55ebe47 SHA512 bc5118ddf2fd851dcabf773cc7443fa0d3f5a5b83715173110f9164c631faaf8c2d6b247f7ac205da23bb388ff459eba228deeaa2a45202870b7f97376564030 WHIRLPOOL abc43631045e56b9d373c3966eb1d2f5575d258db239e6f1f9a2247492fcb0aab8d000ece39c504aeec5462f7e0ce7e6efc3a215e5776fa64d460b20c0f52a21
+AUX sb-posix-test-1.2.15.patch 1325 SHA256 bd7b8c2bbcf462c6514b9630af8d67451ac592964403cd30c5cea3b31dae2798 SHA512 79fd75eb5c44630eb6669b1808029420c7031cc1ba367b8687d7433bf0d19016a7912df0ab21c90aa7e709417ec9784c846c7dcefbc1308a059cbd8b3209dd27 WHIRLPOOL 4792eda2b518d20d19a77fa39716c837fd7acd58f401fb66995114d695e60dc43becad97e4bb8fc087c1d27b3f04648c1014d35298bacce6ce9d0c8272c8e11e
+AUX sbcl-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch 1024 SHA256 fe2f2e62d480bd5a593c782f14faeeb0fcd3d26507ff4f17aa19fad3a7069843 SHA512 a09efe91a082fd2bed9dc30652f3e5ed51e416697b7b2fee4d6c5f90db0ecbadca7adf652f532d79869fde9186e9d16855f5fd81321cb2a82e1a158d4cde9e97 WHIRLPOOL d475627395ceb118614dd67c1cd9d434cf62a7987bc48a16dad7b564b20daafaf5ddeb807b1bf30b572f6a10ed21b05f0b9773efa05389142762167fc806ca9f
+AUX sbcl-1.2.11-solaris.patch 500 SHA256 85eea0c09e88edb42e8f7fc3186625f87febfdd4041d6d3167f42260f23d4918 SHA512 4dbd0cc499f3cb634330db9843e82b88830e45e63402a082f51e02b0dcb1541f35e8cb0410aa25bf283af3c0372a8a39220b3f11b7288de2c5c768ac133780bc WHIRLPOOL 8853a30ca7c0bf3ac23c88476ef5e20c8315f858c34cdf95c72c4626ecdd33b18e79bf7919599a576bc5e4b049de14ec154fbd646da4e79362630cf4706e8977
+AUX sbcl-1.2.13-verbose-build.patch 835 SHA256 8b41486107e4df3886e21ddc090776f06224001fbaa4d77e0ae8a4983424f94a SHA512 da3b1479bec7fc98eab1ae0dc67c0f483512dace899644f8fa7ed5742910a9b852934c86a0b2f4ba4df15715b9dd01cf2d5b826fd6687b67888066b7d3cf8da7 WHIRLPOOL ed55c02a67e3ea4040e60408a40c7246c5993d1f9c961c0a22ef99f15cbd620420a5309b3ba52516fac7859ec41a384bf76f3bb19806ef4e2c6d4eed70b63165
+AUX sbcl-1.3.11-config.patch 630 SHA256 e8667fbb7a6e2d056f2f69b0464624a608b17c651824c048c38cf1f6f15ffc81 SHA512 f76584df3309f76510070752c356396d50114bd180142a7af120c5a6f43c1a0591644ba93d27e04aa88ca79dd13d48accbd48c371bf9e519916db81a5fc4208b WHIRLPOOL ce2b31ceae05e2301c10d10bde5eabb5bf97029501de361b155cf9aee05b263cc48525a3648b0074502f97ba2f0ec150cebffbf289fd7ea1c793244a6e014f81
+AUX sbcl-1.3.13-config.patch 1196 SHA256 78d75e6abcec34eb32191fe974f8f576e2bbafa92b3732c6da6aa1b55300cd75 SHA512 4e783ca03734731f187294902423f6cbcd4140292683145b405e7f9699b811c46e931a8bfa93e2109c040d106fb3b1ba3d9d908e1cf83313de062ffdfbac7a8b WHIRLPOOL 0d69d4a758f670dccaed654dcac286bc0dc7c6cc325776296c78cd3a5fb18a070e4786549cff8e9cb88b757fe56f1c96ab2b77ef8b64e6e04ca9f1d5fb239baf
+AUX sbcl-1.3.14-gentoo-fix_nopie_for_hardened_toolchain.patch 624 SHA256 51b24b44e42712ca15b173fb15ad9e058a4d01b13daafdafd4d3d711800829c5 SHA512 47fff24857d1000bc9df4df07806aae2bc9d02108db483f2bf2dd6725f85c02d233a2f928f1da933087d7b6bd651b946389e0e642f475d78a16bb0f6afb800e4 WHIRLPOOL 180e1a46095e4122a7aae4060918a3fdddd7495fa95c25f67787c5df20174a1d06882fd1b2c34677fddcf4fcaa4e4ba18ab62ab0decccb2d4449e84a62a62d92
+AUX sbcl-1.3.15-gentoo-fix_nopie_for_hardened_toolchain.patch 736 SHA256 2bb64f43e3ed0500a2b1912c0cad0c764a744c1016b810f4f800508c0e144532 SHA512 deed8bcd778553afc198d59355c8130da1f1b6f07521bf23418bf104916731b23ff4d01c1c0d1b5f92d64300ed982907fcb0f9d235bb2c9b0026a3ece3745213 WHIRLPOOL 6eae7e0f63129959b5ee531e22b1cccddd7b59f092e3b6076c4493596c09ddb513554c8750d62a20af899b3e08eb7c71387c55057b58055a72d0127864eef434
+AUX sbcl-1.3.16-gentoo-fix_install_man.patch 433 SHA256 65205c558e49d3441bce5a8dd96ba487781976851276efb06a88ddb2c8264161 SHA512 2c50a257da618a303bc5060cf2119ca5d6a5f7dfe0e7d130a2ddb43e2dbc02de3dde0cadcfdb2d6c1ac5cc7aa5b26c5081aac47f11572295982f985473ac03c9 WHIRLPOOL 626e32a152b5049ce9217415d616fdb17fff2e83378a460bb71bc6e3ea61179af3e18d55658d171e65e08769b78a96a78af1607643f9855d5d94a0a3e477f915
+AUX sbcl-1.3.19-bsd-sockets-test.patch 14992 SHA256 57ee7c60ff25a2408e7177a535ca659192ca5a9a610ebd2b5c16be526a9fd964 SHA512 9c1d2558d25aa0bccc7245673a7e85f6b377f4a4e37aaa9417b838c2b602de527de9f1beebd75028d7a3bee2b11ebd6b23dd511436ec6c902c616ca13b502c63 WHIRLPOOL 23255d10be7865a85227342cccebbb08f2060d1d0e70c25d6a4cf86db4c75177095f993d8e7fdbd28fdcb614da722ef77b0306fa0a95879509275e5c28c2567b
+AUX sbcl-1.4.0-bsd-sockets-test.patch 15625 SHA256 caa71c71601d638c980be27aba3b5169251514b7670ec0a6aa86a528cc49bf1d SHA512 59120ce76dd3c24b48edebda4d4536eb570fa7fab67ef8e995d89b72c5702333943ea7f39c674091773996b67add22e6fff7abd041acbb0e83a3e0e002097d74 WHIRLPOOL 636a7661bbf50735c74ac1cf777fe76463dd22c265a77716d5bb456372e02fabb26d12b09869e3b716f39838ba094cfe1e5fa5b0c896a26318eb42c8bde4493e
+AUX sbcl-1.4.0-verbose-build.patch 936 SHA256 b01dff31eb52bc260bcaa08ff6eaef860eaa966602c2cd19542eb3e2bc2f4c06 SHA512 10b9e32a122910cca131bb5b4f1fbc098fa588a77b6cea2086a4f8458bcd70d5a7c2ad25018ac72b417d6fba8769d09e7debaffc23ef8f9a3b184d7f5729ec8d WHIRLPOOL 5c0438a04febc6ec09021996dc31925f6eaaa2e39d60314424048fdc8e85ad2577b0e12d7c3d69a3a16eeb551e4eb4bc0ea428f5f53f0e73aea21577965164eb
+DIST sbcl-1.0.23-sparc-solaris-binary.tar.bz2 7907803 SHA256 08b7c0f14b900d1d047c1a1e12632cde3c61b7fd489be512896faaa6adb4952c SHA512 d641d7859f0d60ce7dd684a0f21e62282a5a658ed6bb4d67d6b141b3ce22d9e27261efe7e5d0f752c30e467cf90d7c8a03ad2a04b3c60042f0ef0a4808a9c74a WHIRLPOOL 22e7714ea7104797bd533044e58da41b8bc8a4b8852e101a42663821334b9074477cd205a3ef2aa7e4e998e28e3d10c4972752e0a6ad2a1a775832280729744b
+DIST sbcl-1.0.28-alpha-linux-binary.tar.bz2 7573824 SHA256 0bd8125e1375a75b9dda286439dcbe9861d6df5c6fc8475fd217b8b757edf9cc SHA512 85ceb4d3bf971777f5444a63cbabd88ccfaf16ed3b3c86cc5ea6cb3fd3189c4cd5a5ebbf785c97366afb7026604ffc34a1129936291deede5993056e158125ab WHIRLPOOL 839363a0d2fcc7cf383143fc130c40bf6f03468a89eb4b5eecb39339ba376a6b3a2096938934a91cf689310bff20807d2ac24b99c0d6e3673729b26d9edb83aa
+DIST sbcl-1.0.28-sparc-linux-binary.tar.bz2 8032042 SHA256 a2e848ac11b0f16bb91866bd187949d908ad94fabb958a0b56320fc0e8b8923e SHA512 cea1ba06f85169fca9fe3026813c6e7e8e8209b874e048b7bd63cb3a1c5bd7c829e8dbb2c486977e190a0390d28e4845938a9e84378f4f2f16f72bf0b6f45c80 WHIRLPOOL e7f7e9bc7b43cab7b729792a22f0f41be12d8dd97a1c45fa039a49607865b977dd336fef8c7ccda087a9e9e32f92241c83e05da442e12cf883d3dfb3c2fda169
+DIST sbcl-1.0.47-powerpc-darwin-binary.tar.bz2 8217590 SHA256 6971a64c0706894f217da676081874088f50f84daa66d89b653b065f83563f3b SHA512 8118de56e448bce7a72b832e661eb4e2687eed675f88f766f7043c843a432e35121d9e6f9da8d22ac690c54bda0d55ecb07728748ce2cdd57320f49b4b812b86 WHIRLPOOL f91c344a2b99a5a1c2dfe3af0172f548997b9aaf9ad5e865eb76c8311f6114275eda1e7e76af6efe5c1a346d1761f45e374f577313029fa9b83adfdec10c70ad
+DIST sbcl-1.1.6-x86-darwin-binary.tar.bz2 9091955 SHA256 5801c60e2a875d263fccde446308b613c0253a84a61ab63569be62eb086718b3 SHA512 5b9d58ba1a7bcf3aa5011ac5ba1c8dba65e44b2c3f8a31b15db54de6b34ea0f7482c45f1cc4e1323e154ce79fbba030112df3795cb323bca46bac50f15d2a138 WHIRLPOOL 673e84bbf685e07568530ccb2c3822dbfffd6226d3de90bfef13078466ae245f63dd2fc4ac48b4d64ca1453cc831ad6913af21540bd3b35fe51700161ca26086
+DIST sbcl-1.2.11-x86-64-darwin-binary.tar.bz2 10038928 SHA256 057d3a1c033fb53deee994c0135110636a04f92d2f88919679864214f77d0452 SHA512 c271796f854fe884e0d8aa6504bbe2e6c078de1555fc9a823463640cfd8c793dbddcb3f32932788d84a41e2b8a085b95c97c13a15c43fc909dcaad18ce25f215 WHIRLPOOL 2c39d1ac1490693b758b54b473970deaa9078f00bc579745fbbed169e696846fda888f105bc77d610a8cb1c0f995c6e6ad572b9163d55b3701db02f7f68824b8
+DIST sbcl-1.2.7-armhf-linux-binary.tar.bz2 9914851 SHA256 5e75a328882b739befcf5c38e8039b830668a8ca7bafe56a9e13ef23f39eb253 SHA512 2c82bdfe4f070a43964e694f81ccdbb84f8dd3bf77c807343daadff877b518fcd52e05513691543ca076c2b6de8bcf8b2e672b31f5ed3f545bedb02bbf7cd868 WHIRLPOOL 8e0eab53a9bfe10a1ccaa5c950e9fe045aeaa23f9f66ca98badd5a0fce3ad5828c0059904c73584dd4591fb3f9b2eefb5210a19f2de9fd8d699d48b0cee3bbef
+DIST sbcl-1.2.7-powerpc-linux-binary.tar.bz2 9884585 SHA256 d2f86db4f6fe2b6e6bbc6353ce28dead1b142ed36885080b97304db55aae2861 SHA512 7b9fef12d3d6397adec6a0c26d1431a18b8d91b5bf009034eb2501de9fd60dc04dd2e3cd2d9feb9204d4631360aea88ba07a9ad75dad0767b5dcc5e62e84e790 WHIRLPOOL 4b884ab946e8c54775970aa502054f42a92d01257449796c7d1a6bd1ff5835ddae1c94aa5d936a7a5b115183c6cee5251034646559e4435a6663896fa302c4be
+DIST sbcl-1.2.7-x86-64-solaris-binary.tar.bz2 10438955 SHA256 a0a13e83b35dbac36284459747a03c6db20cd089864e16a6380a12a6aa138115 SHA512 9566cebf8fc29ead1f919309e3f98aeb618e97b34c80f53d1f739f1a3f4ef4cbaebd1c67f0b32172a0cdf14dc405eb75d0e916dedf3b8a758cdec2368d25f5c1 WHIRLPOOL 4946b9a4463c92517233298f898510ca57b4127da93d7d42cf28005bbd96b8d1eba7472f73029f45d6c0e75f3de5b893a34f33feee92a60cef8ae4f2b4d4fa0e
+DIST sbcl-1.2.7-x86-linux-binary.tar.bz2 10516485 SHA256 724425fe0d28747c7d31c6655e39fa8c27f9ef4608c482ecc60089bcc85fc31d SHA512 ca09beeafeb40f21eb1a377f04a69d57feb5549fa63aadf2e39aa65f3875418bdab755e22b567b3f2c514fb94534b739a57606288912ffc5cddf370a400e9e5c WHIRLPOOL 41b3f5a9749c74f136b8bb4f519409902045cd9501b5b944e7bcbf9336dd6640388641d26f8c345d79a1028ae64bb04fb74228886f8c2ae0eb085a8586635e17
+DIST sbcl-1.2.7-x86-solaris-binary.tar.bz2 10351529 SHA256 a198df14f45cdf302017116744c8946a8b4143291efe1799553554133c22b46a SHA512 b30d40f0095bb43719ba2e1a619f53fe5f0bccaa08a35481bc5feeb0dd5b540018a9ec9f61799de89991a85750577922cb4e56db4d7dab8f07e18bbc643bdad1 WHIRLPOOL 05ad3606b23e6196d443328f367b7351612d0f4991d71a5a04f1f45b5bb604809d6ed11c8cf62bc639d6f9dd8e5704b52a050603d4745713c5818fcbd36852bf
+DIST sbcl-1.3.0-source.tar.bz2 5722767 SHA256 d60caf6a0a495e41fc9e7f6a797e7c4188cef1f9de84ca263ff654d4d7ae99b3 SHA512 4bcdc3e4d101ec64b6af2db8101e3b18b298c343d7928984604dc17d531b986787ba84ce1276c41066a9a2c06270d2aeb26870ba7b18ecb7daaa6b3a6c7f6450 WHIRLPOOL e635064fad32556ce0017c3cf27bfda02581dc627b0884d3dc0b1bc44c62cd4a0ea6690997b53414ddd7355cc06647f2952ccf3c2d329baa0e137b5fd992ea3b
+DIST sbcl-1.3.0-x86-64-linux-binary.tar.bz2 9830954 SHA256 e6e801f0cc31fd6a14cf20b983c6ef2be5750225fad221bf9621788c0a0a90c5 SHA512 916fdd1627903b7227a6d5962a2534fa2cd9003f832b975c96d0e11c301d73c7c3225cfd4121f10cbcdde87dcac9079b9a48e6737ba9a3d2c18c484bae3c371d WHIRLPOOL a4372dd59df03e0e0e8d2359799e0580b6829e001c219ef28504cc7db8b3a8ad7429ecdcd36bb72ed5196192d9f66b2854c5b6960cd5f97c31afd758a17c6a67
+DIST sbcl-1.3.11-source.tar.bz2 5790557 SHA256 077a2d98f94c62076bcb4dea715a11975b92d85d8de20f5a0d1c36d280397642 SHA512 07cce0b33f1d41bc208827d228ae356b56165bb55fab72c48973a15a63e2e680aafc16db67d36cc4952f71101faaacafd9660276cd67673314f1699d6a91af82 WHIRLPOOL 0e61c415775c4c11d111d6ae830f8be1611fd1674b23c2fc8fead59277af507adc9c4683b066fde9e3c0dfa52023b850f6714f2ec480901718d452e0f25818bf
+DIST sbcl-1.3.11-x86-64-linux-binary.tar.bz2 9248214 SHA256 9ab2c149b7ba43e7f6237c1a23e3037078db46a83913040958fa08dd6011dba5 SHA512 ffb443f9e3ede2f9dbdc1bf28554bd59ef1fd5ad855465ee10f9835221fde20211188e881be854b4760870b122dfc6c5ad5c8cad1bea613ffb3b6a6f67a36056 WHIRLPOOL 0a34701abd81cdea411ac37e276660e29f43279509bef28600e7084e9ffc525883e18c42338492b0ccb5fb21e85c91726f978aa20a87deeb92e813a15b36d9fa
+DIST sbcl-1.3.12-armhf-linux-binary.tar.bz2 9193847 SHA256 f5851efe3626a7acf1ae11ab471072b3730785de5c6ed07717c9cd746f260c5e SHA512 5bdb4e2b584933e9ee9aaa2ba68328f219f072af802782ee5dedf83baa5c679cd5a1ccbf3458678810ccb8679ffd392d4fba108e86d537e10554c1860bfd4de5 WHIRLPOOL 4f1fb37f0592b2d78e0b8c89e0cd499ac2c499809e036fac1b8bdeb8a39bd5b2e2660add88d697397a7fd6013acdd6af9f2bf479a41c19180787b989471deca2
+DIST sbcl-1.3.12-source.tar.bz2 5795516 SHA256 8039ec01d04baad3ee3ebee7a830757dc488be33ca128f4a0592f8af701759c2 SHA512 2a2969b826dcf9d568204a01546c47af777d5866baa8da809c49ace1655b54cd4c8db1872e322a1d08a4983b0962cc0e2e346816488212709b28867c53233275 WHIRLPOOL 019f5919d2203e1ffde465d460575ad8517e176723d00acc99c6c50bbdd7ee68b90df4c8f10ab63646b0a2f5266a0328182e3c55cbfa9562ef7bac2897011663
+DIST sbcl-1.3.12-x86-64-linux-binary.tar.bz2 9235579 SHA256 6508577bd6a2769a74d7b6fa7885e12932acf7a18736c4df599fc41f1b5db237 SHA512 536710d498f98edc2ca9bd794a09d57b37fab2595d1b8eb2f4c1dff186d262c059b674a7786cf78f8bc4a87dc27dc3f7cc61c21bb826abc8a4e99854742595b0 WHIRLPOOL 41daaff2dbcbe4e4b172ae45c29987eee7aeb4ae37eddfb808cd9cb7600289559f79e8395930e7364fe28b00efdcd947ba951771e6b2724d59759221ec6a63e9
+DIST sbcl-1.3.13-source.tar.bz2 5783599 SHA256 4c6935e4a9022637da95f2aab04d08326762f55a35942b40cb6a4276838c76cc SHA512 c0aac045f19f8f49642027eb37be21bb68b4cdb58895f4adbb92b67d0025ab50dd4eb1725d90c6a4ad592d59395d119623cdff3a2c838b2206efbf1e37d34f4e WHIRLPOOL d4451aa39c9a90c14a2986869915c343bd1397b58bc35910e63dc97284c8190cd071cf45fe704d2cb6185e9e304ae6166ca1fb90456289c3ebaf279e03cd31a3
+DIST sbcl-1.3.13-x86-64-linux-binary.tar.bz2 9103731 SHA256 f92dbcb379f3a35ba13fd75a10912b767e5d8b2b10698413e5a217cea2f49cca SHA512 0e6302e408ea0b05f89c982a1660187cf2054cc65b464e340166c8fea962c4e52960f143cd2393491c60c83f5d90ff828a0807ee7f45bc1213ba5f13a6950c2b WHIRLPOOL 1e25fc22c6cf8725380cbe018d7a4a6875e457ec76428894f00568e8b9d3872ab4fdfee932d151efae5c726aca4161753131029347d5397e5f1dc9a4ea486e76
+DIST sbcl-1.3.14-source.tar.bz2 5784135 SHA256 bf963d58533d839eb76a8028abd17071708d964d5dce07787839cfb6d0d6dcca SHA512 3bcfb27c75864290f47814cdac3c6d0ab7e88fce2fef11062f71993383470bd4f9bc2888314e016a80d3a629d748bf45358261fd320bf67ce55981b2fba42420 WHIRLPOOL 9f2c5460ea604d71eacb8f197782fc2bc9c8d2c974c8e0b06cca56078c2f83cf513c99a4a717d4856316aded939a05146a44a5bcf8d4c314ffdaa970cdc03c6d
+DIST sbcl-1.3.14-x86-64-linux-binary.tar.bz2 9077586 SHA256 84dae89aa4741cac41e163fe9c85b9ab42ff8c2cbdcb31111d60e9019e2d4235 SHA512 0bff8737f389bf59f1fed2d76de32ce977da9c8c685c7f73280eef93428edcc48ca451adc26a305ea31f23507d7c45ffa5893aa4add2418048a1087fab686534 WHIRLPOOL 194a775092a4a035b65126ec6de63c981796e3618ca324d431fa544dbdbaaf3b790574d2e3c6813125ed55ace4b58be0727f2b6f4abffb686e3b773fdc8d3149
+DIST sbcl-1.3.15-source.tar.bz2 5798479 SHA256 b1b532d9df81b6a014dd6463f9129cd9470ba84db0952496970ac5b1e745ab85 SHA512 8dd9679bcaa244de0158051acae2ffcd1f79181a015a212f4416f3f6e439339d4d6ed5e03520b492fdd3302968eb1270be47729f3a016977bf951c5bcade0650 WHIRLPOOL 9fd1d8cbae29855becdef284d7b8ae0b619e27dc8fda8be8542225bbfc52daef64682c46fbf3bd0582289365ea6b96e3fd569f57be38d28dc021104bbc836e33
+DIST sbcl-1.3.15-x86-64-linux-binary.tar.bz2 10882518 SHA256 c7a9f143d539164abdf8771fbef071e5f1b26a5ecd496ddb4d778946faf758fe SHA512 28a2c17b366db2a2b2ac83a1ce3ac09583bb59aa2dbd992c02fef0870889a2d19cd1fdf633575a8fab674ea5a0058eafd2dfd6d8f7953237a33e7b12d60d20d5 WHIRLPOOL 1addc2c2517eaaa31ae2cd6b1adbf74f58c6afd7f4243ef4b2bb9b294ef448dda27695f6b6a758e6b7a9e2fb042c6f544c0625e597215cb5dcb1986d885e5d46
+DIST sbcl-1.3.16-arm64-linux-binary.tar.bz2 11228304 SHA256 948566e3f3ddf2d458056f16cf666f0a726a7bbf1975f7256daf27c2d2cf2b60 SHA512 919835547d7613f64a2470157401e83c14584049602f21566a324af9fcbdfa838f5f2a7c5c6e28f3c3b5ccdec640024ce9c12b607a25741ad4c4d6e9813af3b8 WHIRLPOOL 8554ef5d1dd12e5a8483dd22b2cf26c65914f2a254d673dcf9b4567bbdb091f4d83eadfabfccf29b1bfdf7a1da43b8b43c5d748dcc0323ac9151645d4c668381
+DIST sbcl-1.3.16-source.tar.bz2 5803184 SHA256 b7dd98017b70aec351ec4475c68438d52f3f6633269a4ae399216b632c9b8863 SHA512 6bb0a7c926ba8031c319697b49b85eb58ea262d47237b2e7735738ad6103a759016a269e617931095174066f830e2edc362bf89384a97c3d19807552caf826b4 WHIRLPOOL cf7dbeb7675eccd02bd70d1f7231dcfd49e96681bdaa9e4c8314d2b15ac5be1d25a10d58de657ae18cfe5552d08051a4d2d95dbd7bd33132dcdf4b7eeb6d0f08
+DIST sbcl-1.3.16-x86-64-linux-binary.tar.bz2 10891148 SHA256 5ae49b7a6861781ef5f70eacfb4b423b79b5c7e7f8b1ddd6e40e7bcea96f026b SHA512 6abe9ba05697a98c17a747a3ba5c6ae13b9cb522142cbab9d7b5da78201e82693cb3b653b7070c00d75ea4e9d716e6b74439122ca83d8b333439ae814e0cdbd4 WHIRLPOOL dbaa399cf4633832bcda9a300bf994a05dfd34613db86a5975f12ba21181a4696e597fd0727648c29829d82df35b68b33baaeaf68562b21e496521bb66dbc699
+DIST sbcl-1.3.17-source.tar.bz2 5833092 SHA256 94b9f576328de3a5d9ced452fdaa4d2f55437af8838fbbfb4f226c86591a0daf SHA512 c0309d12564783b9791daa7a7754ba21ba6a3429205cf83fd15d077ab5b8907de666b25071a823c5baa210877602219cb2d3ecf111f9710f0ed94bace2fb3001 WHIRLPOOL 07a2a712210d78571ded9e96f74a648676e6599f660a42ce887a66b89c4e01346585b0d36d7fe1f6d12c149cfd8a124c0ea1f91190164c99a36a4988dc5c7274
+DIST sbcl-1.3.17-x86-64-linux-binary.tar.bz2 10932931 SHA256 d782a1b6f0666b26c9e7c2487bbb1c542c5c597627f1ead3d6692970df369987 SHA512 eb40084f24c3f98a54d67a9a2675e4be5fb5bafb6ec356653ad0b9b76d74b4c337ba2ad07171287e0ecc792714d0dcf8f703dce7c99a28f96aa1d360cbbbc35d WHIRLPOOL 88217d20fc95726089eeca8086e9d66bb067fbff777a0843be50abdf4f14affaca2d3d446569ecfe3d27f59cd81c12a50f33c2e23bc1a9168712b181c356d957
+DIST sbcl-1.3.18-source.tar.bz2 5850931 SHA256 fb2d622cba55ac441b7eb1be3c7343cd5e80f0c194bc648341aa0bb08f61398e SHA512 a5d5370ea99086a969959ebddf18c2f3593abde56776dbbe735cd732eb65addc0c1b684346bd0637fdcbfc1e3d740de31b3eb2ae28b3a7a50f8c51b0ab38464a WHIRLPOOL dc02f6b05bb15b8c270779345d0a8eeb0b6aee88b36a9591f0bbcfb970b201e56546b44d8827b48edf0a51f7e76aa9dc2b9092c72c0295ddd4bb378e7075d4f3
+DIST sbcl-1.3.18-x86-64-linux-binary.tar.bz2 10959273 SHA256 eb44d9efb4389f71c05af0327bab7cd18f8bb221fb13a6e458477a9194853958 SHA512 b93f74fb36de3cebf87d3e742dcc65072b26259ebf7386227ef6f07ad7f8df512d504dbf87298e1b5eb7fefe0b8760fcf777fdc1cf7ed1c3ddb99d4a71b92864 WHIRLPOOL e0ae9cad97a505a8d1fd80b0e6bd2ef30183256bc7f51ffff1fb50190f7a84834f16f3f12f5b27bceb31c5b8fd165a1d6e0eb61842cf16cfd61330bbf3a98c6c
+DIST sbcl-1.3.19-source.tar.bz2 5872299 SHA256 b5eb98537aaa7afe24851a6da2f65798c6607e975062618dba33fa3a087fc018 SHA512 d2e23b30502362efc5256c63f56199603d5264dcda1f9be58136246656db1788fbd98b3129f3249e2dff4367dfd67faff2fb62a9a97ce3b73f21c7cb9c84ecec WHIRLPOOL 7d3c90c74b2483d2f444dd11e9e1fca57753c69ca411c9d19f9abe91fa9e61b5318b944739003b7cf892e47c395efae58ad37b502f2aadbcffe5372efd5ce6fe
+DIST sbcl-1.3.19-x86-64-linux-binary.tar.bz2 10552568 SHA256 d9207dd75d631919bc99d500fd441cfbfded63e1c3985a8a08dbc60d658adad8 SHA512 2f8fffa067adac2798e39dc9b23715b4bef7fd9681de1c5253d4e8c897652e2ac71b493c433ea3d6fb57b4e104b7d8cfe279ea5a3c73f38b6a3c0a77484acdc7 WHIRLPOOL 663b377af82136f95181fd0abeb41930ea40eac5989b54abed3e537825c2c099b10d77ca3fbdf19c2065c17ece75a0e1d9d0c179206b6502fe65e15a4fe8f0f0
+DIST sbcl-1.3.20-source.tar.bz2 5873056 SHA256 5282318053b62ff041c14956dd5a2e2e66697482141713c6c5df375d05cd1f62 SHA512 f22a661ac7d74fffb8d3f10f17289eeca7a7bd2978f895176a98882851e3f7d808ac4771a4001d693edd3e2fc1cba27caf1ae8312d85e732330c97a3dcc13740 WHIRLPOOL 335eb0743ff4b2f35de0150aa253f21076abe2b05376fe63f569f54f9979979d656f282e19353432476a6158b8d81a3d6753df2b73d56b3885462cb1027e82a2
+DIST sbcl-1.3.20-x86-64-linux-binary.tar.bz2 10617351 SHA256 cda8d3f36eaaa52e0bda8042cf2e49a2ca1b71e5076eb78104de012cff91c95d SHA512 7e84e84e065b4bf848d1fe1442fb25b6b7fc6988e10598181c98731cc7ce7498ef09a8be3743304fc602f7086a58dc6c8dc30786db0574407794d4cd4283d5af WHIRLPOOL d679d32120544e78da2732302b62957f036142aba3c4c810a7fc48272d71c80f06dff018e85c51bdbc80747e99386690aeb9e3e8baa0c0b660d90e1a09954581
+DIST sbcl-1.3.20-x86-linux-binary.tar.bz2 10626852 SHA256 ad89c3079fe9e64ce35b0a04121088403b4c5de5bc49fa2f94e27e75443c6d5a SHA512 1b871208b431ec86860022fce5fa6fa7ee44c729f216d0ec2b8001ed67eed164600d867936beed3c44f9e018ad07221c0610b2d033f54b2b2d79674f1deba8ee WHIRLPOOL f1987db711e25de5fdda4b1dc0749d9edc6c88c6fe4ec78ed5f50146c043ff5c969764c0fad15e7cfe392a048a5366a9631893c93d7210057d10d8a2963f6323
+DIST sbcl-1.3.21-source.tar.bz2 5901141 SHA256 684c51c0f041d78055053fbf350c10cc54f9aea4d32895901617eb5edd56158e SHA512 845f4977b46236b9e018c6c7e5cf5628aed6b75b0ec942cd0c54fb91b6dc7d46369e346cd3c3dbb3f4084e06ef81a168c5f5fec72c4ca649504aeaef4b71c1e5 WHIRLPOOL d4288ffc98acdc3b10c74277893ae8e61c915f6a796e55e57ac4fe8ed63deff5acb39eb946a0eeb3070df07053aa208c3b120a87802b9a320deb57ba2cccb688
+DIST sbcl-1.3.21-x86-64-linux-binary.tar.bz2 10633302 SHA256 c1c3e17e1857fb1c22af575941be5cd1d5444b462397b1b3c9f3877aee2e814b SHA512 a0ce82d35874344e72dd013df835000eb07656f3fcdb583e577f9d6ab37d7f81ab0c8c20e2f809d9d36c4139274fe722bb1e8a6ceb3f47d1f62bc3fc46c5cade WHIRLPOOL 8f5c911a6aced1818d384871cfc372e0d8bfe31c542bd7e6833335cd3fa4fba19a50de2e096042f1ed4289e45ad38545804413a8db1daca8b3ef3ed46fedf7c1
+DIST sbcl-1.3.9-armhf-linux-binary.tar.bz2 9161130 SHA256 da2d296a8ab107a7b2e10831836648d882b01193f60269853932af4f63a06571 SHA512 309e2ac7ef9ac95bf751432cf243af0de022c5b21054df2bf4e99da4ff087218af72b0ab3be69214eba3df1b6bbe707cc28840508e960c5d2ed2af0e86de3fdd WHIRLPOOL d2dde314d2b49e4246823032d953bbfe0858f7c69d0445da356426f9c5fac73036b32c1c048cf7f43615fa02707e8e434d8b085942e79d1e2b20f6fcb7e08919
+DIST sbcl-1.4.0-source.tar.bz2 5907661 SHA256 08d59ca79f78311304664d5093764cda94ff2693d92736d1321fa6074b570769 SHA512 fe22f06cf645b20445e55700cbb3a54d27de58f3cffafb67b0970a0f6962e9914708d0718ffd3dda0a75dfdf8c9f6830dd995ccf7e9c2384ee043eeb27bb3d1b WHIRLPOOL 2b229c0568b69ec9bd4ed74e37df88a9dedc1f4705747332180f730892ebca6943e118d1bbc848289e02168cb9e76e2c5f934087bfbbae5a2ad662c7f982790b
+DIST sbcl-1.4.0-x86-64-linux-binary.tar.bz2 10573661 SHA256 2b8d5256cb7e3057f47c3d81355d46dd96d966928652c011da613c519c532b67 SHA512 7cd8ea2a411b55a85df5113c0bcb63078d67c9c31edf12f3ee87075569436711725c325027b6bbdd6d5a2c79511da12a034278d734c7cc75c96f0a44941ee437 WHIRLPOOL e97ceb6736072d3e48885db92ccec0f153b79532c0ad6371c0cafa62f3d4d2f37984c92bfea12857f1f8ba0bfeb488e6332dac15c413e32f76b69905b13370ad
+EBUILD sbcl-1.3.0.ebuild 8434 SHA256 e288cb77e4f7d20b71c9435b59d01e1029438ceca656f4cd0e7d702808660ab2 SHA512 63362681e4d60dd2533f63f95de736d36d025b99076a1b570d51162b0d6ad490195dbcc5548751ca5eb69d4e3f3d26e2cb3fd2161a118802c8a3770bfb2dba18 WHIRLPOOL f7edbf4c7e32e7cb38c72de1cbd3f6f831f6746485ac99c84b056ac153763ee82f707e6925948501123af26629b0a60539873f5be076cb295dab42ab22324c18
+EBUILD sbcl-1.3.11.ebuild 8382 SHA256 251fec325de57feb97ab4635c615986ea4a0fc05807f64b14b73f7a495c2e3c7 SHA512 d6b00cc75cc3bc55be589d4e7690469e1ae8d8c00174ec67d83eff42f977e0840a97c22550be732ce0335b38d38b0429f0a47d9cf4de25402d91ea7814c3c351 WHIRLPOOL 952ff6a2fef1e110438b0e59e9eb684649ff4d514e8a8787c12609e8705039e70bc3cda4dc3c5139b5787ac7fb2f449514bc5e63a07b18e2b29bbd99c828081f
+EBUILD sbcl-1.3.12.ebuild 8386 SHA256 02cdc92a1c50bb9a8a7e3b8ffaf4898d38a02a31dc80c34a53f207b5e9fbd5be SHA512 1b373b2bdb4ef86b582ecd5d1126df113d3db29ff91a995cfd2caecf9a154983f7ef614216050b31d673a7ecf959afc92b05fdf3e19d7cb7bf5179143a5710fb WHIRLPOOL 800e952d20c14afc665c867066c852bb5c6872f2dbdb7d63301077aaab0c0254b31a6d98b61b24e58366e5521f53370588ff4ce89c1664a267a8b3b9020130c6
+EBUILD sbcl-1.3.13.ebuild 8395 SHA256 39eec713202db56dc0dc6b6c984e8331f6f6da1c3f850a3002ff38782d67678c SHA512 df6b1f58258899381243fc718b2964e074c509bbaaa553db906f29ca2faf42f90bc2df7acf10b928a16a466a7053ad27d91ec31ab21475f44ca0930bd55da703 WHIRLPOOL ce7257afac7e90e583f22a1890ec81c7e000573970bf38e38bbad608492d4f9621f5a8eb48da3cbd6d46ee5af619a6bf46d83b37606ecab3b6ca09b8e7f4127b
+EBUILD sbcl-1.3.14.ebuild 8238 SHA256 009fe4398c6b6c46be4dda77c4643a3ec0f30bbacca2226dff8541ad5470ae2a SHA512 60c2c96000d7dd51b51a6e02564ab7d7ee54440100ebbc0fb22c2e2f7a8a8dcfcdc94caabf593ff5a47771e97d691e52b53e720c537e4f138cb1f90873d901b7 WHIRLPOOL 1a185d7548c8c49568504091093d90de49f69a24b6d1e6898ae2e61bcacea4902c69d880f6da206a956b03b4c8a343b8937ec8fd2b1500f35898eb66a094d2a9
+EBUILD sbcl-1.3.15.ebuild 8239 SHA256 2321bbf8677deeb0abf6043cc3ace4f3fa30ae02e53bea8ee8a28622ebdb7969 SHA512 d4e82efaf0607f01d00af483cbc7e1e1ece2fe7d2644a1d451e4953ba69c55917e277d4f82c6d137efbb8d847ce2f79945e6f8b0dc5a051eb1ad064de0496609 WHIRLPOOL 4fbf696b697faebe851b965bef7df7fd698f20afc103f0eb24014aca3bbc68d6abb8676a02552a2a93e13b1da51adf80772621bd5cd530fb1c9bbf30248f50cf
+EBUILD sbcl-1.3.16.ebuild 8130 SHA256 ddfd44d34e937826a4e71407981508ea6d2033481f2c907ac1eebf6d0c601721 SHA512 0a964bac7ce7bb2b69603b1ee50940726500b571356760c96256f70d6c06952a8143eb31ad28ee893541f8ae3079ba0e5ab7d973a316a7083b12f87d973a52b5 WHIRLPOOL 1fc20b640329a314ca83b623f527faa8cafffe47fc413354fce73bc4c96dfaaad7ea35e10b8c83658d9739e4ab45332a0e327388379c4192f9aafb82c361d66b
+EBUILD sbcl-1.3.17.ebuild 8075 SHA256 243ec7d7762b655416686524c77546e29a60e641d51b3e2cd551b946d9891360 SHA512 577c28682d76b8c149875faf9d57e94e127fbbd69a1e79cae61856ccb0e5fb278534f88609859aff154623f6ff4e1d0beb9a5a9bef9ce5b17d1b64c6f5df24d3 WHIRLPOOL 6d3a7c2575e36584ddbd42146a47ea971b1e3748b26aa4e6899850b3a1a1a334092d9d8e4305cbb5bdaedecffbe682a1e4fa47a4e8975c0c9799c9aba6a137f0
+EBUILD sbcl-1.3.18.ebuild 8075 SHA256 6f35890ba2eab375cdb70e626c985c635eb14d98e40fc5a73adde1d25e0d9701 SHA512 e374caa5d1d63be7418cd225653a97b3c1cc7db4c641948cfc4d12d898c1f4d8a6c9bf925494e09f4907b0e08eac33790197175de2ee61d80fc65185f25963b8 WHIRLPOOL fd7187f5f407a3ea53ab8fabaab9ad15ba8a6d67d548f9db830b068c04fd7ea327d15ffa0eca272b877276c9e07becdb5ffa8381a6a35d9d876a218451dc58c7
+EBUILD sbcl-1.3.19.ebuild 8164 SHA256 11a6409b81ca7935f045a5fc5a6639efd9771ac9bc172aefd051e3b4f7180f77 SHA512 c878588b4c15951c327981937b960a4649c1a719cdf4bdba4a4d125894963b5524323019fe4f58b9a4b923736ef41866e1a5b237909666c5aa823b0076229ce2 WHIRLPOOL bd87c481219a9ed4f7414784fcb94d2696a0af5a5e22c15752a6c8f7c7f1fffae0d3d8f99e87c2fb2005807a784b6790a0f26f9fbb3dc9d57a50bcb5f45dd0cd
+EBUILD sbcl-1.3.20.ebuild 8321 SHA256 a0b535cf23b959107df5bbaae02838fb098f34d54b1656906bba52ad7d61be17 SHA512 73405b1915e42e0aad14a8e4ed02df24a1230ee7be80c8fcfd99a8b43836a29c46ea68ba98c5ae793516aa685be115a263a5ac9eb79e738bd44c1d8a8f008fb6 WHIRLPOOL 27571a3f0a451257742e685ea67c3086d59b167b5b14d303e652fba589e3e68a2286f98a39f34dae313a04a3dbe45524f477989c3ba05003df0d36afde0a02ad
+EBUILD sbcl-1.3.21.ebuild 8320 SHA256 3118f5623bfb25fd40fff296029466a89ab6ccda8a67ce7b64b7d9c7a9e66bbc SHA512 b4f2a7c14f85a171dc3484e5743945493e9aab7fdfe848822ace3e0bd91e9c63840520af11a63a6c5371a055eb0430abdb76f338c30acbd2def16d9b323f0465 WHIRLPOOL 56430264a472acef6b2db13abd8bc323c0d241efc3093bb4f0a36a315e33b9f1af5edcf9fbb758ca801b977075c4776ab2c6e9c89498ef4aa051009c67ab23aa
+EBUILD sbcl-1.4.0.ebuild 8464 SHA256 ab68d98bf91b238678b1acf6165477f08e4a1089cfcb19b7c0c2a18e3d77fcb9 SHA512 c2cc70c76972d32852bfc6060d3241671e95619f043ba8c2f294747b884be9b42e9b73e18dc0d5c4a8e2d9d577cebe9e500c0638e83a565722b6beb11396e4ac WHIRLPOOL 4a6fb75ad6d0d3ba06bd05fb427b94d4e794f45a202c467b5482d0cbe3f430cbbdea6245b8ee84f344c171f7b272ea0b29e93cf7bbecb58b69eda9b37250bef5
+MISC ChangeLog 11602 SHA256 9af6af5a1bef12d483d7b86578e1db51636668715de7366070298478f11c52ff SHA512 b79217e2bc0f007863cdeaea277e0315eefec413eeba2a5b740e1b5760f6e10803009e005a5da5a97d7a754e456833454a7d36baa8442293f2ef4fb8a741ebc4 WHIRLPOOL 326dbf8f3d7cdad839af37e90b11a1aa5be1ceb58f2ff87024423c8cc67f64e2e980412ce644de04d17f6da13e78cfeebbe7591821a3580f025a69deb62ced4c
+MISC ChangeLog-2015 59251 SHA256 0853c0abb1c70d1f165f084a6d1c2927dca9a698e142457a391273cc59f9fb8b SHA512 de4457c148436f486b884367d526f4aab3a04e46d3fa7c2f13be5b469572cf6187024dd447114c7bdfbc587ae21889e4b5e54c091ba7110b55d542951b8ad12b WHIRLPOOL 809b96091fba9fd87c2fe31763714ddc15f699e96e9e202d8ea0682e3c937dfaf2e3fc8cdafde6a3e88bcff94f8fe2164494e77b6fe24a0bf8b16b0ddcc1d6d7
+MISC metadata.xml 1771 SHA256 8b4f304c48df97da17bf377fc6d2b36ca5778654cf34cea2e59ea1dd64972d5f SHA512 58c44f7632aade5faefeac78dbcdb09d8dc23d8913571f7022d2a9310e32c041f21589e4f9c80b44e9b3d89ea323fb19c87b49e401340584ae701dd4d39108b9 WHIRLPOOL 0f86b49ecc857531405619b0fbf81a79d48f43e7f409ca99b88b2fd260f3f81ca84f612b766405aa33042e1af4caffe5378e638fdfb614a5ce1afbbb4d6123a6
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/bsd-sockets-test-1.3.12.patch b/dev-lisp/sbcl/files/bsd-sockets-test-1.3.12.patch
new file mode 100644
index 000000000000..9a4eb151d0ce
--- /dev/null
+++ b/dev-lisp/sbcl/files/bsd-sockets-test-1.3.12.patch
@@ -0,0 +1,346 @@
+diff -r -U2 sbcl-1.3.12.orig/contrib/sb-bsd-sockets/tests.lisp sbcl-1.3.12/contrib/sb-bsd-sockets/tests.lisp
+--- sbcl-1.3.12.orig/contrib/sb-bsd-sockets/tests.lisp 2016-11-30 04:07:35.000000000 +0700
++++ sbcl-1.3.12/contrib/sb-bsd-sockets/tests.lisp 2016-12-10 15:56:14.727887603 +0700
+@@ -38,11 +38,11 @@
+ #-(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 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))
+- ((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)
+
+ (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)))
+- ((or address-family-not-supported protocol-not-supported-error) () 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)))
++; ((or address-family-not-supported protocol-not-supported-error) () 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/bsd-sockets-test.patch b/dev-lisp/sbcl/files/bsd-sockets-test.patch
new file mode 100644
index 000000000000..d08fd8610b89
--- /dev/null
+++ b/dev-lisp/sbcl/files/bsd-sockets-test.patch
@@ -0,0 +1,22 @@
+diff -r -U1 sbcl-1.1.14.orig/contrib/sb-bsd-sockets/tests.lisp sbcl-1.1.14/contrib/sb-bsd-sockets/tests.lisp
+--- sbcl-1.1.14.orig/contrib/sb-bsd-sockets/tests.lisp 2013-11-30 21:28:17.000000000 +0700
++++ sbcl-1.1.14/contrib/sb-bsd-sockets/tests.lisp 2014-01-11 20:48:22.762700792 +0700
+@@ -31,10 +31,10 @@
+ ;;; for unknown protocols...
+-#-(and freebsd 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)
++;(deftest get-protocol-by-name/error
++; (handler-case (get-protocol-by-name "nonexistent-protocol")
++; (unknown-protocol ()
++; t)
++; (:no-error ()
++; nil))
++; t)
+
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.13-config.patch b/dev-lisp/sbcl/files/sbcl-1.3.13-config.patch
new file mode 100644
index 000000000000..e20fc07b028d
--- /dev/null
+++ b/dev-lisp/sbcl/files/sbcl-1.3.13-config.patch
@@ -0,0 +1,32 @@
+diff -r -U2 sbcl-1.3.13.orig/src/runtime/Config.x86-64-linux sbcl-1.3.13/src/runtime/Config.x86-64-linux
+--- sbcl-1.3.13.orig/src/runtime/Config.x86-64-linux 2016-12-31 09:38:30.000000000 +0100
++++ sbcl-1.3.13/src/runtime/Config.x86-64-linux 2017-02-05 16:11:54.801938872 +0100
+@@ -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 -r -U2 sbcl-1.3.13.orig/src/runtime/Config.x86-linux sbcl-1.3.13/src/runtime/Config.x86-linux
+--- sbcl-1.3.13.orig/src/runtime/Config.x86-linux 2016-12-31 09:38:30.000000000 +0100
++++ sbcl-1.3.13/src/runtime/Config.x86-linux 2017-02-05 16:10:16.882945480 +0100
+@@ -50,12 +50,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
+-
+ GC_SRC = gencgc.c
+
diff --git a/dev-lisp/sbcl/files/sbcl-1.3.14-gentoo-fix_nopie_for_hardened_toolchain.patch b/dev-lisp/sbcl/files/sbcl-1.3.14-gentoo-fix_nopie_for_hardened_toolchain.patch
new file mode 100644
index 000000000000..aa74a2d61354
--- /dev/null
+++ b/dev-lisp/sbcl/files/sbcl-1.3.14-gentoo-fix_nopie_for_hardened_toolchain.patch
@@ -0,0 +1,17 @@
+--- sbcl-1.3.14-orig/src/runtime/GNUmakefile 2017-01-23 06:43:20.000000000 +1100
++++ sbcl-1.3.14/src/runtime/GNUmakefile 2017-02-28 12:44:37.627161988 +1100
+@@ -40,12 +40,12 @@
+ include Config
+
+ # Disable PIE when possible
+-ifneq ($(shell $(CC) -dumpspecs 2>/dev/null | grep -e no-pie),)
++ifneq ($(shell $(CC) -dumpspecs 2>/dev/null | grep -e '[^f]no-pie'),)
+ CFLAGS += -fno-pie
+ LINKFLAGS += -no-pie
+ LDFLAGS += -no-pie
+ endif
+-ifneq ($(shell $(CC) -dumpspecs 2>/dev/null | grep -e -nopie),)
++ifneq ($(shell $(CC) -dumpspecs 2>/dev/null | grep -e '[^f]nopie'),)
+ CFLAGS += -fno-pie
+ LINKFLAGS += -nopie
+ LDFLAGS += -nopie
diff --git a/dev-lisp/sbcl/files/sbcl-1.3.15-gentoo-fix_nopie_for_hardened_toolchain.patch b/dev-lisp/sbcl/files/sbcl-1.3.15-gentoo-fix_nopie_for_hardened_toolchain.patch
new file mode 100644
index 000000000000..a3f933097503
--- /dev/null
+++ b/dev-lisp/sbcl/files/sbcl-1.3.15-gentoo-fix_nopie_for_hardened_toolchain.patch
@@ -0,0 +1,19 @@
+diff -U3 -r sbcl-1.3.15.orig/src/runtime/GNUmakefile sbcl-1.3.15/src/runtime/GNUmakefile
+--- sbcl-1.3.15.orig/src/runtime/GNUmakefile 2017-02-28 20:51:29.000000000 +0100
++++ sbcl-1.3.15/src/runtime/GNUmakefile 2017-03-02 18:22:13.959257937 +0100
+@@ -46,13 +46,13 @@
+ include Config
+
+ # Disable PIE when possible
+-ifneq ($(shell $(CC) -dumpspecs 2>/dev/null | grep -e no-pie),)
++ifneq ($(shell $(CC) -dumpspecs 2>/dev/null | grep -e '[^f]no-pie'),)
+ CFLAGS += -fno-pie
+ LINKFLAGS += -no-pie
+ LDFLAGS += -no-pie
+ __LDFLAGS__ += -no-pie
+ endif
+-ifneq ($(shell $(CC) -dumpspecs 2>/dev/null | grep -e nopie),)
++ifneq ($(shell $(CC) -dumpspecs 2>/dev/null | grep -e '[^f]nopie'),)
+ CFLAGS += -fno-pie
+ LINKFLAGS += -nopie
+ LDFLAGS += -nopie
diff --git a/dev-lisp/sbcl/files/sbcl-1.3.16-gentoo-fix_install_man.patch b/dev-lisp/sbcl/files/sbcl-1.3.16-gentoo-fix_install_man.patch
new file mode 100644
index 000000000000..5e01b331fac8
--- /dev/null
+++ b/dev-lisp/sbcl/files/sbcl-1.3.16-gentoo-fix_install_man.patch
@@ -0,0 +1,12 @@
+diff -Nuar a/install.sh b/install.sh
+--- a/install.sh 2017-03-27 11:57:34.000000000 +0200
++++ b/install.sh 2017-04-04 20:21:25.510085555 +0200
+@@ -110,7 +110,7 @@
+ CP="cp -f"
+
+ # 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/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..e4a3f6aa22b7
--- /dev/null
+++ b/dev-lisp/sbcl/metadata.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>pchrist@gentoo.org</email>
+ <name>Panagiotis Christopoulos</name>
+ <description>primary-maintainer</description>
+ </maintainer>
+ <maintainer type="person">
+ <email>bugs@cddr.org</email>
+ <name>Stelian Ionescu (fe[nl]ix)</name>
+ <description>second-maintainer</description>
+ </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.0.ebuild b/dev-lisp/sbcl/sbcl-1.3.0.ebuild
new file mode 100644
index 000000000000..572b9a65fc22
--- /dev/null
+++ b/dev-lisp/sbcl/sbcl-1.3.0.ebuild
@@ -0,0 +1,244 @@
+# Copyright 1999-2016 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.0
+BV_PPC=1.2.7
+BV_SPARC=1.0.28
+BV_ALPHA=1.0.28
+BV_ARM=1.2.7
+BV_ARM64=1.3.0
+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
+
+ 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
+ docinto html
+ dodoc -r doc/manual/
+ 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
+
+ dodoc BUGS CREDITS INSTALL NEWS OPTIMIZATIONS PRINCIPLES README TLA TODO
+
+ # 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.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.12.ebuild b/dev-lisp/sbcl/sbcl-1.3.12.ebuild
new file mode 100644
index 000000000000..45da677bb662
--- /dev/null
+++ b/dev-lisp/sbcl/sbcl-1.3.12.ebuild
@@ -0,0 +1,242 @@
+# Copyright 1999-2016 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.12
+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.3.12.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.13.ebuild b/dev-lisp/sbcl/sbcl-1.3.13.ebuild
new file mode 100644
index 000000000000..3f97aebcd190
--- /dev/null
+++ b/dev-lisp/sbcl/sbcl-1.3.13.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.13
+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.3.12.patch
+ # bugs #560276, #561018
+ eapply "${FILESDIR}"/sb-posix-test-1.2.15.patch
+ # bug #599902, #607302
+ eapply "${FILESDIR}"/${PN}-1.3.13-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.14.ebuild b/dev-lisp/sbcl/sbcl-1.3.14.ebuild
new file mode 100644
index 000000000000..167c479828ac
--- /dev/null
+++ b/dev-lisp/sbcl/sbcl-1.3.14.ebuild
@@ -0,0 +1,236 @@
+# 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.14
+BV_PPC=1.2.7
+BV_SPARC=1.0.28
+BV_ALPHA=1.0.28
+BV_ARM=1.3.12
+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.3.12.patch
+ # bugs #560276, #561018
+ eapply "${FILESDIR}"/sb-posix-test-1.2.15.patch
+ # bug #599902, #607302, #583930
+ eapply "${FILESDIR}"/${PN}-1.3.14-gentoo-fix_nopie_for_hardened_toolchain.patch
+
+ eapply "${FILESDIR}"/${PN}-1.2.11-solaris.patch
+ eapply "${FILESDIR}"/${PN}-1.2.13-verbose-build.patch
+
+ 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.15.ebuild b/dev-lisp/sbcl/sbcl-1.3.15.ebuild
new file mode 100644
index 000000000000..51f1378df246
--- /dev/null
+++ b/dev-lisp/sbcl/sbcl-1.3.15.ebuild
@@ -0,0 +1,236 @@
+# 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.15
+BV_PPC=1.2.7
+BV_SPARC=1.0.28
+BV_ALPHA=1.0.28
+BV_ARM=1.3.12
+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.3.15.patch
+ # bugs #486552, #527666, #517004
+ eapply "${FILESDIR}"/bsd-sockets-test-1.3.12.patch
+ # bugs #560276, #561018
+ eapply "${FILESDIR}"/sb-posix-test-1.2.15.patch
+ # bug #599902, #607302, #583930
+ eapply "${FILESDIR}"/${PN}-1.3.15-gentoo-fix_nopie_for_hardened_toolchain.patch
+
+ eapply "${FILESDIR}"/${PN}-1.2.11-solaris.patch
+ eapply "${FILESDIR}"/${PN}-1.2.13-verbose-build.patch
+
+ 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.16.ebuild b/dev-lisp/sbcl/sbcl-1.3.16.ebuild
new file mode 100644
index 000000000000..57ea1430d92b
--- /dev/null
+++ b/dev-lisp/sbcl/sbcl-1.3.16.ebuild
@@ -0,0 +1,234 @@
+# 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.16
+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 )
+ 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}"/${P}-gentoo-fix_install_man.patch
+ # bug #468482
+ eapply "${FILESDIR}"/concurrency-test-1.3.15.patch
+ # bugs #486552, #527666, #517004
+ eapply "${FILESDIR}"/bsd-sockets-test-1.3.12.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
+
+ # 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.17.ebuild b/dev-lisp/sbcl/sbcl-1.3.17.ebuild
new file mode 100644
index 000000000000..7ba0df37c2e6
--- /dev/null
+++ b/dev-lisp/sbcl/sbcl-1.3.17.ebuild
@@ -0,0 +1,234 @@
+# 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.17
+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 )
+ 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}"/bsd-sockets-test-1.3.12.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
+
+ # 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.18.ebuild b/dev-lisp/sbcl/sbcl-1.3.18.ebuild
new file mode 100644
index 000000000000..8ddf97d51508
--- /dev/null
+++ b/dev-lisp/sbcl/sbcl-1.3.18.ebuild
@@ -0,0 +1,234 @@
+# 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.18
+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 )
+ 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}"/bsd-sockets-test-1.3.12.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
+
+ # 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.19.ebuild b/dev-lisp/sbcl/sbcl-1.3.19.ebuild
new file mode 100644
index 000000000000..19be040bd272
--- /dev/null
+++ b/dev-lisp/sbcl/sbcl-1.3.19.ebuild
@@ -0,0 +1,235 @@
+# 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.19
+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
+
+ # 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.20.ebuild b/dev-lisp/sbcl/sbcl-1.3.20.ebuild
new file mode 100644
index 000000000000..a6c44f0043ba
--- /dev/null
+++ b/dev-lisp/sbcl/sbcl-1.3.20.ebuild
@@ -0,0 +1,237 @@
+# 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.3.20
+BV_AMD64=1.3.20
+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.3.21.ebuild b/dev-lisp/sbcl/sbcl-1.3.21.ebuild
new file mode 100644
index 000000000000..8d9ab4469898
--- /dev/null
+++ b/dev-lisp/sbcl/sbcl-1.3.21.ebuild
@@ -0,0 +1,237 @@
+# 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.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.0.ebuild b/dev-lisp/sbcl/sbcl-1.4.0.ebuild
new file mode 100644
index 000000000000..9f565e6c9e05
--- /dev/null
+++ b/dev-lisp/sbcl/sbcl-1.4.0.ebuild
@@ -0,0 +1,240 @@
+# 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.4.0
+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.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
+
+ # bugs #526194, #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
+
+ # 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
+
+ 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/trivial-gray-streams/Manifest b/dev-lisp/trivial-gray-streams/Manifest
new file mode 100644
index 000000000000..a61f4ea17501
--- /dev/null
+++ b/dev-lisp/trivial-gray-streams/Manifest
@@ -0,0 +1,5 @@
+DIST trivial-gray-streams-20170830.tar.bz2 7520 SHA256 0aa3640bb5862b3427950d6732c0d3cef18a7b3d401d50f2ec8537017bd9db07 SHA512 4fbcfff5f2875daaf9c9bb286e2f753fccbb9840bb3c3593b9755204475aaf34241c1ffc2c93b5bf2c3428400e91082b01f15812eb51251afcabe9a57d5df3fa WHIRLPOOL 0d18affea069d4871277cbe64d6e09a2b90ee6de189e3108fdd6c7b76faf84021b191509958dc3ffcc71af9f9ad5a8983ba4d3c7dc773b0e24981cabf02746fe
+EBUILD trivial-gray-streams-20170830.ebuild 427 SHA256 5f74795f9111fd0b8dcd5f4db25d10e3830e142d99819530735cf4d2a6579e06 SHA512 2dce2e1ae6fe587c3c73e8304c6237a42b4fe7b1c4186c2f1ceaff42c7e2bd395d9f82e2e2dc790cb0d783e0b69b7e136b94fd8c017688996e95cdd572e6bc14 WHIRLPOOL 550af2ae71100cf05806dcc3093f29baf607c0df074f85036ed44e37babdc9ec40a1d0bfc9a5d7d4349d2827f4f35e6ec73821df677118c1042240663296452e
+EBUILD trivial-gray-streams-99999999.ebuild 409 SHA256 8a15d5af7700b6a2fdd12fd0bf51c7eabeab900c81fb611ead37936d72e03751 SHA512 193bb970f025012af66a890758ee862d0b97d03e558b9b19fd4b4378c51b1811e33f10690e88b7804927f500c31cd332a07eec6b96e13a8e631517f51630860f WHIRLPOOL 61551506b38e5b7d34e1c871c1672bbf4f3c45f52bb09d8be1a783e5b5b276c38752562ea3f019875c2f74b61293557891dc2afd8d81d447c001eed1e2068ccf
+MISC ChangeLog 826 SHA256 38204dc95620daa128026efb3686bac9c59cea6d687a10a172b097f589f4ae52 SHA512 5d80b7400be7b02dbcfded28d6df2dc400b49c970b6435fe1a792b1bdfeba6c117da6edd35d4f2bae7519655b534b67723ac0b1781a703682490f68fce2d0e05 WHIRLPOOL 3080c9c7b6f86039dc4269ce2a1aa4d1285ead166618e71f55604b4634b7df8c36117f96ff580275b0da8e624744b6fc7ec196a69092ddda837dcab500a4d9e8
+MISC metadata.xml 394 SHA256 598a820ae92f6b7b9d784d4ae146d377d2cdd00fe472e9ddcc4342f8a6bb1ba3 SHA512 2aee230ee6fd936e5ba5d50c3e17e47aaa1dffc4cae7cddf2751ff331fe2191ad4c4e899aed7871ce90404c1b3e366282a9fcfaf928fea3dba8c159c64c6560f WHIRLPOOL 70f0f83a1a8a3183eab399d874e5f0981bccc5b2ffb35d10f4320345cadecc7276877f1843157698543f2fae223dafe74455a2b4ef14f947e879aad15a8890ea
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/Manifest b/dev-lisp/uiop/Manifest
new file mode 100644
index 000000000000..1aa0358e3dac
--- /dev/null
+++ b/dev-lisp/uiop/Manifest
@@ -0,0 +1,17 @@
+DIST asdf-3.0.3.tar.gz 427575 SHA256 05f11d83d33f1080f683701ad0e139011051f9c3190c3b1f22bc63208d8d5f47 SHA512 d9d8d466c7b6aa6beb1c22da4fd10499fa784c39ab138bea7ecb8cdccf769766572ebe91c89db2d5c53e493096248f82a224be95c1fcac8b7beebe1b57f34883 WHIRLPOOL 3503250361350b59d095b743dcc627e9ec1e3ec469066287b80d97924d54ea254fed94f77596ed71b4c9974e4c9b97de8b6a35b3c6529f559d6ba392b695ccf4
+DIST asdf-3.1.5.tar.gz 400359 SHA256 3005aa50470feefc3f786e4e300f275bef3d3662ed1904fd25a22552e4cc59ad SHA512 937d45eabea0853cd1b2e78e84cf33e7b55065857ffcf49fd87ccd60e21ae09c6dc7ab3649d48b37aeb1beaeeaf6c816e5ce035f0283707105296fb976044516 WHIRLPOOL 730e55f875367d190a893b52663bcf35ed5880715ef696d519d35947b82f8a304c94a46294f48c4403c1583895f41a03955510c92848a7290d1d681ab3214e24
+DIST asdf-3.1.6.tar.gz 396066 SHA256 1c15f8db038ace781fa5e6f0cf045b06f6315c715c55d8bcc185238182bb6514 SHA512 3203bef1ce4c2d28306ca1ee214d3d5fd04b3d2caa61f606d0334f100358bfbd9b03d69c95e83734175639a91e76aeac509e949768fc694817631078671a9bc1 WHIRLPOOL 52a4a62f17d54c638a3f3ed4c42804c64e34a86c8df5bf0e118ff478c38c1558adb8751a987b97093ec5adc0f7a6c951f9c563ef7549fc7591fdffd9a7aa1212
+DIST asdf-3.1.7.tgz 402257 SHA256 06b7b081a887183d31d1fc710d4f63a2e30ff6f70ee9792f130017abd62037be SHA512 ebe2ddf702f6200bf98408fb262e9929565c9d29bcd874dd2657a6f84e123b0153a78e457fb425d48a05c427f7c090ab5fd0e6201223eb4b296b3b4cd5b57c26 WHIRLPOOL 6fff0e34909bc3094c6ea5acddd5c35b08a1ae173f3343f3fd4e11f4ba4320d377f014bca4f74218de794d2dd4d461641ba96ba55172427e8fa4c846aa2e20fb
+DIST asdf-3.2.0.tar.gz 438536 SHA256 2a5d406394c8b124e02857ccb0a640363afea8d71c194cfc7ece2ae00a84445b SHA512 2c273aa7b1049c1a8f4da5d195ac7c2cceba238228508847b5afbed8a258ad49e6b346e79b07d0347be0326d3558ed881838fe8461a6d45cc3f2d58380789fcb WHIRLPOOL 346d1acc18e8c48f3e49b5abb2cf0042005bea86be9895e0622963156133d4c5dfa2616e98b8bc15304acce8ce21c06c2bed015fc700c0f1b098126d9d14add0
+DIST asdf-3.2.1.tar.gz 460536 SHA256 58dcb02e0bc890aee4869e93726dc07a14d856f9eb9e3530cb3c79a081e69fa9 SHA512 686881536126eb6ffb7e9db763aec02e1ad7ab4df60cc96d094bc4cebb95453e3d57273cb925471c7ee13e4378ca3c0d697c416b7374ad07148e11d89aee85b0 WHIRLPOOL 7ac3c0b069cb23266b264c912880dbd1a2d92f3f5d6fe4de4e747fdeed10faf65bf8ad846f5bb46992f10febcfa0701bd58604b9ad19fbd808ea43c889ed1ff6
+DIST asdf-3.3.0.tar.gz 498451 SHA256 685bc6252feb2120c6d66aa73a0a0e4217da7bb64b9a913fbd44371a8584179b SHA512 4e8b3434d9eb504af253fa39ac759cceb7ea0c3e2c364875d7259b32a9818b051fb2a3c94c188c7f38e43825e2a18107f1732211534a8b1fbbaa77b6c7f90486 WHIRLPOOL da640ea3f99a6a2bee89ebb004fdca700bffe9f719c45233be9e26952fab0ae2b7461ad1078913e224e2fc63e3e7c9970690510e8631dab7a23f77dd3df005d2
+EBUILD uiop-3.0.3.ebuild 797 SHA256 356735c5b55f25e7c46938dd12663bf557f3b9cbc316b9b1cb775db43761adae SHA512 b9899eee938e8e013ccc2400997b8ee3e9070bf6836171bbddd416baecf67ae957bb9901dde39f26e22b72bb0104dd64091e24c30883e4656cac0649cf2dc6be WHIRLPOOL 60ad301cba1ae14463e114dbd72af6e47ab5715f9e3138e20c301982898aaefc1daaf90c9979e2088fd19bc0881b1ea1c0515c8c9f3a12ec25875e84ab6534ab
+EBUILD uiop-3.1.5.ebuild 867 SHA256 7eaa3c06fa95775dfb52d572e2157e6f90cd97f404f8aa46f3131881b5315bd0 SHA512 9f7fbeb708368d333ffb36094746b83193b64c23a5c25491e5fc53d9fa0e5d70ffde0ba356621916b50e04b3d3eff9fc855fddc821899636c880f64044ac8ce1 WHIRLPOOL 99e54ea4c2eb63e620e8e108d883041b34179be172933b9860963c0ecbe1c03b068cdc6009e0b3f3b871ecc3fea4f01ab0592ea114908a6fb46656410b235c47
+EBUILD uiop-3.1.6.ebuild 871 SHA256 c2c90c1eb147c6f92f048f36b647e112f84a83d46b7f15352c16162ed8435522 SHA512 d1a46364aa2a55e3bf474d9ec5a9187657510f0497fbbae743229737017ba5bbb66f75080c72227c833b6a3ac4ffcdab34b0633ea0c8c287645b38c418ba668c WHIRLPOOL 8225e30a02e793de472b86e037cfb66115a8fd573b6cb0eee08f5418705ac520f63ce274dad839481035721af972b476edfd3f77251cb01c40a3062f8107a938
+EBUILD uiop-3.1.7.ebuild 795 SHA256 074dbc93ed1799b10b4909b4fba454a6334e58575b2e1a9c84b1936dbcd93e1e SHA512 dbd0ab07ecd5b6fd80153de10b39593af511ce1e929b4e9d9fc1037782469335679725c84d1028642ee1c2d613a5a2583000c8288cc93ca1188fa9a65dff37cb WHIRLPOOL 32b592a5f27fc964280229d5103bf54647a2f591a42b657c77ad36dd6baa320f7350658020d7bd6259987788c3f875ea50d47686ec14eb24d0a2c11685aa8892
+EBUILD uiop-3.2.0.ebuild 809 SHA256 e8fc6df353085b7f56d1f719f63c48c284e2f0196211962ffc7fe72619260995 SHA512 7ca137a6496e41b7a1c8ffdc99990aab7d54bb20887357f23422f4411d32a50c9eb299e1e86bdbf118063a1bbe182f5d889efbe7b5bae65db8f07a8dbdc9aadc WHIRLPOOL 55056cb6946aafc69b7498c5e11f68ceabd95efdaf09109e9e6be8bc69d0d6892341e04277fa2475172da911623b839edfd6789d4cb1f49352ce33b55f5c1cc0
+EBUILD uiop-3.2.1.ebuild 809 SHA256 e8fc6df353085b7f56d1f719f63c48c284e2f0196211962ffc7fe72619260995 SHA512 7ca137a6496e41b7a1c8ffdc99990aab7d54bb20887357f23422f4411d32a50c9eb299e1e86bdbf118063a1bbe182f5d889efbe7b5bae65db8f07a8dbdc9aadc WHIRLPOOL 55056cb6946aafc69b7498c5e11f68ceabd95efdaf09109e9e6be8bc69d0d6892341e04277fa2475172da911623b839edfd6789d4cb1f49352ce33b55f5c1cc0
+EBUILD uiop-3.3.0.ebuild 809 SHA256 e8fc6df353085b7f56d1f719f63c48c284e2f0196211962ffc7fe72619260995 SHA512 7ca137a6496e41b7a1c8ffdc99990aab7d54bb20887357f23422f4411d32a50c9eb299e1e86bdbf118063a1bbe182f5d889efbe7b5bae65db8f07a8dbdc9aadc WHIRLPOOL 55056cb6946aafc69b7498c5e11f68ceabd95efdaf09109e9e6be8bc69d0d6892341e04277fa2475172da911623b839edfd6789d4cb1f49352ce33b55f5c1cc0
+MISC ChangeLog 3786 SHA256 30b5f2ebf31a3cfcb89a4a6021e9f1fe2ffa93c0127d7c5ff248cf16466973f9 SHA512 cbd095696aa72936596c24009e6eb228977a959a449ebdcf7003d193cb2ce2c65ea979b11d5ebe2e38a553daae6af93a008160c7490e0066a37361adad67c1ca WHIRLPOOL ca2eba23e6358c1617102d4a6528fe30085f6f63ee31af96d49459df739534be539183da34bcef3529444139f1df28a150f8efed1691bb160bca30e7749cbf50
+MISC ChangeLog-2015 2464 SHA256 b7f8590b72cb78df09e79d95f063c03ae690086290eb322db6546d16414b353e SHA512 498a54ed0b4d83a05cf3acdee556716a2474367f41dd2fb53efbc5a8602873e3fffa2446b1ead6c6317fb2f0ccddc0b4d74f058f7bbdaeaef21ba7dfa1380487 WHIRLPOOL 9d74b7bd0c8b7c92348e2e93add942cf84da09692f1dede8808eac81c506d6b31d3a5dd8a720d4a75f5d745c45ac73dfbc211519fdbfc0577a534e3c5a7bc944
+MISC metadata.xml 261 SHA256 627a8fb846aff40f2f1e29e77040baa5b21fd7663158ab97b84012e0b5e2f742 SHA512 fb754c4ed3579db5dbe303197a05647b7cfab0a3fe47fd2140d5f77641be752d10ccf49a9c267406a0f3ba3dcda8831f778b9596d723f65aff10142bfad60d3d WHIRLPOOL 02fb9a9a64cd705025462ef7601b9b452954c62e41f57422a5a74e6e0c84695aca510635335b0cf35031dfbe75142c0feb06ce1ba4f2794c6230378d772c3ae3
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.0.3.ebuild b/dev-lisp/uiop/uiop-3.0.3.ebuild
new file mode 100644
index 000000000000..65ac464f69ee
--- /dev/null
+++ b/dev-lisp/uiop/uiop-3.0.3.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 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="amd64 ppc sparc x86"
+IUSE=""
+
+RDEPEND="~dev-lisp/asdf-${PV}"
+
+S="${WORKDIR}/${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.1.5.ebuild b/dev-lisp/uiop/uiop-3.1.5.ebuild
new file mode 100644
index 000000000000..45586fb2d9df
--- /dev/null
+++ b/dev-lisp/uiop/uiop-3.1.5.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2017 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="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 /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.1.6.ebuild b/dev-lisp/uiop/uiop-3.1.6.ebuild
new file mode 100644
index 000000000000..4f22c7320455
--- /dev/null
+++ b/dev-lisp/uiop/uiop-3.1.6.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2015 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="~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 /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.1.7.ebuild b/dev-lisp/uiop/uiop-3.1.7.ebuild
new file mode 100644
index 000000000000..0340a992de22
--- /dev/null
+++ b/dev-lisp/uiop/uiop-3.1.7.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+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}.tgz"
+
+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}/${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.2.0.ebuild b/dev-lisp/uiop/uiop-3.2.0.ebuild
new file mode 100644
index 000000000000..354fca8768ef
--- /dev/null
+++ b/dev-lisp/uiop/uiop-3.2.0.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.2.1.ebuild b/dev-lisp/uiop/uiop-3.2.1.ebuild
new file mode 100644
index 000000000000..354fca8768ef
--- /dev/null
+++ b/dev-lisp/uiop/uiop-3.2.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.0.ebuild b/dev-lisp/uiop/uiop-3.3.0.ebuild
new file mode 100644
index 000000000000..354fca8768ef
--- /dev/null
+++ b/dev-lisp/uiop/uiop-3.3.0.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"
+}