diff options
| author | Palica <palica+gitlab@liguros.net> | 2020-06-23 22:35:08 +0200 |
|---|---|---|
| committer | Palica <palica+gitlab@liguros.net> | 2020-06-23 22:35:08 +0200 |
| commit | ecdac123787b96ce6649f0f91da12ea6458cc2b1 (patch) | |
| tree | b89c74d9e6fe6e8aebc4c77bcbeb4ab73214127d /dev-lisp | |
| parent | 1be72aa41cf41dedadeecf59dca9f01de6381f5e (diff) | |
| download | baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.gz baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.xz baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.zip | |
Updating liguros repo
Diffstat (limited to 'dev-lisp')
122 files changed, 7230 insertions, 0 deletions
diff --git a/dev-lisp/abcl/Manifest b/dev-lisp/abcl/Manifest new file mode 100644 index 000000000000..96ca2c285a73 --- /dev/null +++ b/dev-lisp/abcl/Manifest @@ -0,0 +1 @@ +DIST abcl-src-1.5.0.tar.gz 1187678 BLAKE2B 4c6993ab90d6fe12e93bf185ecdc16dd5c69ff5c65881e74db51ba9a8167e3a3de4b25ff9971084e92499f654aacec2a07757d100a5977944076476d47c17438 SHA512 d56c23a82103dfebb3361903af096f923738008e551f3b5e07e00f0423c8ade0b07a388b7834b5d79d9191863b38db2c17fa27bffd848d7cba88d6bb67e32db3 diff --git a/dev-lisp/abcl/abcl-1.5.0.ebuild b/dev-lisp/abcl/abcl-1.5.0.ebuild new file mode 100644 index 000000000000..e044eb611f12 --- /dev/null +++ b/dev-lisp/abcl/abcl-1.5.0.ebuild @@ -0,0 +1,34 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit eutils java-pkg-2 java-ant-2 + +MY_P=${PN}-src-${PV} + +DESCRIPTION="Armed Bear Common Lisp is a Common Lisp implementation for the JVM." +HOMEPAGE="http://common-lisp.net/project/armedbear/" +SRC_URI="http://abcl.org/releases/${PV}/${MY_P}.tar.gz" +RESTRICT="mirror" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="" + +DEPEND=">=virtual/jdk-1.5" +RDEPEND=">=virtual/jre-1.5" + +S="${WORKDIR}"/${MY_P} + +src_compile() { + eant abcl.compile || die "Can't compile ABCL" + eant abcl.jar || die "Can't make ABCL jar archive" +} + +src_install() { + java-pkg_dojar dist/abcl.jar + java-pkg_dolauncher ${PN} --java_args "-server -Xrs" --main org.armedbear.lisp.Main + dodoc README +} diff --git a/dev-lisp/abcl/metadata.xml b/dev-lisp/abcl/metadata.xml new file mode 100644 index 000000000000..bdf8ef2124c1 --- /dev/null +++ b/dev-lisp/abcl/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> + <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> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-lisp/alexandria/Manifest b/dev-lisp/alexandria/Manifest new file mode 100644 index 000000000000..646c8333fee8 --- /dev/null +++ b/dev-lisp/alexandria/Manifest @@ -0,0 +1 @@ +DIST alexandria-20171029.tar.bz2 45812 BLAKE2B 812f43483a0b25e4c4d481deec90ac1681a3c76062f5bf43b14530b239b2978e8d0cf735249b1093298db2761dc80a7d81e54da1e763db469b691b60d6db5d20 SHA512 a0a7386af94bae00139e3d06306169883cb1c5498c84d7a6db552a5dfa2ff8516d62609cb8a059c11f4200d507737ba99032d81b5a97112a2f3e7850572060e2 diff --git a/dev-lisp/alexandria/alexandria-20171029.ebuild b/dev-lisp/alexandria/alexandria-20171029.ebuild new file mode 100644 index 000000000000..bd042f0736f8 --- /dev/null +++ b/dev-lisp/alexandria/alexandria-20171029.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit common-lisp-3 eutils + +DESCRIPTION="A collection of portable utilities for Common Lisp" +HOMEPAGE="http://common-lisp.net/project/alexandria/" +if [[ ${PV} == 9999* ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.common-lisp.net/alexandria/alexandria.git" +else + SRC_URI="mirror://gentoo/${P}.tar.bz2" + KEYWORDS="~amd64 ~ppc ~sparc ~x86" +fi + +LICENSE="public-domain" +SLOT="0" +IUSE="doc" + +DEPEND="doc? ( sys-apps/texinfo )" +RDEPEND="" + +src_prepare() { + eapply "${FILESDIR}/${PN}-fix-docstrings.patch" + eapply_user +} + +src_compile() { + use doc && emake -C doc +} + +src_install() { + common-lisp-install-sources -t all *.lisp LICENCE + common-lisp-install-asdf + dodoc README AUTHORS + use doc && doinfo doc/${PN}.info && dodoc doc/{"${PN}.html","${PN}.pdf"} +} diff --git a/dev-lisp/alexandria/files/alexandria-fix-docstrings.patch b/dev-lisp/alexandria/files/alexandria-fix-docstrings.patch new file mode 100644 index 000000000000..747c9e3bf59d --- /dev/null +++ b/dev-lisp/alexandria/files/alexandria-fix-docstrings.patch @@ -0,0 +1,29 @@ +diff -Nuar a/doc/docstrings.lisp b/doc/docstrings.lisp +--- a/doc/docstrings.lisp 2016-12-11 00:04:21.272877121 +0100 ++++ b/doc/docstrings.lisp 2016-12-11 00:05:03.752876882 +0100 +@@ -718,7 +718,7 @@ + ;; sbcl.texinfo defines macros that expand @&key and friends to &key. + (mapcar (lambda (name) + (if (member name lambda-list-keywords) +- (format nil "@~A" name) ++ (format nil "~A" name) + name)) + (lambda-list doc))))) + +@@ -833,11 +833,11 @@ + (flet ((macro (name) + (let ((string (string-downcase name))) + (format *texinfo-output* "@macro ~A~%~A~%@end macro~%" string string)))) +- (macro '&allow-other-keys) +- (macro '&optional) +- (macro '&rest) +- (macro '&key) +- (macro '&body))) ++ (macro 'allow-other-keys) ++ (macro 'optional) ++ (macro 'rest) ++ (macro 'key) ++ (macro 'body))) + + (defun generate-includes (directory packages &key (base-package :cl-user)) + "Create files in `directory' containing Texinfo markup of all diff --git a/dev-lisp/alexandria/metadata.xml b/dev-lisp/alexandria/metadata.xml new file mode 100644 index 000000000000..02cd3b76ff59 --- /dev/null +++ b/dev-lisp/alexandria/metadata.xml @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>common-lisp@gentoo.org</email> + <name>Gentoo Common Lisp Project</name> + </maintainer> + <longdescription lang="en"> + Alexandria is a project and a library. + + As a project Alexandria's goal is to reduce duplication of effort and + improve portability of Common Lisp code according to its own + idiosyncratic and rather conservative aesthetic. What this actually + means is open to debate, but each project member has a veto on all + project activities, so a degree of conservativism is inevitable. + + As a library Alexandria is one of the means by which the project + strives for its goals. Alexandria is a collection of portable public + domain utilities that meet the following constraints: + + * Utilities, not extensions: Alexandria will not contain conceptual + extensions to Common Lisp, instead limiting itself to tools and + utilities that fit well within the framework of standard ANSI Common + Lisp. Test-frameworks, system definitions, logging facilities, + serialization layers, etc. are all outside the scope of Alexandria + as a library, though well within the scope of Alexandria as a project. + * Conservative: Alexandria limits itself to what project members + consider conservative utilities. Alexandria does not and will not + include anaphoric constructs, loop-like binding macros, etc. + * Portable: Alexandria limits itself to portable parts of Common + Lisp. Even apparently conservative and usefull functions remain + outside the scope of Alexandria if they cannot be implemented + portably. Portability is here defined as portable within a + conforming implementation: implementation bugs are not considered + portability issues. + * Team player: Alexandria will not (initially, at least) subsume + or provide functionality for which good-quality special-purpose + packages exist, like split-sequence. Instead, third party packages + such as that may be "blessed". + </longdescription> + <upstream> + <remote-id type="gitlab">alexandria/alexandria</remote-id> + </upstream> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-lisp/asdf/Manifest b/dev-lisp/asdf/Manifest new file mode 100644 index 000000000000..9c87831a7eb5 --- /dev/null +++ b/dev-lisp/asdf/Manifest @@ -0,0 +1,3 @@ +DIST asdf-3.1.5.tar.gz 400359 BLAKE2B 586a66799a37259694baa673f2849e183fac5fedfe5ff5c92529d47fc0954d40b48bbc095db926b9ea2214b551729c269d0925e4396a52310b72fd5f21842f49 SHA512 937d45eabea0853cd1b2e78e84cf33e7b55065857ffcf49fd87ccd60e21ae09c6dc7ab3649d48b37aeb1beaeeaf6c816e5ce035f0283707105296fb976044516 +DIST asdf-3.3.1.tar.gz 479255 BLAKE2B 5161b79741a52721eaa4da80a61bbe51e924967ecb744a087fdcbd99407abcc42faf39eafe6d30af7dd8af751a80caaf23e93ce42aa5f584123a1e8b528cc613 SHA512 bf5efec4518eb5312ce743c0fbe60c587bebfe26c36c833c163d67bf8631e18eeb293f2185e547f6be10da061a17f024d9f4a3a0808727d7b9b3a7d7a0faf133 +DIST asdf-3.3.2.tar.gz 482616 BLAKE2B 860728720ccb02debee6a826d8b27bfd8f5fea3daa529ecfc8d2f5564c77340a38582ccbccf4f311c644bdeccd7348004690929185aa70c3dc0f6b4124616df8 SHA512 f8e065383d6e82754c87d309a8b500ad213e09d1375792fd475eb169d9f880d97b26072e608046d61c83512645781cded09dcff22052e214e8e3639f2a978c74 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..396347e26b05 --- /dev/null +++ b/dev-lisp/asdf/asdf-3.1.5.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2020 Gentoo Authors +# 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/${PVR}" +KEYWORDS="~alpha amd64 ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris" +IUSE="doc" + +DEPEND="!dev-lisp/cl-${PN} + !<dev-lisp/asdf-2.33-r3 + doc? ( virtual/texi2dvi )" +RDEPEND="" +PDEPEND="~dev-lisp/uiop-${PV}" + +#S="${WORKDIR}" + +src_compile() { + make + use doc && make doc +} + +src_install() { + insinto /usr/share/common-lisp/source/${PN} + doins -r build version.lisp-expr + dodoc README.md TODO + dohtml doc/*.{html,css,ico,png} + if use doc; then + dohtml -r doc/index.html + insinto /usr/share/doc/${PF} + #doins doc/${PN}.pdf + fi + + insinto /etc/common-lisp + cd "${T}" + cp "${FILESDIR}"/gentoo-init.lisp "${FILESDIR}"/source-registry.conf . + eprefixify gentoo-init.lisp source-registry.conf + doins gentoo-init.lisp source-registry.conf +} diff --git a/dev-lisp/asdf/asdf-3.3.1.ebuild b/dev-lisp/asdf/asdf-3.3.1.ebuild new file mode 100644 index 000000000000..aed7e6593218 --- /dev/null +++ b/dev-lisp/asdf/asdf-3.3.1.ebuild @@ -0,0 +1,50 @@ +# Copyright 1999-2019 Gentoo Authors +# 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/${PVR}" +KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris" +IUSE="doc" + +DEPEND="!dev-lisp/cl-${PN} + !<dev-lisp/asdf-2.33-r3 + doc? ( virtual/texi2dvi )" +PDEPEND="virtual/commonlisp + ~dev-lisp/uiop-${PV}" + +install_docs() { + (cd doc ; dodoc *.{html,css,ico,png} "${PN}.pdf" ; dodoc -r asdf ) + if has_version ">=dev-lisp/sbcl-1.4.0" ; then + (cd doc ; doinfo "${PN}.info" ) + fi +} + +src_compile() { + emake + use doc && emake -C doc +} + +src_test() { + common-lisp-export-impl-args "$(common-lisp-find-lisp-impl)" + test/run-tests.sh ${CL_BINARY} +} + +src_install() { + insinto "${CLSOURCEROOT}/${PN}" + doins -r build version.lisp-expr + dodoc README.md TODO + use doc && install_docs + insinto /etc/common-lisp + cd "${T}" || die + cp "${FILESDIR}/gentoo-init.lisp" "${FILESDIR}/source-registry.conf" . || die + eprefixify gentoo-init.lisp source-registry.conf + doins gentoo-init.lisp source-registry.conf +} diff --git a/dev-lisp/asdf/asdf-3.3.2-r1.ebuild b/dev-lisp/asdf/asdf-3.3.2-r1.ebuild new file mode 100644 index 000000000000..20b72a58ce0f --- /dev/null +++ b/dev-lisp/asdf/asdf-3.3.2-r1.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2019 Gentoo Authors +# 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/${PVR}" +KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris" +IUSE="doc test" +RESTRICT="!test? ( test )" + +DEPEND="!dev-lisp/cl-${PN} + !<dev-lisp/asdf-2.33-r3 + doc? ( virtual/texi2dvi ) + test? ( virtual/commonlisp )" +PDEPEND="virtual/commonlisp + ~dev-lisp/uiop-${PV}" + +install_docs() { + (cd doc ; dodoc *.{html,css,ico,png} "${PN}.pdf" ; dodoc -r asdf ) + if has_version ">=dev-lisp/sbcl-1.4.0" ; then + (cd doc ; doinfo "${PN}.info" ) + fi +} + +src_compile() { + emake + use doc && emake -C doc +} + +src_test() { + common-lisp-export-impl-args "$(common-lisp-find-lisp-impl)" + test/run-tests.sh ${CL_BINARY} +} + +src_install() { + insinto "${CLSOURCEROOT}/${PN}" + doins -r build version.lisp-expr + dodoc README.md TODO + use doc && install_docs + insinto /etc/common-lisp + cd "${T}" || die + cp "${FILESDIR}/gentoo-init.lisp" "${FILESDIR}/source-registry.conf" . || die + eprefixify gentoo-init.lisp source-registry.conf + doins gentoo-init.lisp source-registry.conf +} diff --git a/dev-lisp/asdf/asdf-3.3.2.ebuild b/dev-lisp/asdf/asdf-3.3.2.ebuild new file mode 100644 index 000000000000..24b35b0d2403 --- /dev/null +++ b/dev-lisp/asdf/asdf-3.3.2.ebuild @@ -0,0 +1,50 @@ +# Copyright 1999-2019 Gentoo Authors +# 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/${PVR}" +KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris" +IUSE="doc" + +DEPEND="!dev-lisp/cl-${PN} + !<dev-lisp/asdf-2.33-r3 + doc? ( virtual/texi2dvi )" +PDEPEND="virtual/commonlisp + ~dev-lisp/uiop-${PV}" + +install_docs() { + (cd doc ; dodoc *.{html,css,ico,png} "${PN}.pdf" ; dodoc -r asdf ) + if has_version ">=dev-lisp/sbcl-1.4.0" ; then + (cd doc ; doinfo "${PN}.info" ) + fi +} + +src_compile() { + emake + use doc && emake -C doc +} + +src_test() { + common-lisp-export-impl-args "$(common-lisp-find-lisp-impl)" + test/run-tests.sh ${CL_BINARY} +} + +src_install() { + insinto "${CLSOURCEROOT}/${PN}" + doins -r build version.lisp-expr + dodoc README.md TODO + use doc && install_docs + insinto /etc/common-lisp + cd "${T}" || die + cp "${FILESDIR}/gentoo-init.lisp" "${FILESDIR}/source-registry.conf" . || die + eprefixify gentoo-init.lisp source-registry.conf + doins gentoo-init.lisp source-registry.conf +} diff --git a/dev-lisp/asdf/files/gentoo-init.lisp b/dev-lisp/asdf/files/gentoo-init.lisp new file mode 100644 index 000000000000..1a855466a23a --- /dev/null +++ b/dev-lisp/asdf/files/gentoo-init.lisp @@ -0,0 +1,12 @@ +(in-package #:cl-user) + +#-(or cmu ccl ecl sbcl) +(let ((*compile-print* nil) + (*compile-verbose* nil) + #+cmu (ext:*gc-verbose* nil)) + (handler-bind ((warning #'muffle-warning)) + (load #p"@GENTOO_PORTAGE_EPREFIX@/usr/share/common-lisp/source/asdf/build/asdf.lisp" + :print nil :verbose nil))) + +#+(or cmu ccl ecl sbcl) +(require :asdf) diff --git a/dev-lisp/asdf/files/source-registry.conf b/dev-lisp/asdf/files/source-registry.conf new file mode 100644 index 000000000000..d8cfd7146df9 --- /dev/null +++ b/dev-lisp/asdf/files/source-registry.conf @@ -0,0 +1,5 @@ +;; -*- Mode: Lisp; -*- + +(:source-registry + (:directory "@GENTOO_PORTAGE_EPREFIX@/usr/share/common-lisp/systems") + :inherit-configuration) diff --git a/dev-lisp/asdf/metadata.xml b/dev-lisp/asdf/metadata.xml new file mode 100644 index 000000000000..136dc046ea75 --- /dev/null +++ b/dev-lisp/asdf/metadata.xml @@ -0,0 +1,9 @@ +<?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> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-lisp/c2ffi/Manifest b/dev-lisp/c2ffi/Manifest new file mode 100644 index 000000000000..03b798a30b3a --- /dev/null +++ b/dev-lisp/c2ffi/Manifest @@ -0,0 +1 @@ +DIST c2ffi-9.0.0.20191017.tar.gz 35139 BLAKE2B a080f2cf7743aab630365fd305c106ada0318afb24093508c7667d8d702ec8dfd95a0ea9f54233a3a4b4c9b411e2f4aba5dacf7b2f35f1545b7ca63e765a7e55 SHA512 7a4743d89f431fd9ca42808358bdde03bbd85fc56f3350fddc94532c524ce373989671e706fadeb03eb240a81fb3f418176169acbf3ccd0f0f0c595d0f697832 diff --git a/dev-lisp/c2ffi/c2ffi-9.0.0.20191017.ebuild b/dev-lisp/c2ffi/c2ffi-9.0.0.20191017.ebuild new file mode 100644 index 000000000000..53c06c021779 --- /dev/null +++ b/dev-lisp/c2ffi/c2ffi-9.0.0.20191017.ebuild @@ -0,0 +1,26 @@ +# Copyright 2019-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit cmake llvm + +MY_COMMIT="15fda06de0bad97bf91f5590f7f24623eab2f580" + +DESCRIPTION="Clang-based FFI wrapper generator for Common Lisp" +HOMEPAGE="https://github.com/rpav/c2ffi" +SRC_URI="https://github.com/rpav/c2ffi/archive/${MY_COMMIT}.tar.gz -> ${P}.tar.gz" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64" +IUSE="" + +DEPEND="sys-devel/clang:9= + sys-devel/llvm:9= +" +RDEPEND="${DEPEND}" + +S="${WORKDIR}/c2ffi-${MY_COMMIT}" + +PATCHES=( "${FILESDIR}"/${PN}-9.0.0.20191017-fix-lib-location.patch ) diff --git a/dev-lisp/c2ffi/c2ffi-9.0.0.9999.ebuild b/dev-lisp/c2ffi/c2ffi-9.0.0.9999.ebuild new file mode 100644 index 000000000000..6a2256dee41f --- /dev/null +++ b/dev-lisp/c2ffi/c2ffi-9.0.0.9999.ebuild @@ -0,0 +1,22 @@ +# Copyright 2019-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit cmake git-r3 llvm + +DESCRIPTION="Clang-based FFI wrapper generator for Common Lisp" +HOMEPAGE="https://github.com/rpav/c2ffi" +EGIT_REPO_URI="https://github.com/rpav/c2ffi.git" +EGIT_BRANCH="llvm-9.0.0" + +LICENSE="LGPL-2.1" +SLOT="0" +IUSE="" + +DEPEND="sys-devel/clang:9= + sys-devel/llvm:9= +" +RDEPEND="${DEPEND}" + +PATCHES=( "${FILESDIR}"/${PN}-9.0.0.20191017-fix-lib-location.patch ) diff --git a/dev-lisp/c2ffi/files/c2ffi-9.0.0.20191017-fix-lib-location.patch b/dev-lisp/c2ffi/files/c2ffi-9.0.0.20191017-fix-lib-location.patch new file mode 100644 index 000000000000..8b09b25aa739 --- /dev/null +++ b/dev-lisp/c2ffi/files/c2ffi-9.0.0.20191017-fix-lib-location.patch @@ -0,0 +1,49 @@ +From 3a496f89064de85af04ce101918c2ec5cebf7846 Mon Sep 17 00:00:00 2001 +From: Harald Judt <h.judt@gmx.at> +Date: Fri, 8 Nov 2019 10:35:02 +0100 +Subject: Fix CLANG and LLVM libraries not found + +This commit gets the build working again here on Gentoo. + +Adding LLVM_LIBRARY_DIRS fixes the CLANG libs not found error. + +Adding llvm_map_components_to_libnames fixes LLMV not found error. +--- + CMakeLists.txt | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 99dbe4b..f93b9b3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -39,6 +39,15 @@ target_include_directories(c2ffi PUBLIC + ${LLVM_INCLUDE_DIRS} + ${SOURCE_ROOT}/src/include + ) ++target_link_directories(c2ffi PUBLIC ++ ${LLVM_LIBRARY_DIRS} ++) ++message(STATUS "LLVM_LIBRARY_DIRS=${LLVM_LIBRARY_DIRS}") ++ ++llvm_map_components_to_libnames(llvm_libs core support mcparser bitreader profiledata) ++ ++message(STATUS "llvm_libs=${llvm_libs}") ++ + target_link_libraries(c2ffi PUBLIC + clangFrontendTool + clangFrontend +@@ -64,10 +73,9 @@ target_link_libraries(c2ffi PUBLIC + clangIndex + clangToolingCore + clangTooling ++ ${llvm_libs} + ) + +-llvm_config(c2ffi USE_SHARED core support mcparser bitreader profiledata) +- + set(APP_BIN_DIR "${CMAKE_BINARY_DIR}/bin") + set_target_properties(c2ffi PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${APP_BIN_DIR}" +-- +2.23.0 + diff --git a/dev-lisp/c2ffi/metadata.xml b/dev-lisp/c2ffi/metadata.xml new file mode 100644 index 000000000000..a50e592c33ff --- /dev/null +++ b/dev-lisp/c2ffi/metadata.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="person"> + <email>h.judt@gmx.at</email> + <name>Harald Judt</name> +</maintainer> +<maintainer type="project"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> +</maintainer> +<upstream> + <remote-id type="github">rpav/c2ffi</remote-id> +</upstream> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-lisp/cl-ppcre-unicode/Manifest b/dev-lisp/cl-ppcre-unicode/Manifest new file mode 100644 index 000000000000..2ace7fade36c --- /dev/null +++ b/dev-lisp/cl-ppcre-unicode/Manifest @@ -0,0 +1,2 @@ +DIST cl-ppcre-2.0.11.tar.gz 158418 BLAKE2B d65aa1a565dbe6c9d10e4dafe323ab1332929e46e00ea2e9775ad940ed5ac983520c0e423daa17bf0173420d2269b5af2fd9b52f8d3dbcb0c778e03e61ef052d SHA512 c693c568065c0571e5509599018e58951425a857cec3793312af0d22e248e32233f924eafc8ba67fbedad38cb3f4efa11343b785b073eaac53c31871422488b1 +DIST cl-ppcre-2.1.0.tar.gz 159051 BLAKE2B d1b9dd93c3f4c4c3a23a7c01f28cc4a8cc8543bfa3280f60b53d61dadb377f9e45c0f79592323bb7dcaf06721d899159f958f5b7d391370eeb5c6ede81a7a0cd SHA512 c9c95c58628fd5ecebf6e24e0c26913719360c325e90e78c256d1306eb8c2cbe85a2a5f617fdb6c2a7091bd80f4021ad0d294371b2696ad8e5873eca13aab866 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/cl-ppcre-unicode-2.1.0.ebuild b/dev-lisp/cl-ppcre-unicode/cl-ppcre-unicode-2.1.0.ebuild new file mode 100644 index 000000000000..8203612b0edc --- /dev/null +++ b/dev-lisp/cl-ppcre-unicode/cl-ppcre-unicode-2.1.0.ebuild @@ -0,0 +1,26 @@ +# Copyright 1999-2018 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..6c30121d9ccc --- /dev/null +++ b/dev-lisp/cl-ppcre-unicode/metadata.xml @@ -0,0 +1,23 @@ +<?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> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-lisp/cl-ppcre/Manifest b/dev-lisp/cl-ppcre/Manifest new file mode 100644 index 000000000000..2ace7fade36c --- /dev/null +++ b/dev-lisp/cl-ppcre/Manifest @@ -0,0 +1,2 @@ +DIST cl-ppcre-2.0.11.tar.gz 158418 BLAKE2B d65aa1a565dbe6c9d10e4dafe323ab1332929e46e00ea2e9775ad940ed5ac983520c0e423daa17bf0173420d2269b5af2fd9b52f8d3dbcb0c778e03e61ef052d SHA512 c693c568065c0571e5509599018e58951425a857cec3793312af0d22e248e32233f924eafc8ba67fbedad38cb3f4efa11343b785b073eaac53c31871422488b1 +DIST cl-ppcre-2.1.0.tar.gz 159051 BLAKE2B d1b9dd93c3f4c4c3a23a7c01f28cc4a8cc8543bfa3280f60b53d61dadb377f9e45c0f79592323bb7dcaf06721d899159f958f5b7d391370eeb5c6ede81a7a0cd SHA512 c9c95c58628fd5ecebf6e24e0c26913719360c325e90e78c256d1306eb8c2cbe85a2a5f617fdb6c2a7091bd80f4021ad0d294371b2696ad8e5873eca13aab866 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/cl-ppcre-2.1.0.ebuild b/dev-lisp/cl-ppcre/cl-ppcre-2.1.0.ebuild new file mode 100644 index 000000000000..70c99953770f --- /dev/null +++ b/dev-lisp/cl-ppcre/cl-ppcre-2.1.0.ebuild @@ -0,0 +1,30 @@ +# Copyright 1999-2018 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 docs/index.html +} diff --git a/dev-lisp/cl-ppcre/metadata.xml b/dev-lisp/cl-ppcre/metadata.xml new file mode 100644 index 000000000000..9221c9646ae0 --- /dev/null +++ b/dev-lisp/cl-ppcre/metadata.xml @@ -0,0 +1,34 @@ +<?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> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-lisp/cl-unicode/Manifest b/dev-lisp/cl-unicode/Manifest new file mode 100644 index 000000000000..e73222844aa1 --- /dev/null +++ b/dev-lisp/cl-unicode/Manifest @@ -0,0 +1 @@ +DIST cl-unicode-0.1.5.tar.gz 485666 BLAKE2B 9db0714c24de4c5c79f3d7eeb471ac5d7a06dd29abd1c3c4b728c9ce98b175ea97ed20923c957a75ac7dee290f095a5c28c92da5ddc7e808d28ca624d84a37cd SHA512 0b66c0e711f7e37423aa638b43017adff648189a32032702b082dff140b2255847a15572a20f21e6f82a2e8cbd547f7f99bf9176e4fa464aa1d938575d8a2390 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..c9dbeee68620 --- /dev/null +++ b/dev-lisp/cl-unicode/metadata.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>common-lisp@gentoo.org</email> + <name>Gentoo Common Lisp Project</name> + </maintainer> + <longdescription 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> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-lisp/clisp/Manifest b/dev-lisp/clisp/Manifest new file mode 100644 index 000000000000..84d215a48e08 --- /dev/null +++ b/dev-lisp/clisp/Manifest @@ -0,0 +1,3 @@ +DIST clisp-2.49.90.tar.bz2 8921458 BLAKE2B 3be7cfe41038f42d8844d500877fa5c20e5c21dc0e162aa0018b297e4dfcd5374ef608793c9d809852e1f9885a155bb5b25fef8efe66016dd0ee400007386b70 SHA512 1fa7205e38883dcc863160b5418ddaaa2c45ee2d2f936de4067d1ea4a1e5043bf1235361bbbfc366afd6d8f1144497ccdccf1767ecf327f7a672b18742ceb651 +DIST clisp-2.49.92.tar.bz2 9055207 BLAKE2B 6cf331eb9f99f62579e35469e2d01cae066083592ccc71cf483b70b4d1be349cdee9d403e0a7ed1ad1c8c5d805c1dab51c1a5031d77469ff8c4dc52eb58913df SHA512 cc9412a7b3f21c85b040bf5e660380fafb3c2374765a1c00272feb3f7838f2161e27a5d6295cef9976f0c4522f10796cf5ee5447716090d1cc69ecfe598ef306 +DIST clisp-2.49.tar.bz2 8091011 BLAKE2B e034c581b8100837b34d0adf1ef45bd667272d062945875175958178b4ef5b11e899dfb76505eb8cb51fca6101c11a9f21fb2cc9a78a3c0f82b06166211434f7 SHA512 eef66fc85199a2c283b616db61bf67ff103eeb0f19fa907da48994dc790b6f5f8d0c74fb3bd723c6b827c0ff3cfd89fa6ba67934fc669ed5d5249044b5140d81 diff --git a/dev-lisp/clisp/clisp-2.49-r9.ebuild b/dev-lisp/clisp/clisp-2.49-r9.ebuild new file mode 100644 index 000000000000..b1cf33182eed --- /dev/null +++ b/dev-lisp/clisp/clisp-2.49-r9.ebuild @@ -0,0 +1,144 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 +inherit eutils flag-o-matic multilib toolchain-funcs xdg-utils + +DESCRIPTION="A portable, bytecode-compiled implementation of Common Lisp" +HOMEPAGE="https://clisp.sourceforge.io/" +SRC_URI="mirror://sourceforge/clisp/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="2/${PV}" +KEYWORDS="amd64 ~ppc ~sparc x86" +IUSE="hyperspec X berkdb dbus fastcgi gdbm gtk +pcre postgres +readline svm -threads +unicode +zlib" +# "jit" disabled ATM + +RDEPEND=">=dev-lisp/asdf-2.33-r3 + virtual/libiconv + >=dev-libs/libsigsegv-2.4 + >=dev-libs/ffcall-1.10 + dbus? ( sys-apps/dbus ) + fastcgi? ( dev-libs/fcgi ) + gdbm? ( sys-libs/gdbm ) + gtk? ( >=x11-libs/gtk+-2.10 >=gnome-base/libglade-2.6 ) + postgres? ( >=dev-db/postgresql-8.0 ) + readline? ( >=sys-libs/readline-5.0 <sys-libs/readline-7.0 ) + pcre? ( dev-libs/libpcre ) + svm? ( sci-libs/libsvm ) + zlib? ( sys-libs/zlib ) + X? ( x11-libs/libXpm ) + hyperspec? ( dev-lisp/hyperspec ) + berkdb? ( sys-libs/db:4.8 )" +# jit? ( >=dev-libs/lightning-1.2 ) + +DEPEND="${RDEPEND} + X? ( x11-base/xorg-proto x11-misc/imake )" + +enable_modules() { + [[ $# = 0 ]] && die "${FUNCNAME[0]} must receive at least one argument" + for m in "$@" ; do + einfo "enabling module $m" + myconf+=" --with-module=${m}" + done +} + +BUILDDIR="builddir" + +# modules not enabled: +# * berkdb: must figure out a way to make the configure script pick up the +# currect version of the library and headers +# * dirkey: fails to compile, requiring windows.h, possibly wrong #ifdefs +# * matlab, netica: not in portage +# * oracle: can't install oracle-instantclient + +src_prepare() { + # More than -O1 breaks alpha/ia64 + if use alpha || use ia64; then + sed -i -e 's/-O2//g' src/makemake.in || die + fi + epatch "${FILESDIR}"/${P}-bits_ipctypes_to_sys_ipc.patch + epatch "${FILESDIR}"/${P}-get_hostname.patch + epatch "${FILESDIR}"/${P}-tinfo.patch + + xdg_environment_reset +} + +src_configure() { + # Bug 618170. If anyone has a better idea... + append-flags -fno-pie + + # We need this to build on alpha/ia64 + if use alpha || use ia64; then + replace-flags -O? -O1 + append-flags '-D NO_MULTIMAP_SHM -D NO_MULTIMAP_FILE -D NO_SINGLEMAP -D NO_TRIVIALMAP' + fi + + # QA issue with lisp.run + append-flags -Wa,--noexecstack + + # built-in features + local myconf="--with-ffcall --without-dynamic-modules" +# There's a problem with jit_allocai function +# if use jit; then +# myconf+=" --with-jitc=lightning" +# fi + if use threads; then + myconf+=" --with-threads=POSIX_THREADS" + fi + + # default modules + enable_modules wildcard rawsock + # optional modules + use elibc_glibc && enable_modules bindings/glibc + use X && enable_modules clx/new-clx + if use postgres; then + enable_modules postgresql + append-cppflags -I$(pg_config --includedir) + fi + if use berkdb; then + enable_modules berkeley-db + append-cppflags -I/usr/include/db4.8 + fi + use dbus && enable_modules dbus + use fastcgi && enable_modules fastcgi + use gdbm && enable_modules gdbm + use gtk && enable_modules gtk2 + use pcre && enable_modules pcre + use svm && enable_modules libsvm + use zlib && enable_modules zlib + + if use hyperspec; then + CLHSROOT="file:///usr/share/doc/hyperspec/HyperSpec/" + else + CLHSROOT="http://www.lispworks.com/reference/HyperSpec/" + fi + + # configure chokes on --sysconfdir option + local configure="./configure --prefix=/usr --libdir=/usr/$(get_libdir) \ + $(use_with readline) $(use_with unicode) \ + ${myconf} --hyperspec=${CLHSROOT} ${BUILDDIR}" + einfo "${configure}" + ${configure} || die "./configure failed" + + IMPNOTES="file://${ROOT%/}/usr/share/doc/${PN}-${PVR}/html/impnotes.html" + sed -i "s,http://clisp.cons.org/impnotes/,${IMPNOTES},g" \ + "${BUILDDIR}"/config.lisp || die "Cannot fix link to implementation notes" +} + +src_compile() { + export VARTEXFONTS="${T}"/fonts + cd "${BUILDDIR}" + # parallel build fails + emake -j1 +} + +src_install() { + pushd "${BUILDDIR}" + make DESTDIR="${D}" prefix=/usr install-bin || die "Installation failed" + doman clisp.1 + dodoc ../SUMMARY README* ../src/NEWS ../unix/MAGIC.add ../ANNOUNCE + popd + dohtml doc/impnotes.{css,html} doc/regexp.html doc/clisp.png + dodoc doc/{CLOS-guide,LISP-tutorial}.txt +} diff --git a/dev-lisp/clisp/clisp-2.49.90.ebuild b/dev-lisp/clisp/clisp-2.49.90.ebuild new file mode 100644 index 000000000000..660b5a4acdd1 --- /dev/null +++ b/dev-lisp/clisp/clisp-2.49.90.ebuild @@ -0,0 +1,140 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit eutils flag-o-matic multilib toolchain-funcs xdg-utils + +DESCRIPTION="A portable, bytecode-compiled implementation of Common Lisp" +HOMEPAGE="https://clisp.sourceforge.io/" +SRC_URI="https://haible.de/bruno/gnu/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="2/8" +KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~sparc ~x86" +IUSE="hyperspec X berkdb dbus fastcgi gdbm gtk +pcre postgres +readline svm -threads +unicode +zlib" +# "jit" disabled ATM + +RDEPEND=">=dev-lisp/asdf-2.33-r3 + virtual/libiconv + >=dev-libs/libsigsegv-2.10 + >=dev-libs/ffcall-1.10 + dbus? ( sys-apps/dbus ) + fastcgi? ( dev-libs/fcgi ) + gdbm? ( sys-libs/gdbm ) + gtk? ( >=x11-libs/gtk+-2.10:2 >=gnome-base/libglade-2.6 ) + postgres? ( >=dev-db/postgresql-8.0:* ) + readline? ( >=sys-libs/readline-7.0:0= ) + pcre? ( dev-libs/libpcre:3 ) + svm? ( sci-libs/libsvm ) + zlib? ( sys-libs/zlib ) + X? ( x11-libs/libXpm ) + hyperspec? ( dev-lisp/hyperspec ) + berkdb? ( sys-libs/db:4.8 )" + +DEPEND="${RDEPEND} + X? ( x11-base/xorg-proto x11-misc/imake )" + +enable_modules() { + [[ $# = 0 ]] && die "${FUNCNAME[0]} must receive at least one argument" + for m in "$@" ; do + einfo "enabling module $m" + myconf+=" --with-module=${m}" + done +} + +BUILDDIR="builddir" + +# modules not enabled: +# * berkdb: must figure out a way to make the configure script pick up the +# currect version of the library and headers +# * dirkey: fails to compile, requiring windows.h, possibly wrong #ifdefs +# * matlab, netica: not in portage +# * oracle: can't install oracle-instantclient + +src_prepare() { + # More than -O1 breaks alpha/ia64 + if use alpha || use ia64; then + sed -i -e 's/-O2//g' src/makemake.in || die + fi + eapply "${FILESDIR}"/"${P}"-after_glibc_cfree_bdb.patch + eapply_user + + xdg_environment_reset +} + +src_configure() { + # We need this to build on alpha/ia64 + if use alpha || use ia64; then + replace-flags -O? -O1 + fi + + if use x86; then + append-flags -falign-functions=4 + fi + + # built-in features + local myconf="--with-ffcall --without-dynamic-modules" +# There's a problem with jit_allocai function +# if use jit; then +# myconf+=" --with-jitc=lightning" +# fi + if use threads; then + myconf+=" --with-threads=POSIX_THREADS" + fi + + # default modules + enable_modules rawsock + # optional modules + use elibc_glibc && enable_modules bindings/glibc + use X && enable_modules clx/new-clx + if use postgres; then + enable_modules postgresql + append-cppflags -I$(pg_config --includedir) + fi + if use berkdb; then + enable_modules berkeley-db + append-cppflags -I"${EPREFIX}"/usr/include/db4.8 + fi + use dbus && enable_modules dbus + use fastcgi && enable_modules fastcgi + use gdbm && enable_modules gdbm + use gtk && enable_modules gtk2 + use pcre && enable_modules pcre + use svm && enable_modules libsvm + use zlib && enable_modules zlib + + if use hyperspec; then + CLHSROOT="file:///${EPREFIX}/usr/share/doc/hyperspec/HyperSpec/" + else + CLHSROOT="http://www.lispworks.com/reference/HyperSpec/" + fi + + # configure chokes on --sysconfdir option + local configure="./configure --prefix=${EPREFIX}/usr --enable-portability \ + --libdir=${EPREFIX}/usr/$(get_libdir) $(use_with readline) $(use_with unicode) \ + ${myconf} --hyperspec=${CLHSROOT} ${BUILDDIR}" + einfo "${configure}" + ${configure} || die "./configure failed" + + IMPNOTES="file://${ROOT%/}/usr/share/doc/${PN}-${PVR}/html/impnotes.html" + sed -i "s,http://clisp.cons.org/impnotes/,${IMPNOTES},g" \ + "${BUILDDIR}"/config.lisp || die "Cannot fix link to implementation notes" +} + +src_compile() { + export VARTEXFONTS="${T}"/fonts + cd "${BUILDDIR}" || die + # parallel build fails + emake -j1 +} + +src_install() { + pushd "${BUILDDIR}" + make DESTDIR="${D}" prefix="${EPREFIX}"/usr install-bin || die "Installation failed" + doman clisp.1 + dodoc ../SUMMARY README* ../src/NEWS ../unix/MAGIC.add ../ANNOUNCE + popd + dohtml doc/impnotes.{css,html} doc/regexp.html doc/clisp.png + dodoc doc/{CLOS-guide,LISP-tutorial}.txt +} diff --git a/dev-lisp/clisp/clisp-2.49.92.ebuild b/dev-lisp/clisp/clisp-2.49.92.ebuild new file mode 100644 index 000000000000..bd144974f803 --- /dev/null +++ b/dev-lisp/clisp/clisp-2.49.92.ebuild @@ -0,0 +1,140 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit eutils flag-o-matic multilib toolchain-funcs xdg-utils + +DESCRIPTION="A portable, bytecode-compiled implementation of Common Lisp" +HOMEPAGE="https://clisp.sourceforge.io/" +SRC_URI="mirror://gentoo/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="2/8" +KEYWORDS="~alpha amd64 ~ia64 ppc ~sparc x86" +IUSE="hyperspec X berkdb dbus fastcgi gdbm gtk +pcre postgres +readline svm -threads +unicode +zlib" +# "jit" disabled ATM + +RDEPEND=">=dev-lisp/asdf-2.33-r3 + virtual/libiconv + >=dev-libs/libsigsegv-2.10 + >=dev-libs/ffcall-1.10 + dbus? ( sys-apps/dbus ) + fastcgi? ( dev-libs/fcgi ) + gdbm? ( sys-libs/gdbm ) + gtk? ( >=x11-libs/gtk+-2.10:2 >=gnome-base/libglade-2.6 ) + postgres? ( >=dev-db/postgresql-8.0:* ) + readline? ( >=sys-libs/readline-7.0:0= ) + pcre? ( dev-libs/libpcre:3 ) + svm? ( sci-libs/libsvm ) + zlib? ( sys-libs/zlib ) + X? ( x11-libs/libXpm ) + hyperspec? ( dev-lisp/hyperspec ) + berkdb? ( sys-libs/db:4.8 )" + +DEPEND="${RDEPEND} + X? ( x11-base/xorg-proto x11-misc/imake )" + +enable_modules() { + [[ $# = 0 ]] && die "${FUNCNAME[0]} must receive at least one argument" + for m in "$@" ; do + einfo "enabling module $m" + myconf+=" --with-module=${m}" + done +} + +BUILDDIR="builddir" + +# modules not enabled: +# * berkdb: must figure out a way to make the configure script pick up the +# currect version of the library and headers +# * dirkey: fails to compile, requiring windows.h, possibly wrong #ifdefs +# * matlab, netica: not in portage +# * oracle: can't install oracle-instantclient + +src_prepare() { + # More than -O1 breaks alpha/ia64 + if use alpha || use ia64; then + sed -i -e 's/-O2//g' src/makemake.in || die + fi + eapply "${FILESDIR}"/"${P}"-after_glibc_cfree_bdb.patch + eapply_user + + xdg_environment_reset +} + +src_configure() { + # We need this to build on alpha/ia64 + if use alpha || use ia64; then + replace-flags -O? -O1 + fi + + if use x86; then + append-flags -falign-functions=4 + fi + + # built-in features + local myconf="--with-ffcall --without-dynamic-modules" +# There's a problem with jit_allocai function +# if use jit; then +# myconf+=" --with-jitc=lightning" +# fi + if use threads; then + myconf+=" --with-threads=POSIX_THREADS" + fi + + # default modules + enable_modules rawsock + # optional modules + use elibc_glibc && enable_modules bindings/glibc + use X && enable_modules clx/new-clx + if use postgres; then + enable_modules postgresql + append-cppflags -I$(pg_config --includedir) + fi + if use berkdb; then + enable_modules berkeley-db + append-cppflags -I"${EPREFIX}"/usr/include/db4.8 + fi + use dbus && enable_modules dbus + use fastcgi && enable_modules fastcgi + use gdbm && enable_modules gdbm + use gtk && enable_modules gtk2 + use pcre && enable_modules pcre + use svm && enable_modules libsvm + use zlib && enable_modules zlib + + if use hyperspec; then + CLHSROOT="file:///${EPREFIX}/usr/share/doc/hyperspec/HyperSpec/" + else + CLHSROOT="http://www.lispworks.com/reference/HyperSpec/" + fi + + # configure chokes on --sysconfdir option + local configure="./configure --prefix=${EPREFIX}/usr --enable-portability \ + --libdir=${EPREFIX}/usr/$(get_libdir) $(use_with readline) $(use_with unicode) \ + ${myconf} --hyperspec=${CLHSROOT} ${BUILDDIR}" + einfo "${configure}" + ${configure} || die "./configure failed" + + IMPNOTES="file://${ROOT%/}/usr/share/doc/${PN}-${PVR}/html/impnotes.html" + sed -i "s,http://clisp.cons.org/impnotes/,${IMPNOTES},g" \ + "${BUILDDIR}"/config.lisp || die "Cannot fix link to implementation notes" +} + +src_compile() { + export VARTEXFONTS="${T}"/fonts + cd "${BUILDDIR}" || die + # parallel build fails + emake -j1 +} + +src_install() { + pushd "${BUILDDIR}" + make DESTDIR="${D}" prefix="${EPREFIX}"/usr install-bin || die "Installation failed" + doman clisp.1 + dodoc ../SUMMARY README* ../src/NEWS ../unix/MAGIC.add ../ANNOUNCE + popd + dohtml doc/impnotes.{css,html} doc/regexp.html doc/clisp.png + dodoc doc/{CLOS-guide,LISP-tutorial}.txt +} diff --git a/dev-lisp/clisp/files/clisp-2.49-bits_ipctypes_to_sys_ipc.patch b/dev-lisp/clisp/files/clisp-2.49-bits_ipctypes_to_sys_ipc.patch new file mode 100644 index 000000000000..8037157c9512 --- /dev/null +++ b/dev-lisp/clisp/files/clisp-2.49-bits_ipctypes_to_sys_ipc.patch @@ -0,0 +1,21 @@ +diff -ru a/modules/bindings/glibc/linux.lisp b/modules/bindings/glibc/linux.lisp +--- a/modules/bindings/glibc/linux.lisp 2008-10-08 19:36:19.000000000 +0300 ++++ b/modules/bindings/glibc/linux.lisp 2013-04-08 00:05:06.028305248 +0300 +@@ -67,7 +67,7 @@ + (def-c-type __daddr_t) ; int + (def-c-type __caddr_t) ; c-pointer + (def-c-type __time_t) ; long +-(def-c-type __swblk_t) ; long ++;(def-c-type __swblk_t) ; long + + (def-c-type __fd_mask ulong) + (eval-when (load compile eval) +@@ -86,7 +86,7 @@ + + (def-c-type __key_t) ; int + +-(c-lines "#include <bits/ipctypes.h>~%") ++(c-lines "#include <sys/ipc.h>~%") + (def-c-type __ipc_pid_t) ; ushort + + ; --------------------------- <sys/types.h> ----------------------------------- diff --git a/dev-lisp/clisp/files/clisp-2.49-get_hostname.patch b/dev-lisp/clisp/files/clisp-2.49-get_hostname.patch new file mode 100644 index 000000000000..5db3a71efbc3 --- /dev/null +++ b/dev-lisp/clisp/files/clisp-2.49-get_hostname.patch @@ -0,0 +1,56 @@ +diff -r -U1 clisp-2.49.orig/src/socket.d clisp-2.49/src/socket.d +--- clisp-2.49.orig/src/socket.d 2009-10-08 21:45:13.000000000 +0700 ++++ clisp-2.49/src/socket.d 2013-04-20 16:24:11.133895050 +0700 +@@ -59,5 +59,5 @@ + Fetches the machine's host name. +- get_hostname(host =); +- The name is allocated on the stack, with dynamic extent. +- < const char* host: The host name. ++ get_hostname(hostname); ++ where hostname is an array of MAXHOTNAMELEN+1 characters. ++ < const char host[]: The host name. + (Note: In some cases we could get away with less system calls by simply +@@ -69,10 +69,8 @@ + /* present on all supported unix systems and on woe32 */ +- #define get_hostname(host_assignment) \ +- do { var char hostname[MAXHOSTNAMELEN+1]; \ +- begin_system_call(); \ +- if ( gethostname(&hostname[0],MAXHOSTNAMELEN) <0) { SOCK_error(); } \ +- end_system_call(); \ +- hostname[MAXHOSTNAMELEN] = '\0'; \ +- host_assignment &hostname[0]; \ +- } while(0) ++static void get_hostname (char *hostname) { ++ begin_system_call(); ++ if (gethostname(hostname,MAXHOSTNAMELEN) < 0) { ANSIC_error(); } ++ end_system_call(); ++ hostname[MAXHOSTNAMELEN] = '\0'; ++} + #else +@@ -209,4 +207,4 @@ + (apply #'string-concat hostname " [" (inet-ntop address) "]"))) */ +- var const char* host; +- get_hostname(host =); ++ var char host[MAXHOSTNAMELEN+1]; ++ get_hostname(host); + result = asciz_to_string(host,O(misc_encoding)); /* hostname as result */ +@@ -391,4 +389,4 @@ + if (eq(arg,S(Kdefault))) { +- var char* host; +- get_hostname(host =); ++ var char host[MAXHOSTNAMELEN+1]; ++ get_hostname(host); + begin_system_call(); +@@ -726,3 +724,4 @@ + if (host[0] == '\0') { +- get_hostname(host =); ++ var char host[MAXHOSTNAMELEN+1]; ++ get_hostname(host); + fd = with_host_port(host,port,&connect_to_x_via_ip,NULL); +@@ -800,4 +799,4 @@ + if (resolve_p) { /* Fill in hd->truename. */ +- var const char* host; +- get_hostname(host =); /* was: host = "localhost"; */ ++ var char host[MAXHOSTNAMELEN+1]; ++ get_hostname(host); + ASSERT(strlen(host) <= MAXHOSTNAMELEN); diff --git a/dev-lisp/clisp/files/clisp-2.49-tinfo.patch b/dev-lisp/clisp/files/clisp-2.49-tinfo.patch new file mode 100644 index 000000000000..72f40d585b5b --- /dev/null +++ b/dev-lisp/clisp/files/clisp-2.49-tinfo.patch @@ -0,0 +1,15 @@ +clisp does not need a full blown ncurses, but it does require a termcap or tinfo +I would have changed this in src/m4/termcap.m4 but configure.in fails terribly - JeR + + +--- a/src/configure ++++ b/src/configure +@@ -28613,7 +28613,7 @@ + return 0; + } + _ACEOF +-for ac_lib in '' ncurses termcap; do ++for ac_lib in '' tinfo ncurses termcap; do + if test -z "$ac_lib"; then + ac_res="none required" + else diff --git a/dev-lisp/clisp/files/clisp-2.49.90-after_glibc_cfree_bdb.patch b/dev-lisp/clisp/files/clisp-2.49.90-after_glibc_cfree_bdb.patch new file mode 100644 index 000000000000..ae83bbb8770d --- /dev/null +++ b/dev-lisp/clisp/files/clisp-2.49.90-after_glibc_cfree_bdb.patch @@ -0,0 +1,185 @@ +diff -r -U3 clisp-2.49.90.orig/modules/berkeley-db/bdb.c clisp-2.49.90/modules/berkeley-db/bdb.c +--- clisp-2.49.90.orig/modules/berkeley-db/bdb.c 2018-01-27 12:03:01.000000000 +0100 ++++ clisp-2.49.90/modules/berkeley-db/bdb.c 2018-02-12 20:37:24.203803219 +0100 +@@ -2216,7 +2216,13 @@ + c_data.compact_timeout = timeout; + c_data.compact_pages = pages; + SYSCALL(db->compact,(db,txn,pstart,pstop,&c_data,flags,&end)); +- pushSTACK(uint32_to_I(c_data.compact_empty_buckets)); ++ /* ==== ++ * compact_empty_buckets is in bdb-5.3 as part of output stats ++ * however this version use bdb-4.8 which does not have it ++ * ==== ++ * ++ * pushSTACK(uint32_to_I(c_data.compact_empty_buckets)); ++ * */ + pushSTACK(uint32_to_I(c_data.compact_pages_free)); + pushSTACK(uint32_to_I(c_data.compact_pages_examine)); + pushSTACK(uint32_to_I(c_data.compact_levels)); +diff -r -U3 clisp-2.49.90.orig/modules/bindings/glibc/linux.lisp clisp-2.49.90/modules/bindings/glibc/linux.lisp +--- clisp-2.49.90.orig/modules/bindings/glibc/linux.lisp 2018-01-10 00:32:25.000000000 +0100 ++++ clisp-2.49.90/modules/bindings/glibc/linux.lisp 2018-02-12 20:48:22.467775536 +0100 +@@ -1,7 +1,7 @@ + ;; Foreign functions provided by the Linux C library version 6, + ;; i.e. the GNU C library version 2.0.7. + ;; Bruno Haible 10.4.1998, 19.4.1998 +-;; Sam Steingold 2002-2008, 2011 ++;; Sam Steingold 2002-2008, 2011, 2013, 2016-2017 + + ;; NB: quite a few functions here have more portable counterparts in POSIX + +@@ -686,9 +686,8 @@ + (def-call-out system? (:arguments (null c-string)) + (:return-type boolean) (:name "system")) + +-; You can uncomment this if your compiler sets __USE_GNU +-; (def-call-out canonicalize_file_name (:arguments (name c-string)) +-; (:return-type c-string :malloc-free)) ++(def-call-out canonicalize_file_name (:arguments (name c-string)) ++ (:return-type c-string :malloc-free)) + + (def-call-out realpath + (:arguments (name c-string) +@@ -1040,9 +1039,8 @@ + (def-call-out access (:arguments (name c-string) (type int)) + (:return-type int)) + +-; You can uncomment this if your compiler sets __USE_GNU +-; (def-call-out euidaccess (:arguments (name c-string) (type int)) +-; (:return-type int)) ++(def-call-out euidaccess (:arguments (name c-string) (type int)) ++ (:return-type int)) + + (defconstant SEEK_SET 0) + (defconstant SEEK_CUR 1) +@@ -1093,9 +1091,8 @@ + ;(def-call-out getcwd (:arguments (buf c-string :out) (size size_t)) ; ?? + ; (:return-type c-string)) + +-; You can uncomment this if your compiler sets __USE_GNU +-; (def-call-out get_current_dir_name (:arguments) +-; (:return-type c-string :malloc-free)) ++(def-call-out get_current_dir_name (:arguments) ++ (:return-type c-string :malloc-free)) + + ;(def-call-out getwd (:arguments (buf c-string :out)) ; ?? + ; (:return-type c-string)) +@@ -1323,8 +1320,7 @@ + ; (:arguments (size int) (list (c-ptr (c-array gid_t ??)) :out)) ; ?? + ; (:return-type int)) + +-; You can uncomment this if your compiler sets __USE_GNU +-; (def-call-out group_member (:arguments (gid gid_t)) (:return-type boolean)) ++(def-call-out group_member (:arguments (gid gid_t)) (:return-type boolean)) + (def-call-out setuid (:arguments (uid uid_t)) (:return-type int)) + (def-call-out setreuid (:arguments (ruid uid_t) (euid uid_t)) + (:return-type int)) +@@ -1821,8 +1817,7 @@ + (:return-type c-string :malloc-free)) + (def-call-out ungetc (:arguments (c int) (fp FILE)) + (:return-type int)) +-; You can uncomment this if your compiler sets __USE_GNU +-; (def-call-out fcloseall (:arguments) (:return-type int)) ++(def-call-out fcloseall (:arguments) (:return-type int)) + (def-call-out fdopen (:arguments (fildes int) (mode c-string)) + (:return-type c-pointer)) + (def-call-out fileno (:arguments (fp FILE)) (:return-type int)) +@@ -1900,11 +1895,11 @@ + (:return-type (c-ptr-null dirent))) + (def-call-out readdir64 (:arguments (dirp c-pointer)) + (:return-type (c-ptr-null dirent64))) +-(def-call-out readdir_r ++(def-call-out readdir_r ; deprecated + (:arguments (dirp c-pointer) (entry (c-ptr dirent) :out :alloca) + (result (c-ptr (c-ptr dirent)) :out :alloca)) ; ?? + (:return-type int)) +-(def-call-out readdir64_r ++(def-call-out readdir64_r ; deprecated + (:arguments (dirp c-pointer) (entry (c-ptr dirent64) :out :alloca) + (result (c-ptr (c-ptr dirent64)) :out :alloca)) ; ?? + (:return-type int)) +diff -r -U3 clisp-2.49.90.orig/modules/bindings/glibc/test.tst clisp-2.49.90/modules/bindings/glibc/test.tst +--- clisp-2.49.90.orig/modules/bindings/glibc/test.tst 2018-01-10 00:04:26.000000000 +0100 ++++ clisp-2.49.90/modules/bindings/glibc/test.tst 2018-02-12 20:50:48.225769407 +0100 +@@ -14,6 +14,16 @@ + (= linux:DT_DIR (linux:dirent64-d_type (show (linux:readdir64 *d*)))) T + (linux:closedir *d*) 0 + ++(stringp (show (linux:get-domain-name))) T ++(stringp (show (linux:get-host-name))) T ++ ++;; usually __USE_GNU is defined, so this should work: ++(let* ((d (linux:get_current_dir_name)) ++ (c (linux:canonicalize_file_name (concatenate 'string d "/.")))) ++ (or (string= d c) ++ (list :cur-dir d :canonical c))) ++T ++ + (defparameter *d* (show (linux:opendir "."))) *D* + (linux:dirent-d_name (show (linux:readdir *d*))) "." + (linux:dirent-d_name (show (linux:readdir *d*))) ".." +diff -r -U3 clisp-2.49.90.orig/src/foreign1.lisp clisp-2.49.90/src/foreign1.lisp +--- clisp-2.49.90.orig/src/foreign1.lisp 2018-01-10 00:04:26.000000000 +0100 ++++ clisp-2.49.90/src/foreign1.lisp 2018-02-12 21:03:56.768736245 +0100 +@@ -805,14 +805,17 @@ + c-name (to-c-string c-name) (third variable) (first variable)) + (when *foreign-guard* (format *coutput-stream* "# endif~%")))) + (dolist (function *function-list*) +- (let ((c-name (first function))) +- (when *foreign-guard* +- (format *coutput-stream* "# if defined(HAVE_~A)~%" +- (string-upcase c-name))) ++ (let ((c-name (first function)) ++ (guard (fourth function))) ++ (when guard ++ (format *coutput-stream* "# if ~A~%" ++ (if (eq guard t) ++ (format nil "defined(HAVE_~A)" (string-upcase c-name)) ++ guard))) + (format *coutput-stream* + " register_foreign_function((void*)&~A,~A,~D);~%" + c-name (to-c-string c-name) (svref (second function) 3)) +- (when *foreign-guard* (format *coutput-stream* "# endif~%")))) ++ (when guard (format *coutput-stream* "# endif~%")))) + (maphash (lambda (type fun-vec) + (declare (ignore type)) + (let ((c-name (to-c-name (car fun-vec)))) +@@ -1083,7 +1086,7 @@ + (defmacro DEF-CALL-OUT (&whole whole-form name &rest options) + (setq name (check-symbol name (first whole-form))) + (let* ((alist +- (parse-options options '(:name :arguments :return-type :language ++ (parse-options options '(:name :arguments :return-type :language :guard + :built-in :library :version :documentation) + whole-form)) + (def (gensym "DEF-CALL-OUT-")) +@@ -1095,6 +1098,7 @@ + (version (second (assoc :version alist))) + (c-name (foreign-name name (assoc :name alist))) + (built-in (second (assoc :built-in alist))) ++ (guard (get-assoc :guard alist '*foreign-guard*)) + ;; Maximize sharing in .fas file, reuse options + ;; parse-c-function ignores unknown options, e.g. :name + (ctype `(PARSE-C-FUNCTION ',options ',whole-form))) +@@ -1102,7 +1106,7 @@ + ',c-name ,ctype ',properties ,library ,version NIL))) + (EXT:COMPILER-LET ((,def ,ctype)) + (EVAL-WHEN (COMPILE) +- (UNLESS ,LIBRARY (NOTE-C-FUN ',c-name ,def ',built-in))) ++ (UNLESS ,LIBRARY (NOTE-C-FUN ',c-name ,def ',built-in ,guard))) + (SYSTEM::EVAL-WHEN-COMPILE + (SYSTEM::C-DEFUN ',name (C-TYPE-TO-SIGNATURE ,ctype)))) + (WHEN ,def ; found library function +@@ -1110,10 +1114,10 @@ + (SYSTEM::%PUTD ',name ,def)) + ',name))) + +-(defun note-c-fun (c-name ctype built-in) ; not ABI, compile-time only ++(defun note-c-fun (c-name ctype built-in guard) ; not ABI, compile-time only + (when (system::prepare-coutput-file) + (prepare-module) +- (push (list c-name ctype built-in) ++ (push (list c-name ctype built-in guard) + *function-list*))) + + (defun count-inarguments (arg-vector) diff --git a/dev-lisp/clisp/files/clisp-2.49.92-after_glibc_cfree_bdb.patch b/dev-lisp/clisp/files/clisp-2.49.92-after_glibc_cfree_bdb.patch new file mode 100644 index 000000000000..ae83bbb8770d --- /dev/null +++ b/dev-lisp/clisp/files/clisp-2.49.92-after_glibc_cfree_bdb.patch @@ -0,0 +1,185 @@ +diff -r -U3 clisp-2.49.90.orig/modules/berkeley-db/bdb.c clisp-2.49.90/modules/berkeley-db/bdb.c +--- clisp-2.49.90.orig/modules/berkeley-db/bdb.c 2018-01-27 12:03:01.000000000 +0100 ++++ clisp-2.49.90/modules/berkeley-db/bdb.c 2018-02-12 20:37:24.203803219 +0100 +@@ -2216,7 +2216,13 @@ + c_data.compact_timeout = timeout; + c_data.compact_pages = pages; + SYSCALL(db->compact,(db,txn,pstart,pstop,&c_data,flags,&end)); +- pushSTACK(uint32_to_I(c_data.compact_empty_buckets)); ++ /* ==== ++ * compact_empty_buckets is in bdb-5.3 as part of output stats ++ * however this version use bdb-4.8 which does not have it ++ * ==== ++ * ++ * pushSTACK(uint32_to_I(c_data.compact_empty_buckets)); ++ * */ + pushSTACK(uint32_to_I(c_data.compact_pages_free)); + pushSTACK(uint32_to_I(c_data.compact_pages_examine)); + pushSTACK(uint32_to_I(c_data.compact_levels)); +diff -r -U3 clisp-2.49.90.orig/modules/bindings/glibc/linux.lisp clisp-2.49.90/modules/bindings/glibc/linux.lisp +--- clisp-2.49.90.orig/modules/bindings/glibc/linux.lisp 2018-01-10 00:32:25.000000000 +0100 ++++ clisp-2.49.90/modules/bindings/glibc/linux.lisp 2018-02-12 20:48:22.467775536 +0100 +@@ -1,7 +1,7 @@ + ;; Foreign functions provided by the Linux C library version 6, + ;; i.e. the GNU C library version 2.0.7. + ;; Bruno Haible 10.4.1998, 19.4.1998 +-;; Sam Steingold 2002-2008, 2011 ++;; Sam Steingold 2002-2008, 2011, 2013, 2016-2017 + + ;; NB: quite a few functions here have more portable counterparts in POSIX + +@@ -686,9 +686,8 @@ + (def-call-out system? (:arguments (null c-string)) + (:return-type boolean) (:name "system")) + +-; You can uncomment this if your compiler sets __USE_GNU +-; (def-call-out canonicalize_file_name (:arguments (name c-string)) +-; (:return-type c-string :malloc-free)) ++(def-call-out canonicalize_file_name (:arguments (name c-string)) ++ (:return-type c-string :malloc-free)) + + (def-call-out realpath + (:arguments (name c-string) +@@ -1040,9 +1039,8 @@ + (def-call-out access (:arguments (name c-string) (type int)) + (:return-type int)) + +-; You can uncomment this if your compiler sets __USE_GNU +-; (def-call-out euidaccess (:arguments (name c-string) (type int)) +-; (:return-type int)) ++(def-call-out euidaccess (:arguments (name c-string) (type int)) ++ (:return-type int)) + + (defconstant SEEK_SET 0) + (defconstant SEEK_CUR 1) +@@ -1093,9 +1091,8 @@ + ;(def-call-out getcwd (:arguments (buf c-string :out) (size size_t)) ; ?? + ; (:return-type c-string)) + +-; You can uncomment this if your compiler sets __USE_GNU +-; (def-call-out get_current_dir_name (:arguments) +-; (:return-type c-string :malloc-free)) ++(def-call-out get_current_dir_name (:arguments) ++ (:return-type c-string :malloc-free)) + + ;(def-call-out getwd (:arguments (buf c-string :out)) ; ?? + ; (:return-type c-string)) +@@ -1323,8 +1320,7 @@ + ; (:arguments (size int) (list (c-ptr (c-array gid_t ??)) :out)) ; ?? + ; (:return-type int)) + +-; You can uncomment this if your compiler sets __USE_GNU +-; (def-call-out group_member (:arguments (gid gid_t)) (:return-type boolean)) ++(def-call-out group_member (:arguments (gid gid_t)) (:return-type boolean)) + (def-call-out setuid (:arguments (uid uid_t)) (:return-type int)) + (def-call-out setreuid (:arguments (ruid uid_t) (euid uid_t)) + (:return-type int)) +@@ -1821,8 +1817,7 @@ + (:return-type c-string :malloc-free)) + (def-call-out ungetc (:arguments (c int) (fp FILE)) + (:return-type int)) +-; You can uncomment this if your compiler sets __USE_GNU +-; (def-call-out fcloseall (:arguments) (:return-type int)) ++(def-call-out fcloseall (:arguments) (:return-type int)) + (def-call-out fdopen (:arguments (fildes int) (mode c-string)) + (:return-type c-pointer)) + (def-call-out fileno (:arguments (fp FILE)) (:return-type int)) +@@ -1900,11 +1895,11 @@ + (:return-type (c-ptr-null dirent))) + (def-call-out readdir64 (:arguments (dirp c-pointer)) + (:return-type (c-ptr-null dirent64))) +-(def-call-out readdir_r ++(def-call-out readdir_r ; deprecated + (:arguments (dirp c-pointer) (entry (c-ptr dirent) :out :alloca) + (result (c-ptr (c-ptr dirent)) :out :alloca)) ; ?? + (:return-type int)) +-(def-call-out readdir64_r ++(def-call-out readdir64_r ; deprecated + (:arguments (dirp c-pointer) (entry (c-ptr dirent64) :out :alloca) + (result (c-ptr (c-ptr dirent64)) :out :alloca)) ; ?? + (:return-type int)) +diff -r -U3 clisp-2.49.90.orig/modules/bindings/glibc/test.tst clisp-2.49.90/modules/bindings/glibc/test.tst +--- clisp-2.49.90.orig/modules/bindings/glibc/test.tst 2018-01-10 00:04:26.000000000 +0100 ++++ clisp-2.49.90/modules/bindings/glibc/test.tst 2018-02-12 20:50:48.225769407 +0100 +@@ -14,6 +14,16 @@ + (= linux:DT_DIR (linux:dirent64-d_type (show (linux:readdir64 *d*)))) T + (linux:closedir *d*) 0 + ++(stringp (show (linux:get-domain-name))) T ++(stringp (show (linux:get-host-name))) T ++ ++;; usually __USE_GNU is defined, so this should work: ++(let* ((d (linux:get_current_dir_name)) ++ (c (linux:canonicalize_file_name (concatenate 'string d "/.")))) ++ (or (string= d c) ++ (list :cur-dir d :canonical c))) ++T ++ + (defparameter *d* (show (linux:opendir "."))) *D* + (linux:dirent-d_name (show (linux:readdir *d*))) "." + (linux:dirent-d_name (show (linux:readdir *d*))) ".." +diff -r -U3 clisp-2.49.90.orig/src/foreign1.lisp clisp-2.49.90/src/foreign1.lisp +--- clisp-2.49.90.orig/src/foreign1.lisp 2018-01-10 00:04:26.000000000 +0100 ++++ clisp-2.49.90/src/foreign1.lisp 2018-02-12 21:03:56.768736245 +0100 +@@ -805,14 +805,17 @@ + c-name (to-c-string c-name) (third variable) (first variable)) + (when *foreign-guard* (format *coutput-stream* "# endif~%")))) + (dolist (function *function-list*) +- (let ((c-name (first function))) +- (when *foreign-guard* +- (format *coutput-stream* "# if defined(HAVE_~A)~%" +- (string-upcase c-name))) ++ (let ((c-name (first function)) ++ (guard (fourth function))) ++ (when guard ++ (format *coutput-stream* "# if ~A~%" ++ (if (eq guard t) ++ (format nil "defined(HAVE_~A)" (string-upcase c-name)) ++ guard))) + (format *coutput-stream* + " register_foreign_function((void*)&~A,~A,~D);~%" + c-name (to-c-string c-name) (svref (second function) 3)) +- (when *foreign-guard* (format *coutput-stream* "# endif~%")))) ++ (when guard (format *coutput-stream* "# endif~%")))) + (maphash (lambda (type fun-vec) + (declare (ignore type)) + (let ((c-name (to-c-name (car fun-vec)))) +@@ -1083,7 +1086,7 @@ + (defmacro DEF-CALL-OUT (&whole whole-form name &rest options) + (setq name (check-symbol name (first whole-form))) + (let* ((alist +- (parse-options options '(:name :arguments :return-type :language ++ (parse-options options '(:name :arguments :return-type :language :guard + :built-in :library :version :documentation) + whole-form)) + (def (gensym "DEF-CALL-OUT-")) +@@ -1095,6 +1098,7 @@ + (version (second (assoc :version alist))) + (c-name (foreign-name name (assoc :name alist))) + (built-in (second (assoc :built-in alist))) ++ (guard (get-assoc :guard alist '*foreign-guard*)) + ;; Maximize sharing in .fas file, reuse options + ;; parse-c-function ignores unknown options, e.g. :name + (ctype `(PARSE-C-FUNCTION ',options ',whole-form))) +@@ -1102,7 +1106,7 @@ + ',c-name ,ctype ',properties ,library ,version NIL))) + (EXT:COMPILER-LET ((,def ,ctype)) + (EVAL-WHEN (COMPILE) +- (UNLESS ,LIBRARY (NOTE-C-FUN ',c-name ,def ',built-in))) ++ (UNLESS ,LIBRARY (NOTE-C-FUN ',c-name ,def ',built-in ,guard))) + (SYSTEM::EVAL-WHEN-COMPILE + (SYSTEM::C-DEFUN ',name (C-TYPE-TO-SIGNATURE ,ctype)))) + (WHEN ,def ; found library function +@@ -1110,10 +1114,10 @@ + (SYSTEM::%PUTD ',name ,def)) + ',name))) + +-(defun note-c-fun (c-name ctype built-in) ; not ABI, compile-time only ++(defun note-c-fun (c-name ctype built-in guard) ; not ABI, compile-time only + (when (system::prepare-coutput-file) + (prepare-module) +- (push (list c-name ctype built-in) ++ (push (list c-name ctype built-in guard) + *function-list*))) + + (defun count-inarguments (arg-vector) diff --git a/dev-lisp/clisp/metadata.xml b/dev-lisp/clisp/metadata.xml new file mode 100644 index 000000000000..16a600559061 --- /dev/null +++ b/dev-lisp/clisp/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> +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="svm">Build CLISP with support for the Support Vector Machine module</flag> + </use> + <upstream> + <remote-id type="sourceforge">clisp</remote-id> + </upstream> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-lisp/clozurecl/Manifest b/dev-lisp/clozurecl/Manifest new file mode 100644 index 000000000000..bfc4b91eba63 --- /dev/null +++ b/dev-lisp/clozurecl/Manifest @@ -0,0 +1,5 @@ +DIST ccl-1.11.5-darwinx86.tar.gz 100515656 BLAKE2B d9ae52f7d0c481211fdf53bf6bb4bb65a66ab60bf1c3548e9f2d502e60906163121a85330e547d15e3d4bcb6ad47564e86dd93b4228a9391558463347011990f SHA512 1016ab9672839d1303809e9f5b849cf36dc300963672dfa5888b75f6dadee3106cd6f1375e544437a92c7307dc8639e423e12663ca157b851925d0e82f0cd4b7 +DIST ccl-1.11.5-linuxarm.tar.gz 40288609 BLAKE2B 5217de314e6c59e5bbee7d5608b4e92088fb57dc0d8a90454ec4653c1710857748776d9a7ee2e89e86613f64fc028aca324ea5cb3bc7eb5e9bc582e2b50766cf SHA512 0305baa66263a2182ba8deb02837287ffb6c1472987d4953caa8839cad6503815ded7fe6bfde72a823b90d3ff86322602ee3d0934e179fb2418e3b049f55be4e +DIST ccl-1.11.5-linuxx86.tar.gz 50652181 BLAKE2B 2ed6e747a72816c6f79f58715261c41a1c3b98fa84ef4ee82ca5683383741777a46a566c7884d7fdc3dcd2e5959dab2f3fde9432945a4dc73bcece8f741ed753 SHA512 b6c16d9bba27a901f942237ed42d6b3e832910951270820a2a3d61afe2a8e7f59d383c854382cfcaa0bf8253c8d624be66d905b4170211ea39a106ca85b9a23d +DIST ccl-1.11.5-solarisx86.tar.gz 59139069 BLAKE2B db1a904dd4e794127e7c966a9734aa92bb0415520a6af35d92008fd785004bd2ea04deb66f600b1d1dd60c0b95519e86d412b208878aaa6c2f9f8c05a27efe38 SHA512 4ae7cee7e35de41ab20d79e073b12b6bd98a23beea95c0de7d882a1f4e1ea3f9f3162844df0578aeeadb671d30a0a488092ee93b35245c693051a4ab9193fc5b +DIST ccl.html 962003 BLAKE2B fc95ec5abbea7c2f5f247293691a5c5a7eddaa049156c38766ec9df4d1920fdee902c89db976cc6687535aef5ddda3c672b62156bf0f61b6369ade548dcb0141 SHA512 0cb9ee8f7eb6007e08241a0797519ff3bfc3d3adc0b5ac86e6a2e9e8b2e316fc421bea3b04159decc0a2b37ff7098147e25266946cc3c1ac367b93e4821a8b64 diff --git a/dev-lisp/clozurecl/clozurecl-1.11.5.ebuild b/dev-lisp/clozurecl/clozurecl-1.11.5.ebuild new file mode 100644 index 000000000000..5c3a3d5125c7 --- /dev/null +++ b/dev-lisp/clozurecl/clozurecl-1.11.5.ebuild @@ -0,0 +1,99 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit eutils flag-o-matic multilib toolchain-funcs vcs-clean + +MY_PN=ccl +MY_P=${MY_PN}-${PV} + +DESCRIPTION="Common Lisp implementation, derived from Digitool's MCL product" +HOMEPAGE="https://ccl.clozure.com" +SRC_URI=" + x86? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-linuxx86.tar.gz ) + amd64? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-linuxx86.tar.gz ) + arm? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-linuxarm.tar.gz ) + x86-macos? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-darwinx86.tar.gz ) + x64-macos? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-darwinx86.tar.gz ) + x86-solaris? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-solarisx86.tar.gz ) + x64-solaris? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-solarisx86.tar.gz ) + doc? ( https://ccl.clozure.com/docs/ccl.html )" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux ~x64-macos" +IUSE="doc" + +RDEPEND=">=dev-lisp/asdf-2.33-r3:=" +DEPEND="${RDEPEND}" + +S="${WORKDIR}"/${MY_PN} +ENVD="${T}/50ccl" + +PATCHES=( "${FILESDIR}"/${P}-no-pie-32.patch ) + +src_prepare() { + default + cp "${EPREFIX}/usr/share/common-lisp/source/asdf/build/asdf.lisp" tools/ || die +} + +src_configure() { + if use x86-macos; then + CCL_RUNTIME=dx86cl; CCL_HEADERS=darwin-x86-headers; CCL_KERNEL=darwinx8632 + elif use x64-macos; then + CCL_RUNTIME=dx86cl64; CCL_HEADERS=darwin-x86-headers64; CCL_KERNEL=darwinx8664 + elif use x86-solaris; then + CCL_RUNTIME=sx86cl; CCL_HEADERS=solarisx86-headers; CCL_KERNEL=solarisx86 + elif use x64-solaris; then + CCL_RUNTIME=sx86cl64; CCL_HEADERS=solarisx64-headers; CCL_KERNEL=solarisx64 + elif use x86; then + CCL_RUNTIME=lx86cl; CCL_HEADERS=x86-headers; CCL_KERNEL=linuxx8632 + elif use amd64; then + CCL_RUNTIME=lx86cl64; CCL_HEADERS=x86-headers64; CCL_KERNEL=linuxx8664 + elif use arm; then + CCL_RUNTIME=armcl; CCL_HEADERS=arm-headers; CCL_KERNEL=linuxarm + elif use ppc; then + CCL_RUNTIME=ppccl; CCL_HEADERS=headers; CCL_KERNEL=linuxppc + elif use ppc64; then + CCL_RUNTIME=ppccl64; CCL_HEADERS=headers64; CCL_KERNEL=linuxppc64 + fi +} + +src_compile() { + emake -C lisp-kernel/${CCL_KERNEL} clean + emake -C lisp-kernel/${CCL_KERNEL} all CC="$(tc-getCC)" + + unset CCL_DEFAULT_DIRECTORY + ./${CCL_RUNTIME} -n -b -Q -e '(ccl:rebuild-ccl :full t)' -e '(ccl:quit)' || die "Compilation failed" + + # remove non-owner write permissions on the full-image + chmod go-w ${CCL_RUNTIME}{,.image} || die + + esvn_clean +} + +src_install() { + local target_dir="/usr/$(get_libdir)/${PN}" + local prefix_dir="${EPREFIX}/${target_dir#/}" + + mkdir -p "${D}/${prefix_dir#/}" + + find . -type f -name '*fsl' -delete || die + rm -f lisp-kernel/${CCL_KERNEL}/*.o || die + cp -a compiler level-0 level-1 lib library lisp-kernel scripts \ + tools xdump ${CCL_HEADERS} ${CCL_RUNTIME} ${CCL_RUNTIME}.image \ + "${D}/${prefix_dir#/}" || die + + echo "CCL_DEFAULT_DIRECTORY=${prefix_dir}" > "${ENVD}" + doenvd "${ENVD}" + + dosym "${target_dir}/${CCL_RUNTIME}" /usr/bin/ccl + dodoc doc/release-notes.txt + + if use doc ; then + dodoc "${DISTDIR}/ccl.html" + dodoc -r doc/manual + dodoc -r examples + fi +} diff --git a/dev-lisp/clozurecl/files/clozurecl-1.11.5-no-pie-32.patch b/dev-lisp/clozurecl/files/clozurecl-1.11.5-no-pie-32.patch new file mode 100644 index 000000000000..2396c7a316cf --- /dev/null +++ b/dev-lisp/clozurecl/files/clozurecl-1.11.5-no-pie-32.patch @@ -0,0 +1,7 @@ +--- a/lisp-kernel/linuxx8632/Makefile ++++ b/lisp-kernel/linuxx8632/Makefile +@@ -76,3 +76,3 @@ USE_LINK_SCRIPT = # -T $(LINK_SCRIPT) + ../../lx86cl: $(KSPOBJ) $(KERNELOBJ) $(DEBUGOBJ) Makefile $(LINK_SCRIPT) +- $(CC) -m32 $(CDEBUG) -Wl,--export-dynamic $(HASH_STYLE) -o $@ $(USE_LINK_SCRIPT) $(KSPOBJ) $(KERNELOBJ) $(DEBUGOBJ) -Wl,--no-as-needed $(OSLIBS) ++ $(CC) -m32 $(CDEBUG) -Wl,--export-dynamic $(HASH_STYLE) -no-pie -o $@ $(USE_LINK_SCRIPT) $(KSPOBJ) $(KERNELOBJ) $(DEBUGOBJ) -Wl,--no-as-needed $(OSLIBS) + diff --git a/dev-lisp/clozurecl/metadata.xml b/dev-lisp/clozurecl/metadata.xml new file mode 100644 index 000000000000..a4d8d549ef24 --- /dev/null +++ b/dev-lisp/clozurecl/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> +Clozure Common Lisp (formerly OpenMCL) is a Common Lisp implementation. +</longdescription> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-lisp/clx/Manifest b/dev-lisp/clx/Manifest new file mode 100644 index 000000000000..9b7e836335f6 --- /dev/null +++ b/dev-lisp/clx/Manifest @@ -0,0 +1 @@ +DIST clx-0.7.5.tar.gz 468904 BLAKE2B 30ce4de52fdbbc935bf5653f54a588537670b7d55dc038f32b4527e5f3d7b2dfe6afde3d28debf7ab5a08994155ec390f1e70dfbe45e8831fe7a977d245c9d7a SHA512 9228c37a99dcaee637c64c58183220c1ed3745e683c877f843c7de5b052d7355a3ddd50687371e8388c05bcedda062008299476b82dc8a3d26b605dde1dfa997 diff --git a/dev-lisp/clx/clx-0.7.5.ebuild b/dev-lisp/clx/clx-0.7.5.ebuild new file mode 100644 index 000000000000..8cd18ea3e421 --- /dev/null +++ b/dev-lisp/clx/clx-0.7.5.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit common-lisp-3 eutils + +DESCRIPTION="CLX is the Common Lisp interface to the X11 protocol primarily for SBCL." +HOMEPAGE="http://www.cliki.net/CLX" +SRC_URI="https://github.com/sharplispers/clx/archive/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~sparc ~x86" +IUSE="doc" + +DEPEND="sys-apps/texinfo + doc? ( virtual/texi2dvi )" +RDEPEND="!dev-lisp/cl-${PN}" + +src_compile() { + cd manual || die + makeinfo ${PN}.texinfo -o ${PN}.info || die + if use doc ; then + VARTEXFONTS="${T}"/fonts \ + texi2pdf ${PN}.texinfo -o ${PN}.pdf || die + fi +} + +src_install() { + common-lisp-install-sources *.lisp debug demo extensions tests + common-lisp-install-asdf + dodoc NEWS CHANGES README* + doinfo manual/${PN}.info + use doc && dodoc manual/${PN}.pdf +} diff --git a/dev-lisp/clx/metadata.xml b/dev-lisp/clx/metadata.xml new file mode 100644 index 000000000000..5a15bfe4e386 --- /dev/null +++ b/dev-lisp/clx/metadata.xml @@ -0,0 +1,25 @@ +<?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> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-lisp/cmucl/Manifest b/dev-lisp/cmucl/Manifest new file mode 100644 index 000000000000..cd8cafb04080 --- /dev/null +++ b/dev-lisp/cmucl/Manifest @@ -0,0 +1,2 @@ +DIST cmucl-21c-x86-linux.tar.bz2 11127872 BLAKE2B b9089a40b4a0738f9faccdfddb7b33256a561a07cedc3ef9b3ec7afddbbb9de493c2ffb9af4a8d6b6ce70ef857576870901a6b7a607f52bdaf8a0f53ddd2d07e SHA512 9097220aef612aa3d8367a86a86dc62d86d918190d2688f6e90d415c9f9d881f97f0829e9d310f700b014821d30bf5a15f7a05cdb9201c9deab10a7231e0bcb6 +DIST cmucl-src-21c.tar.bz2 6947775 BLAKE2B 828075c71ddf459d09076199af4a02f2294063bd9ef0beb6d4bcbb473dd0ff8cfdff7faa9416f640e125603301fa37c73a280db597bf4301c22fbe88c4cc2dbb SHA512 98ea0516b71af7c6f92b5f67f6c1545949fcd1dc95e1238a989c1c2858a75e2751e5eb765b29812ad5cc5de015333787dac2a63a9ddea9bb83cfd72fef6794f4 diff --git a/dev-lisp/cmucl/cmucl-21c.ebuild b/dev-lisp/cmucl/cmucl-21c.ebuild new file mode 100644 index 000000000000..0de64d060786 --- /dev/null +++ b/dev-lisp/cmucl/cmucl-21c.ebuild @@ -0,0 +1,109 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit eutils toolchain-funcs multilib + +MY_PV=${PV:0:3} + +DESCRIPTION="CMU Common Lisp is an implementation of ANSI Common Lisp" +HOMEPAGE="http://www.cons.org/cmucl/" +SRC_URI="http://common-lisp.net/project/cmucl/downloads/release/${MY_PV}/cmucl-src-${MY_PV}.tar.bz2 + http://common-lisp.net/project/cmucl/downloads/release/${MY_PV}/cmucl-${MY_PV}-x86-linux.tar.bz2" + +LICENSE="public-domain" +SLOT="0" +KEYWORDS="x86" +IUSE="X doc source" + +CDEPEND=">=dev-lisp/asdf-2.33-r3:= + x11-libs/motif:0" +DEPEND="${CDEPEND} + sys-devel/bc + doc? ( virtual/latex-base )" +RDEPEND="${CDEPEND}" + +S="${WORKDIR}" + +TARGET=linux-4 + +src_prepare() { + eapply "${FILESDIR}"/${P}-execstack-fixes.patch + eapply "${FILESDIR}"/${P}-build.patch + eapply_user + #cp "${FILESDIR}"/os-common.h src/lisp/ || die + cp /usr/share/common-lisp/source/asdf/build/asdf.lisp src/contrib/asdf/ || die +} + +src_compile() { + local cmuopts buildimage + + if use X ; then + cmuopts="" + else + cmuopts="-u" + fi + + buildimage="bin/lisp -batch" + + env CC="$(tc-getCC)" bin/build.sh -v "-gentoo-${PR}" -C "" -o "${buildimage}" ${cmuopts} || die "Cannot build the compiler" + + # Compile up the asdf and defsystem modules + ${TARGET}/lisp/lisp -noinit -nositeinit -batch << EOF || die +(in-package :cl-user) +(setf (ext:search-list "target:") + '("$TARGET/" "src/")) +(setf (ext:search-list "modules:") + '("target:contrib/")) + +(compile-file "modules:asdf/asdf") +(compile-file "modules:defsystem/defsystem") +EOF + + # Documentation + if use doc; then + pushd src/docs/cmu-user > /dev/null || die "directory src/docs/cmu-user does not exist" + emake + cd ../internals || die "directory src/docs/internals does not exist" + emake + popd > /dev/null + fi +} + +src_install() { + bin/make-dist.sh -S -g -G root -O root -M share/man/man1 -V ${MY_PV} -A x86 -o linux ${TARGET} \ + || die "Cannot build installation archive" + # Necessary otherwise tar will fail + dodir /usr + pushd "${D}"/usr > /dev/null + tar xzpf "${WORKDIR}"/cmucl-${MY_PV}-x86-linux.tar.gz \ + || die "Cannot install main system" + if use X ; then + tar xzpf "${WORKDIR}"/cmucl-${MY_PV}-x86-linux.extra.tar.gz \ + || die "Cannot install extra files" + fi + if use source; then + # Necessary otherwise tar will fail + dodir /usr/share/common-lisp/source/${PN} + cd "${D}"/usr/share/common-lisp/source/${PN} || die + tar --strip-components 1 -xzpf "${WORKDIR}"/cmucl-src-${MY_PV}.tar.gz \ + || die "Cannot install sources" + fi + popd > /dev/null + + # Install site config file + sed "s,@PF@,${PF},g ; s,@VERSION@,$(date +%F),g" \ + < "${FILESDIR}"/site-init.lisp.in \ + > "${D}"/usr/$(get_libdir)/cmucl/site-init.lisp \ + || die "Cannot fix site-init.lisp" + insinto /etc/common-lisp + doins "${FILESDIR}"/cmuclrc + + # Documentation + dodoc doc/cmucl/README + if use doc; then + insinto /usr/share/doc/${PF} + doins src/docs/cmu-user/cmu-user.pdf src/docs/internals/design.pdf + fi +} diff --git a/dev-lisp/cmucl/files/cmucl-21c-build.patch b/dev-lisp/cmucl/files/cmucl-21c-build.patch new file mode 100644 index 000000000000..4d7e4061c924 --- /dev/null +++ b/dev-lisp/cmucl/files/cmucl-21c-build.patch @@ -0,0 +1,22 @@ +diff -r -U2 21a.orig/bin/build.sh 21a/bin/build.sh +--- 21a.orig/bin/build.sh 2015-05-19 07:42:40.000000000 +0600 ++++ 21a/bin/build.sh 2016-04-03 20:54:08.597016537 +0600 +@@ -40,5 +40,5 @@ + ENABLE4="yes" + +-version=21b ++version=21c + SRCDIR=src + BINDIR=bin +@@ -145,10 +145,9 @@ + $TOOLDIR/load-world.sh $TARGET "$VERSION" || { echo "Failed: $TOOLDIR/load-world.sh"; exit 1; } + +- $TARGET/lisp/lisp -batch -noinit -nositeinit $FPU_MODE < /dev/null || { echo "Failed: $TARGET/lisp/lisp -batch -noinit $FPU_MODE"; exit 1; } ++ $TARGET/lisp/lisp -batch -noinit -nositeinit < /dev/null || { echo "Failed: $TARGET/lisp/lisp -batch -noinit"; exit 1; } + return 0; + fi + } + +-FPU_MODE= + BUILDWORLD="$TOOLDIR/build-world.sh" + BUILD_POT="yes" diff --git a/dev-lisp/cmucl/files/cmucl-21c-execstack-fixes.patch b/dev-lisp/cmucl/files/cmucl-21c-execstack-fixes.patch new file mode 100644 index 000000000000..034848d64a26 --- /dev/null +++ b/dev-lisp/cmucl/files/cmucl-21c-execstack-fixes.patch @@ -0,0 +1,118 @@ +diff -Naur work.old/src/lisp/alpha-assem.S work/src/lisp/alpha-assem.S +--- work.old/src/lisp/alpha-assem.S 2003-03-06 11:13:09.000000000 -0300 ++++ work/src/lisp/alpha-assem.S 2010-05-10 00:06:34.000000000 -0300 +@@ -297,3 +297,7 @@ + function_end_breakpoint_end: + + ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif +diff -Naur work.old/src/lisp/amd64-assem.S work/src/lisp/amd64-assem.S +--- work.old/src/lisp/amd64-assem.S 2004-07-27 19:03:53.000000000 -0300 ++++ work/src/lisp/amd64-assem.S 2010-05-10 00:06:34.000000000 -0300 +@@ -1051,3 +1051,7 @@ + .end + + #endif /* LINKAGE_TABLE */ ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif +diff -Naur work.old/src/lisp/backtrace.c work/src/lisp/backtrace.c +--- work.old/src/lisp/backtrace.c 2009-06-11 13:04:01.000000000 -0300 ++++ work/src/lisp/backtrace.c 2010-05-10 00:06:22.000000000 -0300 +@@ -3,6 +3,8 @@ + * Simple backtrace facility. More or less from Rob's lisp version. + */ + ++#include "os-common.h" ++ + #include <stdio.h> + #include <signal.h> + #include "lisp.h" +diff -Naur work.old/src/lisp/hppa-assem.S work/src/lisp/hppa-assem.S +--- work.old/src/lisp/hppa-assem.S 2002-08-23 14:05:35.000000000 -0300 ++++ work/src/lisp/hppa-assem.S 2010-05-10 00:06:34.000000000 -0300 +@@ -460,3 +460,7 @@ + + .export function_end_breakpoint_end + function_end_breakpoint_end ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif +diff -Naur work.old/src/lisp/linux-stubs.S work/src/lisp/linux-stubs.S +--- work.old/src/lisp/linux-stubs.S 2005-08-17 00:40:16.000000000 -0300 ++++ work/src/lisp/linux-stubs.S 2010-05-10 00:06:34.000000000 -0300 +@@ -995,3 +995,7 @@ + /* doe(yperr_string) */ + /* doe(ypprot_err) */ + #endif /* defined(LINKAGE_TABLE) && !defined(__FreeBSD__) */ ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif +diff -Naur work.old/src/lisp/lisp.c work/src/lisp/lisp.c +--- work.old/src/lisp/lisp.c 2009-07-13 16:41:54.000000000 -0300 ++++ work/src/lisp/lisp.c 2010-05-10 00:05:55.000000000 -0300 +@@ -5,6 +5,9 @@ + * + */ + ++#include "os-common.h" ++#include <time.h> ++ + #include <stdio.h> + #include <stdlib.h> + #include <limits.h> +diff -Naur work.old/src/lisp/mips-assem.S work/src/lisp/mips-assem.S +--- work.old/src/lisp/mips-assem.S 2002-08-23 14:01:02.000000000 -0300 ++++ work/src/lisp/mips-assem.S 2010-05-10 00:06:34.000000000 -0300 +@@ -402,3 +402,7 @@ + move v0, a1 + j _restore_state + .end save_state ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif +diff -Naur work.old/src/lisp/os-common.h work/src/lisp/os-common.h +--- work.old/src/lisp/os-common.h 1969-12-31 21:00:00.000000000 -0300 ++++ work/src/lisp/os-common.h 2010-05-10 00:06:22.000000000 -0300 +@@ -0,0 +1 @@ ++char* convert_lisp_string(char *c_string, void *lisp_string, int len); +diff -Naur work.old/src/lisp/ppc-assem.S work/src/lisp/ppc-assem.S +--- work.old/src/lisp/ppc-assem.S 2006-02-25 01:35:58.000000000 -0300 ++++ work/src/lisp/ppc-assem.S 2010-05-10 00:06:34.000000000 -0300 +@@ -721,3 +721,7 @@ + SET_SIZE(fpu_restore) + + #endif ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif +diff -Naur work.old/src/lisp/sparc-assem.S work/src/lisp/sparc-assem.S +--- work.old/src/lisp/sparc-assem.S 2003-10-23 23:57:00.000000000 -0300 ++++ work/src/lisp/sparc-assem.S 2010-05-10 00:06:34.000000000 -0300 +@@ -837,3 +837,7 @@ + * End: + */ + ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif +diff -Naur work.old/src/lisp/x86-assem.S work/src/lisp/x86-assem.S +--- work.old/src/lisp/x86-assem.S 2008-12-24 02:36:40.000000000 -0200 ++++ work/src/lisp/x86-assem.S 2010-05-10 00:06:34.000000000 -0300 +@@ -798,3 +798,7 @@ + ENDFUNC(undefined_foreign_symbol_trap) + + #endif /* LINKAGE_TABLE */ ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif diff --git a/dev-lisp/cmucl/files/cmuclrc b/dev-lisp/cmucl/files/cmuclrc new file mode 100644 index 000000000000..e663e92af87a --- /dev/null +++ b/dev-lisp/cmucl/files/cmuclrc @@ -0,0 +1,9 @@ +;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; indent-tabs-mode: nil -*- +;;; + +(in-package :common-lisp-user) + +(if (probe-file "/etc/gentoo-init.lisp") + (load "/etc/gentoo-init.lisp") + (format t "~%;;; Warning: There is no /etc/gentoo-init.lisp file ~ +\(which should be provided by dev-lisp/gentoo-init")) diff --git a/dev-lisp/cmucl/files/site-init.lisp.in b/dev-lisp/cmucl/files/site-init.lisp.in new file mode 100644 index 000000000000..1b232166c889 --- /dev/null +++ b/dev-lisp/cmucl/files/site-init.lisp.in @@ -0,0 +1,56 @@ +;;; -*- Mode: Lisp; Package: System -*- +;;; +;;; ********************************************************************** +;;; This code was written as part of the CMU Common Lisp project at +;;; Carnegie Mellon University, and has been placed in the public domain. +;;; + +;;; Heavy modifications by Peter Van Eynde + +;;; More modifications for Gentoo by Matthew Kennedy +;;; <mkennedy@gentoo.org> + +(in-package "SYSTEM") + +(if (probe-file "/etc/cmuclrc") + (load "/etc/cmuclrc") + (format t "~%;;; Warning: There is no /etc/cmuclrc file (which should have been created during emerge")) + +;;; If you have sources installed on your system, un-comment the following form +;;; and change it to point to the source location. This will allow the Hemlock +;;; "Edit Definition" command and the debugger to find sources for functions in +;;; the core. +(when (probe-file #p"/usr/share/common-lisp/source/cmucl/") + (setf (ext:search-list "target:") + '( + "/usr/share/common-lisp/source/cmucl/" ; object dir + ))) + +;;; (setf (ext:search-list "library:") '("/usr/lib/cmucl/lib/")) +;;; for safety... + +;;; Put your site name here... +(setq *short-site-name* "Unknown") +(setq *long-site-name* "Site name not initialized") + +(in-package :common-lisp-user) + +;;; newbie functions, delete if you don't like them + +(defun help () + (format t "~ +Welcome to the Gentoo GNU/Linux port of CMUCL. + +The CMUCL REPL does not have GNU Readline-like support, however +you may wish to install rlwap (see: app-misc/rlwrap) to achieve +the same effect. + +If you think you found a bug, please use http://bugs.gentoo.org/ + +Read the documentation in /usr/share/doc/@PF@. + +\(quit) exit Lisp +\(describe 'foo) gives information about foo +\(inspect '*foo*) interactively inspects *foo* +\(apropos \"foo\") briefly describe all symbols which match \"foo\" +")) diff --git a/dev-lisp/cmucl/metadata.xml b/dev-lisp/cmucl/metadata.xml new file mode 100644 index 000000000000..d629fdce7003 --- /dev/null +++ b/dev-lisp/cmucl/metadata.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="project"> +<email>common-lisp@gentoo.org</email> +<name>Gentoo Common Lisp Project</name> +</maintainer> +<longdescription> +CMUCL is a free implementation of the Common Lisp programming language +which runs on most major Unix platforms. It mainly conforms to the +ANSI Common Lisp standard. Here is a summary of its main features: + + * a sophisticated native-code compiler which is capable of powerful + type inferences, and generates code competitive in speed with C + compilers. + + * generational garbage collection and multiprocessing capability on + the x86 ports. + + * a foreign function interface which allows interfacing with C code + and system libraries, including shared libraries on most platforms, + and direct access to Unix system calls. + + * support for interprocess communication and remote procedure calls. + + * an implementation of CLOS, the Common Lisp Object System, which + includes multimethods and a metaobject protocol. + + * a graphical source-level debugger using a Motif interface, and a + code profiler. +</longdescription> +<use> +<flag name="doc">Installs package documentation</flag> +<flag name="source">Include source code for CMUCL in installation</flag> +<flag name="X">Build CLX, CLM, or Hemlock</flag> +</use> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-lisp/ecls/Manifest b/dev-lisp/ecls/Manifest new file mode 100644 index 000000000000..25e997e45474 --- /dev/null +++ b/dev-lisp/ecls/Manifest @@ -0,0 +1,2 @@ +DIST ecl-16.1.3.tgz 7459212 BLAKE2B 4f9d6ad2bd92ede4b5b20857b95a48bad5002049e83611865d9cf13e7131adfaad147a31f22f9a3f6a2c06e46db1996aa98135c28b97bf5ef16e17b5eba0dc4b SHA512 5d743f422f6bc24671abf4c739cde8273d08f056906a1ef8aed5145c703b6d52c7fa4b5e0be8c125f32240c20ce053007786bb3ae81cc34d47791f6fae0819c1 +DIST ecl-20.4.24.tgz 7815444 BLAKE2B 11b908b028beaaf9243dc0f2ceaa178918ae4763a907af4424ba21e6bdf3474aaa36c96e9a3ef1ce780e50649c2453b52b7c46b5e9dc1453281dc522417ad78c SHA512 4c127e0d6a99e38f3a926135ae92d92899058c5a5e99b90f28d4a47b58d94ee89a958cfb4bfd2b9e6ad7b3c57867cd13119b2a4dd6bb1aa3bb5ec42a96bfa788 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..e59f26da8f2e --- /dev/null +++ b/dev-lisp/ecls/ecls-16.1.3.ebuild @@ -0,0 +1,96 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit eutils multilib + +# test phase only works if ecls already installed #516876 +RESTRICT="test" + +MY_P=ecl-${PV} + +DESCRIPTION="ECL is an embeddable Common Lisp implementation" +HOMEPAGE="https://common-lisp.net/project/ecl/" +SRC_URI="https://common-lisp.net/project/ecl/static/files/release/${MY_P}.tgz" + +LICENSE="BSD-2 LGPL-2.1+" +SLOT="0/${PV}" +KEYWORDS="amd64 ~ppc ~sparc x86" +IUSE="cxx debug emacs gengc precisegc cpu_flags_x86_sse +threads +unicode +libatomic X" + +CDEPEND="dev-libs/gmp:0 + virtual/libffi + libatomic? ( dev-libs/libatomic_ops ) + >=dev-libs/boehm-gc-7.1[threads?] + >=dev-lisp/asdf-2.33-r3:=" +DEPEND="${CDEPEND} + app-text/texi2html + emacs? ( >=app-editors/emacs-23.1:* >=app-eselect/eselect-emacs-1.12 )" +RDEPEND="${CDEPEND}" + +S="${WORKDIR}"/${MY_P} + +PATCHES=( + "${FILESDIR}/${P}-headers-gentoo.patch" + "${FILESDIR}/${P}-build.patch" +) + +pkg_setup() { + if use gengc || use precisegc ; then + ewarn "You have enabled the generational garbage collector or" + ewarn "the precise collection routines. These features are not very stable" + ewarn "at the moment and may cause crashes." + ewarn "Don't enable them unless you know what you're doing." + fi +} + +src_prepare() { + default + cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die +} + +src_configure() { + econf \ + --with-system-gmp \ + --enable-boehm=system \ + --enable-longdouble=yes \ + --with-dffi \ + $(use_with cxx) \ + $(use_enable gengc) \ + $(use_enable precisegc) \ + $(use_with debug debug-cflags) \ + $(use_enable libatomic libatomic system) \ + $(use_with cpu_flags_x86_sse sse) \ + $(use_enable threads) \ + $(use_with threads __thread) \ + $(use_enable unicode) \ + $(use_with unicode unicode-names) \ + $(use_with X x) +} + +src_compile() { + if use emacs; then + local ETAGS=$(eselect --brief etags list | sed -ne '/emacs/{p;q}') + [[ -n ${ETAGS} ]] || die "No etags implementation found" + pushd build > /dev/null || die + emake ETAGS=${ETAGS} TAGS + popd > /dev/null + else + touch build/TAGS + fi + + #parallel make fails + emake -j1 +} + +src_install() { + emake DESTDIR="${D}" install + + 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-20.4.24.ebuild b/dev-lisp/ecls/ecls-20.4.24.ebuild new file mode 100644 index 000000000000..e00114ccd8bb --- /dev/null +++ b/dev-lisp/ecls/ecls-20.4.24.ebuild @@ -0,0 +1,96 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit eutils multilib + +# test phase only works if ecls already installed #516876 +RESTRICT="test" + +MY_P=ecl-${PV} + +DESCRIPTION="ECL is an embeddable Common Lisp implementation" +HOMEPAGE="https://common-lisp.net/project/ecl/" +SRC_URI="https://common-lisp.net/project/ecl/static/files/release/${MY_P}.tgz" + +LICENSE="BSD-2 LGPL-2.1+" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~ppc ~sparc ~x86" +IUSE="cxx debug emacs gengc precisegc cpu_flags_x86_sse +threads +unicode +libatomic X" + +CDEPEND="dev-libs/gmp:0 + virtual/libffi + libatomic? ( dev-libs/libatomic_ops ) + >=dev-libs/boehm-gc-7.1[threads?] + >=dev-lisp/asdf-2.33-r3:=" +DEPEND="${CDEPEND} + app-text/texi2html + emacs? ( >=app-editors/emacs-23.1:* >=app-eselect/eselect-emacs-1.12 )" +RDEPEND="${CDEPEND}" + +S="${WORKDIR}"/${MY_P} + +PATCHES=( + "${FILESDIR}/${PN}-16.1.3-headers-gentoo.patch" + "${FILESDIR}/${PN}-16.1.3-build.patch" +) + +pkg_setup() { + if use gengc || use precisegc ; then + ewarn "You have enabled the generational garbage collector or" + ewarn "the precise collection routines. These features are not very stable" + ewarn "at the moment and may cause crashes." + ewarn "Don't enable them unless you know what you're doing." + fi +} + +src_prepare() { + default + cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die +} + +src_configure() { + econf \ + --with-system-gmp \ + --enable-boehm=system \ + --enable-longdouble=yes \ + --with-dffi \ + $(use_with cxx) \ + $(use_enable gengc) \ + $(use_enable precisegc) \ + $(use_with debug debug-cflags) \ + $(use_enable libatomic libatomic system) \ + $(use_with cpu_flags_x86_sse sse) \ + $(use_enable threads) \ + $(use_with threads __thread) \ + $(use_enable unicode) \ + $(use_with unicode unicode-names) \ + $(use_with X x) +} + +src_compile() { + if use emacs; then + local ETAGS=$(eselect --brief etags list | sed -ne '/emacs/{p;q}') + [[ -n ${ETAGS} ]] || die "No etags implementation found" + pushd build > /dev/null || die + emake ETAGS=${ETAGS} TAGS + popd > /dev/null + else + touch build/TAGS + fi + + #parallel make fails + emake -j1 +} + +src_install() { + emake DESTDIR="${D}" install + + dodoc README.md CHANGELOG + dodoc "${FILESDIR}"/README.Gentoo + pushd build/doc + newman ecl.man ecl.1 + newman ecl-config.man ecl-config.1 + popd +} diff --git a/dev-lisp/ecls/files/README.Gentoo b/dev-lisp/ecls/files/README.Gentoo new file mode 100644 index 000000000000..9bb82f220097 --- /dev/null +++ b/dev-lisp/ecls/files/README.Gentoo @@ -0,0 +1,15 @@ +-*- outline -*- + +Gentoo GNU/Linux specific notes for ECL +--------------------------------------- + +This is the README.Gentoo file from /usr/share/doc/@PF@/ directory. + + * The Gentoo port includes a patch to ECL's installed header file (ech.h) so + that TRUE and FALSE are not redefined if they're already included from + elsewhere. This makes it easier to use ECL with other software which defines + those C preprocesser symbols (eg. glib-2.0). + +If you encounter any problems or have suggestions, use http://bugs.gentoo.org. +Please don't bother the upstream authors unless you are absolutely certain it is +not Gentoo-related. diff --git a/dev-lisp/ecls/files/ecls-16.1.3-build.patch b/dev-lisp/ecls/files/ecls-16.1.3-build.patch new file mode 100644 index 000000000000..ff7d6cd74d8b --- /dev/null +++ b/dev-lisp/ecls/files/ecls-16.1.3-build.patch @@ -0,0 +1,10 @@ +diff -r -U2 ecl-16.1.3.orig/src/c/printer/write_sse.d ecl-16.1.3/src/c/printer/write_sse.d +--- ecl-16.1.3.orig/src/c/printer/write_sse.d 2016-12-19 17:25:00.000000000 +0700 ++++ ecl-16.1.3/src/c/printer/write_sse.d 2016-12-19 19:20:01.863563607 +0700 +@@ -13,4 +13,6 @@ + */ + ++#include <ecl/config.h> ++ + #ifdef ECL_SSE2 + #include <ecl/ecl.h> diff --git a/dev-lisp/ecls/files/ecls-16.1.3-headers-gentoo.patch b/dev-lisp/ecls/files/ecls-16.1.3-headers-gentoo.patch new file mode 100644 index 000000000000..10802aa48803 --- /dev/null +++ b/dev-lisp/ecls/files/ecls-16.1.3-headers-gentoo.patch @@ -0,0 +1,15 @@ +diff -r -U2 ecl-16.1.3.orig/src/h/object.h ecl-16.1.3/src/h/object.h +--- ecl-16.1.3.orig/src/h/object.h 2016-12-19 17:25:00.000000000 +0700 ++++ ecl-16.1.3/src/h/object.h 2016-12-19 19:22:21.147557750 +0700 +@@ -26,6 +26,11 @@ + */ + ++#ifndef TRUE + #define TRUE 1 /* boolean true value */ ++#endif ++ ++#ifndef FALSE + #define FALSE 0 /* boolean false value */ ++#endif + + #if !defined(__cplusplus) && !defined(bool) diff --git a/dev-lisp/ecls/metadata.xml b/dev-lisp/ecls/metadata.xml new file mode 100644 index 000000000000..2c25c38bd53a --- /dev/null +++ b/dev-lisp/ecls/metadata.xml @@ -0,0 +1,23 @@ +<?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> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-lisp/flexi-streams/Manifest b/dev-lisp/flexi-streams/Manifest new file mode 100644 index 000000000000..0c149de3b037 --- /dev/null +++ b/dev-lisp/flexi-streams/Manifest @@ -0,0 +1,2 @@ +DIST flexi-streams-1.0.16.tar.gz 135698 BLAKE2B 9d6d5b064f10d27ce60d5a8a6792b7c36e63d393f64c98148bfd9addd36483e1e4d9e2b699c0ae151c55d88e01bd86fea3197e082b001face2c44206229c3e21 SHA512 66b7c5231616c7a6095a52d6c679717795c9308e33487536a5e1b7f0d25f26aacd2579a76c351f8e16a967a0611456cbc97b3824f4d9cf4875b8e48b0c4f7c78 +DIST flexi-streams-1.0.17.tar.gz 135883 BLAKE2B 96670bffc8b53196d2138bff6bdcaaae74d3a9318bb637cb52914de0905be86d3d5ce40ed3f5f87deec75cbad609d339fc0656f8542ee05edae5c9c342430a90 SHA512 58a19214f74e00948dd5c15453cb68a65ad600a78fd7b637018914446a3953f68efa5e229b3d27e93464d8f273e82aa71d0fafe9b2ace77e40d23c5aea756d49 diff --git a/dev-lisp/flexi-streams/flexi-streams-1.0.16.ebuild b/dev-lisp/flexi-streams/flexi-streams-1.0.16.ebuild new file mode 100644 index 000000000000..f9d5b59764d1 --- /dev/null +++ b/dev-lisp/flexi-streams/flexi-streams-1.0.16.ebuild @@ -0,0 +1,25 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit common-lisp-3 + +DESCRIPTION="Flexible bivalent streams for Common Lisp" +HOMEPAGE="http://weitz.de/flexi-streams/ + http://www.cliki.net/flexi-streams/" +SRC_URI="https://github.com/edicl/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="amd64 ~ppc ~sparc x86" +IUSE="" + +RDEPEND="!dev-lisp/cl-${PN} + >=dev-lisp/trivial-gray-streams-20060925" + +src_install() { + common-lisp-install-sources *.lisp + common-lisp-install-asdf + dodoc doc/index.html +} diff --git a/dev-lisp/flexi-streams/flexi-streams-1.0.17.ebuild b/dev-lisp/flexi-streams/flexi-streams-1.0.17.ebuild new file mode 100644 index 000000000000..672410b9b419 --- /dev/null +++ b/dev-lisp/flexi-streams/flexi-streams-1.0.17.ebuild @@ -0,0 +1,25 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit common-lisp-3 + +DESCRIPTION="Flexible bivalent streams for Common Lisp" +HOMEPAGE="http://weitz.de/flexi-streams/ + http://www.cliki.net/flexi-streams/" +SRC_URI="https://github.com/edicl/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~sparc ~x86" +IUSE="" + +RDEPEND="!dev-lisp/cl-${PN} + >=dev-lisp/trivial-gray-streams-20060925" + +src_install() { + common-lisp-install-sources *.lisp + common-lisp-install-asdf + dodoc docs/index.html +} diff --git a/dev-lisp/flexi-streams/metadata.xml b/dev-lisp/flexi-streams/metadata.xml new file mode 100644 index 000000000000..bc625fc0f713 --- /dev/null +++ b/dev-lisp/flexi-streams/metadata.xml @@ -0,0 +1,28 @@ +<?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> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-lisp/gcl/Manifest b/dev-lisp/gcl/Manifest new file mode 100644 index 000000000000..9694d801852c --- /dev/null +++ b/dev-lisp/gcl/Manifest @@ -0,0 +1,4 @@ +DIST gcl-2.6.10-fedora.tar.bz2 695718 BLAKE2B 151cac372f74a971ffb31191a3614d0f7bafca141258af9e1955185f8ed119cbcd3797f2d9bbe5eb5f82e76af4fd0d3e0cf155cd35f305a2c028e40b340b78cf SHA512 3e0ffaec859783443a8941a29302c7a17c9538ef2177d449ad34e24292c174de7bb8760a6d327e08f012773032f0d0a5230b79c7e4b4f5bad8354bf10a28af4c +DIST gcl-2.6.10.tar.gz 5490689 BLAKE2B 46af0cf8a810a82fe2bc2bd46ca1cbe17b74c71eb4af6a06032040900dcad4dd4338883cd9225f0945ae425eba788ac84db9a0ed454779edd86c74a1bb48a947 SHA512 bbaacce712f15130550bcdf7e53edf4df9ab955e84ec701087034115df1c1e657d956853d5db85d7e88709981f9b7fd4c9df7acf6c8588a8ccf5f05e4e666aed +DIST gcl-2.6.12-fedora.tar.bz2 680471 BLAKE2B 0ad96ce0a09bb73ee77456373eb7e50b2325a4f2e042c21120a1c33b2dec2aa10f5485bb1b02e8eb8e77aaaea6e141189d676217f9d139615911d8a77ea5818a SHA512 7640f8370754c889e2db9d047c4476195f949f4d97eafc7ef81761c1a548e24125d6d93381227b55f1840c3d127770995e88bf66f83c6952e121f5fa004e7f1a +DIST gcl-2.6.12.tar.gz 7031837 BLAKE2B afd3f81dd8a712d92883a96399a2e0621b0d38a349904707846bd694892510012fde27f94ec36664c249659a480e7f92c412b3790ecb74247a91ba0cb44aa420 SHA512 e82b5bdded6f846de4ea35a83bc8294043ba6d4fe03ff421f8753e78add1e5e87124782f672cd38ad89bbec1ca7c5ff69fe2621be1552b209516b58b6c97fd20 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..f81aa30e4b62 --- /dev/null +++ b/dev-lisp/gcl/gcl-2.6.10.ebuild @@ -0,0 +1,153 @@ +# Copyright 1999-2019 Gentoo Authors +# 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? ( >=app-editors/emacs-23.1:* ) + readline? ( sys-libs/readline:= ) + athena? ( x11-libs/libXaw ) + >=dev-libs/gmp-4.1:= + tk? ( dev-lang/tk:= ) + X? ( x11-libs/libXt x11-libs/libXext x11-libs/libXmu x11-libs/libXaw ) + virtual/latex-base" +DEPEND="${RDEPEND} + virtual/texi2dvi + >=app-text/texi2html-1.64 + >=sys-devel/autoconf-2.52" + +S="${WORKDIR}"/${PN} + +src_prepare() { + mv "${WORKDIR}"/fedora/info/* info/ + cp -p /usr/share/texmf-dist/tex/texinfo/texinfo.tex info/ + find . -type f -perm /0111 | xargs chmod a-x + chmod a+x add-defs add-defs1 config.guess config.sub configure install.sh + chmod a+x bin/info bin/info1 gcl-tk/gcltksrv.in gcl-tk/ngcltksrv mp/gcclab + chmod a+x o/egrep-def utils/replace xbin/* + + # fedora patches + epatch "${WORKDIR}"/fedora/fd-leak.patch + epatch "${WORKDIR}"/fedora/latex.patch + epatch "${WORKDIR}"/fedora/texinfo.patch + epatch "${WORKDIR}"/fedora/elisp.patch + epatch "${WORKDIR}"/fedora/rename.patch + epatch "${WORKDIR}"/fedora/getcwd.patch + epatch "${WORKDIR}"/fedora/infrastructure.patch + epatch "${WORKDIR}"/fedora/extension.patch + epatch "${WORKDIR}"/fedora/unrandomize.patch + epatch "${WORKDIR}"/fedora/asm-signal-h.patch + epatch "${WORKDIR}"/fedora/plt.patch + epatch "${WORKDIR}"/fedora/ellipsis.patch + epatch "${WORKDIR}"/fedora/man.patch + epatch "${WORKDIR}"/fedora/reloc-type.patch + epatch "${WORKDIR}"/fedora/largefile.patch + + epatch "${FILESDIR}"/${PN}-tcl-8.6.patch + epatch "${FILESDIR}"/${PN}-gmp-6.patch + epatch "${FILESDIR}"/${PN}-readline-6.3.patch + + sed -e 's|"-fomit-frame-pointer"|""|' -i configure + sed -e 's|@EXT@||g' debian/in.gcl.1 > gcl.1 +} + +src_configure() { + strip-flags + filter-flags -fstack-protector -fstack-protector-all + + local tcl="" + if use tk; then + tcl="--enable-tclconfig=/usr/lib --enable-tkconfig=/usr/lib" + fi + + econf --enable-dynsysgmp \ + --disable-xdr \ + --enable-emacsdir=/usr/share/emacs/site-lisp/gcl \ + --enable-infodir=/usr/share/info \ + $(use_enable readline) \ + $(use_enable ansi) \ + $(use_enable athena xgcl) \ + $(use_with X x) \ + ${tcl} +} + +src_compile() { + emake -j1 + VARTEXFONTS="${T}"/fonts emake -C info gcl.info + if use athena; then + pushd xgcl-2 > /dev/null + pdflatex dwdoc.tex + popd > /dev/null + fi +} + +src_test() { + local make_ansi_tests_clean="rm -f test.out *.fasl *.o *.so *~ *.fn *.x86f *.fasl *.ufsl" + if use ansi; then + cd ansi-tests + + ( make clean && make test-unixport ) \ + || die "make ansi-tests failed!" + + cat "${FILESDIR}/bootstrap-gcl" \ + | ../unixport/saved_ansi_gcl + + cat "${FILESDIR}/bootstrap-gcl" \ + |sed s/bootstrapped_ansi_gcl/bootstrapped_r_ansi_gcl/g \ + | ./bootstrapped_ansi_gcl + + ( ${make_ansi_tests_clean} && \ + echo "(load \"gclload.lsp\")" \ + | ./bootstrapped_r_ansi_gcl ) \ + || die "Phase 2, bootstraped compiler failed in tests" + fi +} + +src_install() { + emake DESTDIR="${D}" install + mv "${D}"usr/share/doc/*.dvi . + rm -rf "${D}"usr/share/doc + rm -rf "${D}"usr/share/emacs + rm -rf "${D}"usr/lib/gcl-*/info + + rm doc/makefile elisp/add-defaults.el + dodoc readme* RELEASE* ChangeLog* doc/* + doman gcl.1 + doinfo info/*.info* + dohtml -r info/gcl-si info/gcl-tk + + if use emacs; then + elisp-site-file-install "${FILESDIR}"/64${PN}-gentoo.el + elisp-install ${PN} elisp/*.el + fi + + insinto /usr/share/doc/${PF} + doins *.dvi + if use athena; then + pushd xgcl-2 > /dev/null + insinto /usr/share/doc/${PF} + doins *.pdf + popd > /dev/null + fi +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/dev-lisp/gcl/gcl-2.6.12.ebuild b/dev-lisp/gcl/gcl-2.6.12.ebuild new file mode 100644 index 000000000000..a0d0b117f64e --- /dev/null +++ b/dev-lisp/gcl/gcl-2.6.12.ebuild @@ -0,0 +1,149 @@ +# Copyright 1999-2019 Gentoo Authors +# 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? ( >=app-editors/emacs-23.1:* ) + 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 + + epatch_user + + sed -e 's|"-fomit-frame-pointer"|""|' -i configure +} + +src_configure() { + strip-flags + filter-flags -fstack-protector -fstack-protector-all + append-cflags $(test-flags-CC -fgnu89-inline) + + local tcl="" + if use tk; then + tcl="--enable-tclconfig=/usr/lib --enable-tkconfig=/usr/lib" + fi + + econf --enable-dynsysgmp \ + --disable-xdr \ + --enable-emacsdir=/usr/share/emacs/site-lisp/gcl \ + --enable-infodir=/usr/share/info \ + $(use_enable readline) \ + $(use_enable ansi) \ + $(use_enable athena xgcl) \ + $(use_with X x) \ + ${tcl} +} + +src_compile() { + emake -j1 + VARTEXFONTS="${T}"/fonts emake -C info gcl.info + if use athena; then + pushd xgcl-2 > /dev/null + pdflatex dwdoc.tex + popd > /dev/null + fi +} + +src_test() { + local make_ansi_tests_clean="rm -f test.out *.fasl *.o *.so *~ *.fn *.x86f *.fasl *.ufsl" + if use ansi; then + cd ansi-tests + + ( make clean && make test-unixport ) \ + || die "make ansi-tests failed!" + + cat "${FILESDIR}/bootstrap-gcl" \ + | ../unixport/saved_ansi_gcl + + cat "${FILESDIR}/bootstrap-gcl" \ + |sed s/bootstrapped_ansi_gcl/bootstrapped_r_ansi_gcl/g \ + | ./bootstrapped_ansi_gcl + + ( ${make_ansi_tests_clean} && \ + echo "(load \"gclload.lsp\")" \ + | ./bootstrapped_r_ansi_gcl ) \ + || die "Phase 2, bootstraped compiler failed in tests" + fi +} + +src_install() { + emake DESTDIR="${D}" install + rm -rf "${D}"usr/share/doc + rm -rf "${D}"usr/share/emacs + + rm elisp/add-defaults.el + dodoc readme* RELEASE* ChangeLog* doc/* + doman man/man1/gcl.1 + doinfo info/*.info* + dohtml -r info/gcl-si info/gcl-tk + + if use emacs; then + elisp-site-file-install "${FILESDIR}"/64${PN}-gentoo.el + elisp-install ${PN} elisp/*.el + fi + + insinto /usr/share/doc/${PF} + doins info/*.pdf + if use athena; then + pushd xgcl-2 > /dev/null + insinto /usr/share/doc/${PF} + doins *.pdf + popd > /dev/null + fi +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/dev-lisp/gcl/metadata.xml b/dev-lisp/gcl/metadata.xml new file mode 100644 index 000000000000..b59b12a42b40 --- /dev/null +++ b/dev-lisp/gcl/metadata.xml @@ -0,0 +1,18 @@ +<?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> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-lisp/hyperspec/Manifest b/dev-lisp/hyperspec/Manifest new file mode 100644 index 000000000000..bcc13f2d0e01 --- /dev/null +++ b/dev-lisp/hyperspec/Manifest @@ -0,0 +1 @@ +DIST HyperSpec-7-0.tar.gz 2032830 BLAKE2B ec72b57fdcf669fe400dc2729191cc7c387172035d0663816fcc18450543052d3a958bd9042ef67bc70a1ccb07e74b189d32e1c790cdd1b721e8d74a6a88412d SHA512 1b9058fe1ae2e283f4a68211dc659021e04bd10373d7c2392f4fa496543e2454f96c7eb671bcb1e72c906456792f8a265a5e34bac24d01e2c0e7fb1ce359c370 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..845fb390fddb --- /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" +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..136dc046ea75 --- /dev/null +++ b/dev-lisp/hyperspec/metadata.xml @@ -0,0 +1,9 @@ +<?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> + <origin>gentoo-staging</origin> +</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/roswell/Manifest b/dev-lisp/roswell/Manifest new file mode 100644 index 000000000000..eab908fe853e --- /dev/null +++ b/dev-lisp/roswell/Manifest @@ -0,0 +1,4 @@ +DIST roswell-19.08.10.101.tar.gz 163259 BLAKE2B 80080a7d2665fd674281ae8af7ac735e8ebfa142cb2beac93e9536ab0251d654ce6f18e329b06bb1e8bb3a233ab15b42c35e544b4d2b9c87229d9290403cec31 SHA512 6a7dde53ba5f0793e3f5dac780265e1a88d35a0d4a2388fec6ecafde0904a36db222a3cfe867ae5bd90f38f08a5da09941182e72f81184bfd7f084d927e63ce3 +DIST roswell-19.09.12.102.tar.gz 164475 BLAKE2B 432a9aae8a2f2caa4b7c996829daff1e6a8807cccf936bf7d9aefc69e8842b73b355aede1213ed8ad3e2f3ed093fbb33f0d4f48c991ad4ae5dc3f919d5ea7c38 SHA512 04f6db828c81b7e6310c612e4a3fcd0d0abe6e9dbac794f78f9830902c8b8ad02bda7ff313edfebfd31fa299b2553f258dc82307ccdaf025b9eef2a13e93de54 +DIST roswell-19.12.13.103.tar.gz 165717 BLAKE2B 9d38deab38154146ebba80ce4efdcc99c2d4ced312cad5a04ba44bc1bf5f10cb3c83bbbccdbdb842f0ef92e7d20b7073973d4f7f3438e732987cfcff8ec4386a SHA512 3f7180843e81108ff026df6ead5541325dc622027483c2a33069020bdc90916c263a73ec40ead5ab0af2566967aa2a4cb8db2ece962465e7b0a41e4a6809335a +DIST roswell-20.01.14.104.tar.gz 164384 BLAKE2B 905bb54081da137c588b911f1aa6ef4957e9d860c9d42b72bcda37b084d4049c4234a757514170e2a857de40c4970d70e53e98d72bbeb037e5c35930fbd9286b SHA512 8eac3ada8afb9f2ee82004e46fcee72e45cfd2ed4e86dea8892ff6fa0bb5339bca7e3d1d4a7e2930d6848ef1bf1ef4b63aa576382bee1e66e98cf50441c81c7e diff --git a/dev-lisp/roswell/metadata.xml b/dev-lisp/roswell/metadata.xml new file mode 100644 index 000000000000..04e8580aeb43 --- /dev/null +++ b/dev-lisp/roswell/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="person"> + <email>sheepduke@gmail.com</email> + <name>YUE Daian</name> + </maintainer> + <maintainer type="project"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <longdescription> + Roswell is the de facto full-stack environment for Common Lisp + development. It serves as a Lisp implementation installer, manager, + launcher etc. + </longdescription> + <upstream> + <remote-id type="github">roswell/roswell</remote-id> + </upstream> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-lisp/roswell/roswell-19.08.10.101.ebuild b/dev-lisp/roswell/roswell-19.08.10.101.ebuild new file mode 100644 index 000000000000..11cdfe7deea0 --- /dev/null +++ b/dev-lisp/roswell/roswell-19.08.10.101.ebuild @@ -0,0 +1,22 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools + +DESCRIPTION="A lisp installer and launcher for major environment" +HOMEPAGE="https://github.com/roswell/roswell" +SRC_URI="https://github.com/roswell/roswell/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +SLOT="0" +LICENSE="MIT" + +KEYWORDS="~amd64 ~x86" + +RDEPEND="!net-libs/librouteros" + +src_prepare() { + default + eautoreconf +} diff --git a/dev-lisp/roswell/roswell-19.09.12.102.ebuild b/dev-lisp/roswell/roswell-19.09.12.102.ebuild new file mode 100644 index 000000000000..11cdfe7deea0 --- /dev/null +++ b/dev-lisp/roswell/roswell-19.09.12.102.ebuild @@ -0,0 +1,22 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools + +DESCRIPTION="A lisp installer and launcher for major environment" +HOMEPAGE="https://github.com/roswell/roswell" +SRC_URI="https://github.com/roswell/roswell/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +SLOT="0" +LICENSE="MIT" + +KEYWORDS="~amd64 ~x86" + +RDEPEND="!net-libs/librouteros" + +src_prepare() { + default + eautoreconf +} diff --git a/dev-lisp/roswell/roswell-19.12.13.103.ebuild b/dev-lisp/roswell/roswell-19.12.13.103.ebuild new file mode 100644 index 000000000000..5e5d2416212b --- /dev/null +++ b/dev-lisp/roswell/roswell-19.12.13.103.ebuild @@ -0,0 +1,23 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools + +DESCRIPTION="A lisp installer and launcher for major environment" +HOMEPAGE="https://github.com/roswell/roswell" +SRC_URI="https://github.com/roswell/roswell/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +SLOT="0" +LICENSE="MIT" + +KEYWORDS="~amd64 ~x86" + +# File collision, #691754 +RDEPEND="!net-libs/librouteros" + +src_prepare() { + default + eautoreconf +} diff --git a/dev-lisp/roswell/roswell-20.01.14.104.ebuild b/dev-lisp/roswell/roswell-20.01.14.104.ebuild new file mode 100644 index 000000000000..26c7a2e2605b --- /dev/null +++ b/dev-lisp/roswell/roswell-20.01.14.104.ebuild @@ -0,0 +1,23 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools + +DESCRIPTION="A lisp installer and launcher for major environment" +HOMEPAGE="https://github.com/roswell/roswell" +SRC_URI="https://github.com/roswell/roswell/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +SLOT="0" +LICENSE="MIT" + +KEYWORDS="~amd64 ~x86" + +# File collision with librouteros (#691754) +RDEPEND="!net-libs/librouteros" + +src_prepare() { + default + eautoreconf +} diff --git a/dev-lisp/sbcl/Manifest b/dev-lisp/sbcl/Manifest new file mode 100644 index 000000000000..c4fc9dbe99bb --- /dev/null +++ b/dev-lisp/sbcl/Manifest @@ -0,0 +1,34 @@ +DIST sbcl-1.0.23-sparc-solaris-binary.tar.bz2 7907803 BLAKE2B 4be6831c196cfef505b411fa9ae0b9586f93309ce97fcd2b964abfb4175f00f7437da7859334973f2441592fc1a13cc5557044737659f5ef13998b593d623cda SHA512 d641d7859f0d60ce7dd684a0f21e62282a5a658ed6bb4d67d6b141b3ce22d9e27261efe7e5d0f752c30e467cf90d7c8a03ad2a04b3c60042f0ef0a4808a9c74a +DIST sbcl-1.0.28-alpha-linux-binary.tar.bz2 7573824 BLAKE2B ab8e139adb4fbc0ac7b34457c3361b044d04d8d9dedba2008cb19220915900e2d1bf540b617c738145923d74fa28ab7d979fd0d1bf4b9d17c445dfb080731263 SHA512 85ceb4d3bf971777f5444a63cbabd88ccfaf16ed3b3c86cc5ea6cb3fd3189c4cd5a5ebbf785c97366afb7026604ffc34a1129936291deede5993056e158125ab +DIST sbcl-1.0.28-sparc-linux-binary.tar.bz2 8032042 BLAKE2B ca4213ef00447d66406d1c752a1653fd628deba0e112f55a5625dad61da30c0be7c60fe4e84e8dcc9d9946db553ad544dc39b28d62124d8e3d6197943efc944a SHA512 cea1ba06f85169fca9fe3026813c6e7e8e8209b874e048b7bd63cb3a1c5bd7c829e8dbb2c486977e190a0390d28e4845938a9e84378f4f2f16f72bf0b6f45c80 +DIST sbcl-1.0.47-powerpc-darwin-binary.tar.bz2 8217590 BLAKE2B 68da614df7d27ecf08a21603d4f172344c86e650176d238fe73d7756a626b694e2165b9157e53732730861d085902e5cc893b967073168fe3845cd2621668b87 SHA512 8118de56e448bce7a72b832e661eb4e2687eed675f88f766f7043c843a432e35121d9e6f9da8d22ac690c54bda0d55ecb07728748ce2cdd57320f49b4b812b86 +DIST sbcl-1.1.6-x86-darwin-binary.tar.bz2 9091955 BLAKE2B b532828cc729ffef17d0bedb827a1482edb190f5740d14dbff347f8cfe61f1960c5011162dc620ebb8d99fbd8f8bbf070923a59b8639ea9985219b58d334cd27 SHA512 5b9d58ba1a7bcf3aa5011ac5ba1c8dba65e44b2c3f8a31b15db54de6b34ea0f7482c45f1cc4e1323e154ce79fbba030112df3795cb323bca46bac50f15d2a138 +DIST sbcl-1.2.11-x86-64-darwin-binary.tar.bz2 10038928 BLAKE2B b434f65e9e42341645ac91c8f35ffeb6d2d7f043544ca9af7c519a46df15cee6d2fe4d0a56c10643c6f263e8deb75bcfb00cc399d1f32c10d53c20a9842c45db SHA512 c271796f854fe884e0d8aa6504bbe2e6c078de1555fc9a823463640cfd8c793dbddcb3f32932788d84a41e2b8a085b95c97c13a15c43fc909dcaad18ce25f215 +DIST sbcl-1.2.7-powerpc-linux-binary.tar.bz2 9884585 BLAKE2B 1870da882fc5e466eaf5e96ed46aed600660bdfe836eabe145cf9ea4713e537a7d45dd76538d899801d0e3ea944c4ccfff1c9688fc695890bb4cac69135ef046 SHA512 7b9fef12d3d6397adec6a0c26d1431a18b8d91b5bf009034eb2501de9fd60dc04dd2e3cd2d9feb9204d4631360aea88ba07a9ad75dad0767b5dcc5e62e84e790 +DIST sbcl-1.2.7-x86-64-solaris-binary.tar.bz2 10438955 BLAKE2B ca9cd3a55873c648940793ae9fb92dde5e4569b7392932771b31dc71da380267556b3ceb8b099f62576b76d77395123735232c43c0ed1f934d1e004a6194d0fa SHA512 9566cebf8fc29ead1f919309e3f98aeb618e97b34c80f53d1f739f1a3f4ef4cbaebd1c67f0b32172a0cdf14dc405eb75d0e916dedf3b8a758cdec2368d25f5c1 +DIST sbcl-1.2.7-x86-linux-binary.tar.bz2 10516485 BLAKE2B 4036684f398c0766d55a6089fb67ae23520fc949b39525b2ac005f2665cdee8c0901a638e5dfc8e78e5f80963331a5fe2ddd4b0108ddaea063fabfd1d5829f72 SHA512 ca09beeafeb40f21eb1a377f04a69d57feb5549fa63aadf2e39aa65f3875418bdab755e22b567b3f2c514fb94534b739a57606288912ffc5cddf370a400e9e5c +DIST sbcl-1.2.7-x86-solaris-binary.tar.bz2 10351529 BLAKE2B 9b7324c8177856c6024220ce71070a1a51b93fa9352fe692c3fd5afa9b6cdcbb361c54e354ab1cc1153e6bf15cb0c5fc267c3da03addd5d35fbec840f72a7c06 SHA512 b30d40f0095bb43719ba2e1a619f53fe5f0bccaa08a35481bc5feeb0dd5b540018a9ec9f61799de89991a85750577922cb4e56db4d7dab8f07e18bbc643bdad1 +DIST sbcl-1.3.11-source.tar.bz2 5790557 BLAKE2B d6b493d880ab2481f18381475165a3eed585fa46e626eb1e762cced29a6a7315be638df6f44ffdc694d8fb55509f912267a7dbe8892b6672eb56e839f55908ff SHA512 07cce0b33f1d41bc208827d228ae356b56165bb55fab72c48973a15a63e2e680aafc16db67d36cc4952f71101faaacafd9660276cd67673314f1699d6a91af82 +DIST sbcl-1.3.11-x86-64-linux-binary.tar.bz2 9248214 BLAKE2B f1f6ebbec168a47d7405c15c63a70f10afad2d271d17dfa461f94bd8b1a1c21506a3a9c1d7ffe2501cc70419406e0d73b53a34ff9ff003e4791170101b7b1293 SHA512 ffb443f9e3ede2f9dbdc1bf28554bd59ef1fd5ad855465ee10f9835221fde20211188e881be854b4760870b122dfc6c5ad5c8cad1bea613ffb3b6a6f67a36056 +DIST sbcl-1.3.12-armhf-linux-binary.tar.bz2 9193847 BLAKE2B 27106c0144ee99f534cd0a59cfb331ef8f39dbefdc76e294a8671523b1c05f42353d31b8e74600dd01f85fb5156d39216a877d77aba57a061427ea1dc28a492e SHA512 5bdb4e2b584933e9ee9aaa2ba68328f219f072af802782ee5dedf83baa5c679cd5a1ccbf3458678810ccb8679ffd392d4fba108e86d537e10554c1860bfd4de5 +DIST sbcl-1.3.9-armhf-linux-binary.tar.bz2 9161130 BLAKE2B 0dbfe39803d6e3955124fa1a619da7b6d4ec9e7d6eb78e868508c61bf478a980cb15ba427ef0b38d0f051ce38b881020534c0d37bfbcd81a8d763654283669ec SHA512 309e2ac7ef9ac95bf751432cf243af0de022c5b21054df2bf4e99da4ff087218af72b0ab3be69214eba3df1b6bbe707cc28840508e960c5d2ed2af0e86de3fdd +DIST sbcl-1.4.11-armhf-linux-binary.tar.bz2 9767589 BLAKE2B 2949338bc19973e0ca38f435caaa4c991a6c86d70dc092a4f1b6ec3eefa47af76f2a0c3fd8a4f8004127f4b8b3666a5cf4260b6ab56802308880067e4eaf8568 SHA512 297edddc36e9b9de080f9e25faa323e23877af234104b4b7e0fe2b74f0dd117d9cf0caa87b79718a8b071bcb5e97c8118f1d11af0e4aba2a961beb40c4dc99cb +DIST sbcl-1.4.2-arm64-linux-binary.tar.bz2 10578821 BLAKE2B 1cd25c548be0f1b7ec01edc3bee7fe6c2aaf07b7bd1fc55d408dee7ac95e8f3761a194bf9e8efb734179a7eff04cdae2fe5ba4a9ba5ab06f7322ac1550d142cc SHA512 39bbd735b242aa0bbac05c6f4dbe28cb45e01684db7e5b4f1e51f995a9f9d5b484f63cc4243f472f72b3b1e6c4cd2268a7e812b15426eca5cf9a1fede10f44bb +DIST sbcl-1.4.3-x86-linux-binary.tar.bz2 10227185 BLAKE2B 6d77c4f4177cbdb72fb9bab0da5bd91e0aa8deafffd238818a2551332f0ab246715d9489b5c1156f3481aa7fb79d161a988404620fc09fe86ff927543a1ee678 SHA512 41cd63d61dd7c46370341dce39a362287a23b528bfebe8e5571614aeefdea03d318207d25562e995db9ccedb6c1f50ea4d66627721f0fd9486e99440126e6a38 +DIST sbcl-1.4.8-x86-64-linux-binary.tar.bz2 10353701 BLAKE2B 5b56f46fbdb87f015ed1fe103b6caaf43d2d424b45e2574e306b3d3cbc3c7bdfa48847a2e6d7d819e6bf4b59fa02ea01f9ce6b023802ae6f91fc7f56e5a260de SHA512 f3cb3c30dec1b7e6ac0c1b67de26192723871f8a8d543a41d7c4d04b0813fd7da1043433237b648a2c23f73169fe38f2ec3a3c2bd412eb4c9d36ed929c40f27d +DIST sbcl-1.4.9-source.tar.bz2 6051607 BLAKE2B 8abcaf73233ea1a23d47987b16554636dcf94acfbc7ab731f0730fdb4a8176593fb3ab52d9b25b3dd56753cd984f7e0eddb1585a142eb7ad1aa5e3e03d7b0ca9 SHA512 e0248f460f9737d47653dd520732062d2637813b550df356ecc90aa6d21fbdd74f03182d1e890c09c1da742f7d57b4fbd04a4e6dc36999aca51bb6c2952ac236 +DIST sbcl-1.5.6-source.tar.bz2 6370992 BLAKE2B f2b374c9870eda8b7f40e7c66dec8888167fcd17ead6c42cd07acd2f35684f150ab907a95eb2be8e84b741fad8d69bc7f2c10a8de8e568f8705baa0a91c951de SHA512 5adeb4c694d41c08c780d5f0ed2e0f4c830ea74fdb7b345813b1cd616a0b310c2394f4727b6f5a75b04bd0dda92ee774298bef7225253e7d325e8f83bc645320 +DIST sbcl-1.5.6-x86-64-linux-binary.tar.bz2 10131687 BLAKE2B f921b0c0b292f213eb1447b3e533f24ba15bb58c0be00bea3a0cb1dcadc91ed9a648b6452b535fdd189cdb3af7141e554c055748249084c36e7f523ea8f44b8c SHA512 4d270deb04b22cd22caec3086de4b9cb13e9529c33f2e0579baf2c0b00b98d07c16a22997849ea77650ff56a0b844fd5fa750929639481df2820badf12c2a112 +DIST sbcl-1.5.7-source.tar.bz2 6438048 BLAKE2B d7036d6ac6abdd433e112ae9bd59ad00447c45edd064cd863b609d21b99896c7a435b3a0cc82fe0d5ef842c0156d134e690c4363667f4c9b57b49cbfbc24a0e0 SHA512 8dde1b0d400f93fed085f6b6c33b057c3dec4dfa83afb7431384add6628cb2f910cba006b2579cea547685aeb79fade5ad576b0a42e4f7e1f6c0c3f26acf226e +DIST sbcl-1.5.8-source.tar.bz2 6409837 BLAKE2B cb503ee1db82f2e1a9c123b9b6b5052b23167c8a76039f12afee580be058a0b78a51eade541f7e2beab5566204af147c8cd1dab25ef0fff381cf298ba758aee5 SHA512 20966035e878a1f6aa9b0acf20eb88087d5cd604d65ae90f43bbfa3d2d40afa46864daabf45d8c6ecbbd429e876279c891d6e3d9344f2972f611a4f9b2eec8f4 +DIST sbcl-1.5.8-x86-64-linux-binary.tar.bz2 10145219 BLAKE2B aeccd48a5448e334d6cf3ca4e067ac23943256c2a729ff24b6b3c332c6c70c108b68a6903193a403176d4fbf4804c9f22add615e29fa09022f84b0190a429454 SHA512 d733929775be6fe5d46fd5b11c808eae89172a5a8694f1c2a7927cc364419529292d70f6902731f4c7822c85708555382de31b605440493bb281ccef552daf6c +DIST sbcl-2.0.0-source.tar.bz2 6457217 BLAKE2B ae09d4d80ca7100fb412be570126918612eb5a3f27a8c17ced4e0c555d105f3180999f2663ea86910dda9d812d4297cceb8d7c43d5084d20902839e1f23bc739 SHA512 e458e11af6703d8cff973cf5167866b93fe5f6e1b2df3cbf0c1beb014eef2d737d83fc9cde5745d476ef5397a2c9b4b4148d2b77ebbcec13e0f284b2e0900906 +DIST sbcl-2.0.0-x86-64-linux-binary.tar.bz2 10196560 BLAKE2B 161d53df96817a50606ffc6a5ad502a94a1aa622e0a45c17c4ff4148deafb2e1db560aacd33b1198eb6fd3bc462b320e01d4925097bec3954f9d6ce564a2b1f5 SHA512 23d3974656a33ae0cfce340e2fbdd60a4e595353e7cc6e75dbab0242d7baaa30d677d1163d4440e953cd7f859fc737b073055b68fbeb2e57e3542a0133d7648f +DIST sbcl-2.0.1-source.tar.bz2 6466983 BLAKE2B f040fb288f5b7adb8a7f56aae60a37e38034c2fed958b1361f473096769367b0a10a76a0e45380e6dcf3b4bd2c1038957448f70eede38b04c228a14e3afc1fc2 SHA512 1d92589033e123c21377f820dbc22e27f2610a372c5545799bec7c247795ba4b8b65102c7fe739f4a15a84579ec72f63fb9f4b197db5c6da1f8d59bd35966bea +DIST sbcl-2.0.1-x86-64-linux-binary.tar.bz2 10151722 BLAKE2B 445fcaa5a6f1c2a7a7d80dd28d1126c33437af2a59dadd25cbbe9ca4e12488a985e78aa12095fda8e38e21dceca77a0e1bca0949133b0ac2666d4367bf881f68 SHA512 1d24981b42c5d91f6037ad6fed782786bbc75edcb2f125a6d5b793448d00c211af515f56b6dd70a68bd33ea7174fd1d96ef9ab353c96905835b6299dcb170f47 +DIST sbcl-2.0.3-source.tar.bz2 6489521 BLAKE2B f610367e2fbc58e47b3c7a825cd03344e8dd288e2e2a202327c5caa652aa13f1d675c52a65626acf2d577402552ac620973278197c95d7bfaeea31c2e372a2c7 SHA512 c29c115fff0e118e5c05959dd8d73ae876458daeb5ddde67ce485b10e6d1583b1f8a9597b54b45606696ab1b1eea5392dcb09357c83fce31323f2a5a154f2dd1 +DIST sbcl-2.0.3-x86-64-linux-binary.tar.bz2 10180812 BLAKE2B feebf6e957acd8cbe3a5549f6b9e5832d8ee6cc40e7c319a24db0be93cacbc33f5dd5cc3d187be0dfdee6997e3a114267ee0a8cf9fc7defbe63941739a3e2d44 SHA512 7d7fc106aa9c17552d5a7343a2776ebdc24613516c44523c568a4b4045baa9a5356c37480594bc7a6fe8e012c570963915dd80b18c50e4e58f273455d35a8b4d +DIST sbcl-2.0.4-source.tar.bz2 6512479 BLAKE2B 95e42f8d77bb914cf0d45e59bb90c8229cbcf32352cebfc4b7fe44a00205751eddae7910b8453981bfe5ea16574ea3c539a7daecbe71d9c79fb93e65aac8b5df SHA512 855e25d3a25c558cfd4a97c6d6a0130910556ad4b1d4a7df924a34b50f1d9d3cc3d4373510353548c6ddf3000b55c70285ccbd888fab59f73d137c16539df816 +DIST sbcl-2.0.4-x86-64-linux-binary.tar.bz2 10189030 BLAKE2B 93a59750d6c7b89add194ffd7e165599a24d0f23aec8415c1cc5321ad059144c266fd9218f2923d86c4cc19cff1c62dde08ab8a68c7cab8487aa458dfda93f42 SHA512 68533e83a452ec56ee5520daef54c24cfbd4307d8aab231c726eec69562262f40213dd453879c6f82bf9f31d850561a5f3f99c1207a3197ccab8017c2208979d +DIST sbcl-2.0.5-source.tar.bz2 6531110 BLAKE2B c658365c7247abb81fed8ef05a4edf8319df502ca5abed1b2908c9ffac24260bb654a2ad3a17573581a68ea6e6523ce4491e0ca53f36685f251aa168145dcf1a SHA512 0c27e22dd76d157a74ef7e97dcd03030096dde0eb46901ea27acb60faa0ab34881d76a9c6708d963b0e6f62da6331b85b8d3de76fd1fc9163c159e631759f808 +DIST sbcl-2.0.5-x86-64-linux-binary.tar.bz2 10176341 BLAKE2B 602d1c3f09082f62bee04ab9f6d0906567aa9d74f364ea4278b725bf6fbe820f0b470fe2b326adb85c2867a8e96476f4e27cc3e6a18abe6483ab2704d8a1eddf SHA512 0bd278cbdb72f62bd441b061459d074080ff6aeef61137247f56b9c91a05185245539691d6a8a4b8efdcab523e4ab3275b6f924154246aac42cc3b49f48b8198 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-2.0.5.patch b/dev-lisp/sbcl/files/bsd-sockets-test-2.0.5.patch new file mode 100644 index 000000000000..3226e7539dc4 --- /dev/null +++ b/dev-lisp/sbcl/files/bsd-sockets-test-2.0.5.patch @@ -0,0 +1,385 @@ +diff -U3 -r sbcl-2.0.5.orig/contrib/sb-bsd-sockets/tests.lisp sbcl-2.0.5/contrib/sb-bsd-sockets/tests.lisp +--- sbcl-2.0.5.orig/contrib/sb-bsd-sockets/tests.lisp 2020-05-31 20:16:48.000000000 +0700 ++++ sbcl-2.0.5/contrib/sb-bsd-sockets/tests.lisp 2020-06-08 18:15:59.750860802 +0700 +@@ -18,16 +18,16 @@ + (equalp (make-inet-address "242.1.211.3") #(242 1 211 3)) + t) + +-(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 unparse-inet6-address +- (string= (sb-bsd-sockets::unparse-inet6-address +- (make-inet6-address "fe80::abcd:1234")) +- "fe80::abcd:1234") +- t) ++;(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 unparse-inet6-address ++; (string= (sb-bsd-sockets::unparse-inet6-address ++; (make-inet6-address "fe80::abcd:1234")) ++; "fe80::abcd:1234") ++; t) + + (deftest get-protocol-by-name/tcp + (integerp (get-protocol-by-name "tcp")) +@@ -40,15 +40,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) + + (eval-when (:compile-toplevel :execute) + (when (handler-case (make-instance 'inet-socket +@@ -108,19 +108,19 @@ + (:no-error nil)) + t) + +-(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) +- +-(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 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) ++ ++;(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) +@@ -129,54 +129,54 @@ + (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) +- +-(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) ++ ++;(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) +@@ -244,37 +244,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 + +@@ -390,59 +390,59 @@ + (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 +- (sem (sb-thread:make-semaphore))) +- (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 +- (sb-thread:signal-semaphore sem) +- (read-char stream)) +- (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))) +- (socket-close s) +- (sb-thread:wait-on-semaphore sem) +- (sleep 0.1) +- (sb-thread:interrupt-thread client +- (lambda () (throw 'stop :ok))) +- (unless (sb-ext:wait-for (null (sb-thread::thread-interruptions client)) :timeout 5) +- (setf result :timeout)) +- (write-char #\x stream) +- (close stream) +- (socket-close r) +- (sb-thread:join-thread client :timeout 5)))))) +- (server)) +- result) +- :ok) ++;#+(and ipv4-support sb-thread) ++;(deftest interrupt-io ++; (let (result ++; (sem (sb-thread:make-semaphore))) ++; (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 ++; (sb-thread:signal-semaphore sem) ++; (read-char stream)) ++; (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))) ++; (socket-close s) ++; (sb-thread:wait-on-semaphore sem) ++; (sleep 0.1) ++; (sb-thread:interrupt-thread client ++; (lambda () (throw 'stop :ok))) ++; (unless (sb-ext:wait-for (null (sb-thread::thread-interruptions client)) :timeout 5) ++; (setf result :timeout)) ++; (write-char #\x stream) ++; (close stream) ++; (socket-close r) ++; (sb-thread:join-thread client :timeout 5)))))) ++; (server)) ++; result) ++; :ok) + + (defmacro with-client-and-server (((socket-class &rest common-initargs) + (listen-socket-var &rest listen-address) +@@ -505,8 +505,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) ++) + + (defun poor-persons-random-address () + (let ((base (expt 36 8))) 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/concurrency-test-1.5.3.patch b/dev-lisp/sbcl/files/concurrency-test-1.5.3.patch new file mode 100644 index 000000000000..8c2e89fccfc8 --- /dev/null +++ b/dev-lisp/sbcl/files/concurrency-test-1.5.3.patch @@ -0,0 +1,17 @@ +diff -r -U2 sbcl-1.5.3.orig/contrib/sb-concurrency/tests/test-frlock.lisp sbcl-1.5.3/contrib/sb-concurrency/tests/test-frlock.lisp +--- sbcl-1.5.3.orig/contrib/sb-concurrency/tests/test-frlock.lisp 2019-05-27 22:03:04.000000000 +0200 ++++ sbcl-1.5.3/contrib/sb-concurrency/tests/test-frlock.lisp 2019-06-01 11:41:21.260384857 +0200 +@@ -26,5 +26,5 @@ + (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)) +@@ -89,5 +89,5 @@ + (deftest* (frlock.1) + (handler-case +- (sb-ext:with-timeout 20 ++ (sb-ext:with-timeout 240 + (test-frlocks #+win32 :outer-write-pause #+win32 t )) + (sb-ext:timeout (c) diff --git a/dev-lisp/sbcl/files/concurrency-test-2.0.1.patch b/dev-lisp/sbcl/files/concurrency-test-2.0.1.patch new file mode 100644 index 000000000000..e0a36a8b3a25 --- /dev/null +++ b/dev-lisp/sbcl/files/concurrency-test-2.0.1.patch @@ -0,0 +1,12 @@ +diff -r -U3 sbcl-2.0.1.orig/contrib/sb-concurrency/tests/test-frlock.lisp sbcl-2.0.1/contrib/sb-concurrency/tests/test-frlock.lisp +--- sbcl-2.0.1.orig/contrib/sb-concurrency/tests/test-frlock.lisp 2020-01-27 04:26:30.000000000 +0700 ++++ sbcl-2.0.1/contrib/sb-concurrency/tests/test-frlock.lisp 2020-01-30 21:53:57.750913923 +0700 +@@ -88,7 +88,7 @@ + #+sb-thread + (deftest* (frlock.1) + (handler-case +- (sb-ext:with-timeout 40 ++ (sb-ext:with-timeout 240 + (test-frlocks #+win32 :outer-write-pause #+win32 t )) + (sb-ext:timeout (c) + (error "~A" 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.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/files/verbose-build-2.0.3.patch b/dev-lisp/sbcl/files/verbose-build-2.0.3.patch new file mode 100644 index 000000000000..263436ab5e00 --- /dev/null +++ b/dev-lisp/sbcl/files/verbose-build-2.0.3.patch @@ -0,0 +1,29 @@ +diff -U3 -r sbcl-2.0.3.orig/make.sh sbcl-2.0.3/make.sh +--- sbcl-2.0.3.orig/make.sh 2020-03-29 03:58:29.000000000 +0700 ++++ sbcl-2.0.3/make.sh 2020-04-04 19:56:16.510279232 +0700 +@@ -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 "$@" --check-host-lisp || exit $? ++sh -x make-config.sh "$@" --check-host-lisp || 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 + + # contrib/Makefile shouldn't be counted in NCONTRIBS. + # "find contrib/* -name Makefile" would still find contrib/./Makefile. diff --git a/dev-lisp/sbcl/metadata.xml b/dev-lisp/sbcl/metadata.xml new file mode 100644 index 000000000000..9819bc9a2592 --- /dev/null +++ b/dev-lisp/sbcl/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>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> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-lisp/sbcl/sbcl-1.3.11.ebuild b/dev-lisp/sbcl/sbcl-1.3.11.ebuild new file mode 100644 index 000000000000..0859a02a7834 --- /dev/null +++ b/dev-lisp/sbcl/sbcl-1.3.11.ebuild @@ -0,0 +1,242 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +inherit multilib eutils flag-o-matic pax-utils toolchain-funcs + +#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.4.9.ebuild b/dev-lisp/sbcl/sbcl-1.4.9.ebuild new file mode 100644 index 000000000000..c642c0c994d9 --- /dev/null +++ b/dev-lisp/sbcl/sbcl-1.4.9.ebuild @@ -0,0 +1,246 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit multilib eutils flag-o-matic pax-utils toolchain-funcs + +#same order as http://www.sbcl.org/platform-table.html +BV_X86=1.4.3 +BV_AMD64=1.4.8 +BV_PPC=1.2.7 +BV_SPARC=1.0.28 +BV_ALPHA=1.0.28 +BV_ARM=1.3.12 +BV_ARM64=1.4.2 +BV_X86_MACOS=1.1.6 +BV_X64_MACOS=1.2.11 +BV_PPC_MACOS=1.0.47 +BV_X86_SOLARIS=1.2.7 +BV_X64_SOLARIS=1.2.7 +BV_SPARC_SOLARIS=1.0.23 + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp" +HOMEPAGE="http://sbcl.sourceforge.net/" +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2 + x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 ) + arm? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 ) + arm64? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM64}-arm64-linux-binary.tar.bz2 ) + x86-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_MACOS}-x86-darwin-binary.tar.bz2 ) + x64-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 ) + ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-binary.tar.bz2 ) + x86-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_SOLARIS}-x86-solaris-binary.tar.bz2 ) + x64-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 ) + sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-solaris-binary.tar.bz2 )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="amd64 ppc ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris" +IUSE="debug doc source +threads +unicode pax_kernel zlib" + +CDEPEND=">=dev-lisp/asdf-3.1:=" +DEPEND="${CDEPEND} + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + pax_kernel? ( sys-apps/elfix )" +RDEPEND="${CDEPEND} + !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )" + +# Disable warnings about executable stacks, as this won't be fixed soon by upstream +QA_EXECSTACK="usr/bin/sbcl" + +CONFIG="${S}/customize-target-features.lisp" +ENVD="${T}/50sbcl" + +# Prevent ASDF from using the system libraries +CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" +ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" + +usep() { + use ${1} && echo "true" || echo "false" +} + +sbcl_feature() { + echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}" +} + +sbcl_apply_features() { + sed 's/^X//' > "${CONFIG}" <<-'EOF' + (lambda (list) + X (flet ((enable (x) (pushnew x list)) + X (disable (x) (setf list (remove x list)))) + EOF + if use x86 || use amd64; then + sbcl_feature "$(usep threads)" ":sb-thread" + fi + sbcl_feature "true" ":sb-ldb" + sbcl_feature "false" ":sb-test" + sbcl_feature "$(usep unicode)" ":sb-unicode" + sbcl_feature "$(usep zlib)" ":sb-core-compression" + sbcl_feature "$(usep debug)" ":sb-xref-for-internals" + sed 's/^X//' >> "${CONFIG}" <<-'EOF' + X ) + X list) + EOF + cat "${CONFIG}" +} + +src_unpack() { + unpack ${A} + mv sbcl-*-* sbcl-binary || die + cd "${S}" +} + +src_prepare() { + # bug #468482 + eapply "${FILESDIR}"/concurrency-test-1.3.15.patch + # bugs #486552, #527666, #517004 + eapply "${FILESDIR}"/${PN}-1.4.0-bsd-sockets-test.patch + # bugs #560276, #561018 + eapply "${FILESDIR}"/sb-posix-test-1.2.15.patch + + eapply "${FILESDIR}"/${PN}-1.2.11-solaris.patch + eapply "${FILESDIR}"/${PN}-1.4.0-verbose-build.patch + + eapply_user + + # Make sure the *FLAGS variables are sane. + # sbcl needs symbols in resulting binaries, so building with the -s linker flag will fail. + strip-unsupported-flags + filter-flags -fomit-frame-pointer -Wl,-s + filter-ldflags -s + + # original bugs #526194, #620532 + # this broke no-pie default builds, c.f. bug #632670 + # Pass CFLAGS down by appending our value, to let users override + # the default values. + # Keep passing LDFLAGS down via the LINKFLAGS variable. + sed -e "s@\(CFLAGS += -g .*\)\$@\1 ${CFLAGS}@" \ + -e "s@LINKFLAGS += -g\$@LINKFLAGS += ${LDFLAGS}@" \ + -i src/runtime/GNUmakefile || die + + sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \ + -i make-config.sh || die + + # Use installed ASDF version + cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die + # Avoid installation of ASDF info page. See bug #605752 + sed '/INFOFILES/s/asdf.info//' -i doc/manual/Makefile || die + + use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk + + # Some shells(such as dash) don't have "time" as builtin + # and we don't want to DEPEND on sys-process/time + sed "s,^time ,," -i make.sh || die + sed "s,/lib,/$(get_libdir),g" -i install.sh || die + # #define SBCL_HOME ... + sed "s,/usr/local/lib,${EPREFIX}/usr/$(get_libdir),g" -i src/runtime/runtime.c || die + # change location of /etc/sbclrc ... + sed "s,/etc/sbclrc,${EPREFIX}/etc/sbclrc,g" -i src/code/toplevel.lisp || die + + find . -type f -name .cvsignore -delete +} + +src_configure() { + # customizing SBCL version as per + # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup + echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + + if use pax_kernel ; then + # To disable PaX on hardened systems + pax-mark -mr "${bindir}"/src/runtime/sbcl + + # Hack to disable PaX on second GENESIS stage + sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \ + "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime" + fi + + # clear the environment to get rid of non-ASCII strings, see bug #174702 + # set HOME for paludis + env - HOME="${T}" PATH="${PATH}" \ + CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \ + CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \ + GNUMAKE=make ./make.sh \ + "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \ + || die "make failed" + + # need to set HOME because libpango(used by graphviz) complains about it + if use doc; then + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/manual info html || die "Cannot build manual" + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/internals info html || die "Cannot build internal docs" + fi +} + +src_test() { + ewarn "Unfortunately, it is known that some tests fail eg." + ewarn "run-program.impure.lisp. This is an issue of the upstream's" + ewarn "development and not of Gentoo's side. Please, before filing" + ewarn "any bug(s) search for older submissions. Thank you." + time ( cd tests && sh run-tests.sh ) +} + +src_install() { + # install system-wide initfile + dodir /etc/ + sed 's/^X//' > "${ED}"/etc/sbclrc <<-EOF + ;;; The following is required if you want source location functions to + ;;; work in SLIME, for example. + X + (setf (logical-pathname-translations "SYS") + X '(("SYS:SRC;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/src/**/*.*") + X ("SYS:CONTRIB;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/**/*.*"))) + X + ;;; Setup ASDF2 + (load "${EPREFIX}/etc/common-lisp/gentoo-init.lisp") + EOF + + # Install documentation + unset SBCL_HOME + INSTALL_ROOT="${ED}/usr" LIB_DIR="${EPREFIX}/usr/$(get_libdir)" DOC_DIR="${ED}/usr/share/doc/${PF}" \ + sh install.sh || die "install.sh failed" + + # bug #517008 + pax-mark -mr "${D}"/usr/bin/sbcl + + # rm empty directories lest paludis complain about this + find "${ED}" -empty -type d -exec rmdir -v {} + + + if use doc; then + dodoc -r doc/internals/sbcl-internals + + doinfo doc/manual/*.info* + doinfo doc/internals/sbcl-internals.info + + docinto internals-notes + dodoc doc/internals-notes/* + else + rm -Rv "${ED}/usr/share/doc/${PF}" || die + fi + + # install the SBCL source + if use source; then + ./clean.sh + cp -av src "${ED}/usr/$(get_libdir)/sbcl/" || die + fi + + # necessary for running newly-saved images + echo "SBCL_HOME=${EPREFIX}/usr/$(get_libdir)/${PN}" > "${ENVD}" + echo "SBCL_SOURCE_ROOT=${EPREFIX}/usr/$(get_libdir)/${PN}/src" >> "${ENVD}" + doenvd "${ENVD}" +} diff --git a/dev-lisp/sbcl/sbcl-1.5.6.ebuild b/dev-lisp/sbcl/sbcl-1.5.6.ebuild new file mode 100644 index 000000000000..a7b12bfec041 --- /dev/null +++ b/dev-lisp/sbcl/sbcl-1.5.6.ebuild @@ -0,0 +1,246 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit multilib eutils flag-o-matic pax-utils toolchain-funcs + +#same order as http://www.sbcl.org/platform-table.html +BV_X86=1.4.3 +BV_AMD64=1.5.6 +BV_PPC=1.2.7 +BV_SPARC=1.0.28 +BV_ALPHA=1.0.28 +BV_ARM=1.4.11 +BV_ARM64=1.4.2 +BV_X86_MACOS=1.1.6 +BV_X64_MACOS=1.2.11 +BV_PPC_MACOS=1.0.47 +BV_X86_SOLARIS=1.2.7 +BV_X64_SOLARIS=1.2.7 +BV_SPARC_SOLARIS=1.0.23 + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp" +HOMEPAGE="http://sbcl.sourceforge.net/" +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2 + x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 ) + arm? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 ) + arm64? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM64}-arm64-linux-binary.tar.bz2 ) + x86-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_MACOS}-x86-darwin-binary.tar.bz2 ) + x64-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 ) + ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-binary.tar.bz2 ) + x86-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_SOLARIS}-x86-solaris-binary.tar.bz2 ) + x64-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 ) + sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-solaris-binary.tar.bz2 )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris" +IUSE="debug doc source +threads +unicode pax_kernel zlib" + +CDEPEND=">=dev-lisp/asdf-3.1:=" +DEPEND="${CDEPEND} + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + pax_kernel? ( sys-apps/elfix )" +RDEPEND="${CDEPEND} + !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )" + +# Disable warnings about executable stacks, as this won't be fixed soon by upstream +QA_EXECSTACK="usr/bin/sbcl" + +CONFIG="${S}/customize-target-features.lisp" +ENVD="${T}/50sbcl" + +# Prevent ASDF from using the system libraries +CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" +ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" + +usep() { + use ${1} && echo "true" || echo "false" +} + +sbcl_feature() { + echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}" +} + +sbcl_apply_features() { + sed 's/^X//' > "${CONFIG}" <<-'EOF' + (lambda (list) + X (flet ((enable (x) (pushnew x list)) + X (disable (x) (setf list (remove x list)))) + EOF + if use x86 || use amd64; then + sbcl_feature "$(usep threads)" ":sb-thread" + fi + sbcl_feature "true" ":sb-ldb" + sbcl_feature "false" ":sb-test" + sbcl_feature "$(usep unicode)" ":sb-unicode" + sbcl_feature "$(usep zlib)" ":sb-core-compression" + sbcl_feature "$(usep debug)" ":sb-xref-for-internals" + sed 's/^X//' >> "${CONFIG}" <<-'EOF' + X ) + X list) + EOF + cat "${CONFIG}" +} + +src_unpack() { + unpack ${A} + mv sbcl-*-* sbcl-binary || die + cd "${S}" +} + +src_prepare() { + # bug #468482 + eapply "${FILESDIR}"/concurrency-test-1.5.3.patch + # bugs #486552, #527666, #517004 + eapply "${FILESDIR}"/${PN}-1.4.0-bsd-sockets-test.patch + # bugs #560276, #561018 + eapply "${FILESDIR}"/sb-posix-test-1.2.15.patch + + eapply "${FILESDIR}"/${PN}-1.2.11-solaris.patch + eapply "${FILESDIR}"/${PN}-1.4.0-verbose-build.patch + + eapply_user + + # Make sure the *FLAGS variables are sane. + # sbcl needs symbols in resulting binaries, so building with the -s linker flag will fail. + strip-unsupported-flags + filter-flags -fomit-frame-pointer -Wl,-s + filter-ldflags -s + + # original bugs #526194, #620532 + # this broke no-pie default builds, c.f. bug #632670 + # Pass CFLAGS down by appending our value, to let users override + # the default values. + # Keep passing LDFLAGS down via the LINKFLAGS variable. + sed -e "s@\(CFLAGS += -g .*\)\$@\1 ${CFLAGS}@" \ + -e "s@LINKFLAGS += -g\$@LINKFLAGS += ${LDFLAGS}@" \ + -i src/runtime/GNUmakefile || die + + sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \ + -i make-config.sh || die + + # Use installed ASDF version + cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die + # Avoid installation of ASDF info page. See bug #605752 + sed '/INFOFILES/s/asdf.info//' -i doc/manual/Makefile || die + + use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk + + # Some shells(such as dash) don't have "time" as builtin + # and we don't want to DEPEND on sys-process/time + sed "s,^time ,," -i make.sh || die + sed "s,/lib,/$(get_libdir),g" -i install.sh || die + # #define SBCL_HOME ... + sed "s,/usr/local/lib,${EPREFIX}/usr/$(get_libdir),g" -i src/runtime/runtime.c || die + # change location of /etc/sbclrc ... + sed "s,/etc/sbclrc,${EPREFIX}/etc/sbclrc,g" -i src/code/toplevel.lisp || die + + find . -type f -name .cvsignore -delete +} + +src_configure() { + # customizing SBCL version as per + # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup + echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + + if use pax_kernel ; then + # To disable PaX on hardened systems + pax-mark -mr "${bindir}"/src/runtime/sbcl + + # Hack to disable PaX on second GENESIS stage + sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \ + "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime" + fi + + # clear the environment to get rid of non-ASCII strings, see bug #174702 + # set HOME for paludis + env - HOME="${T}" PATH="${PATH}" \ + CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \ + CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \ + GNUMAKE=make ./make.sh \ + "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \ + || die "make failed" + + # need to set HOME because libpango(used by graphviz) complains about it + if use doc; then + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/manual info html || die "Cannot build manual" + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/internals info html || die "Cannot build internal docs" + fi +} + +src_test() { + ewarn "Unfortunately, it is known that some tests fail eg." + ewarn "run-program.impure.lisp. This is an issue of the upstream's" + ewarn "development and not of Gentoo's side. Please, before filing" + ewarn "any bug(s) search for older submissions. Thank you." + time ( cd tests && sh run-tests.sh ) +} + +src_install() { + # install system-wide initfile + dodir /etc/ + sed 's/^X//' > "${ED}"/etc/sbclrc <<-EOF + ;;; The following is required if you want source location functions to + ;;; work in SLIME, for example. + X + (setf (logical-pathname-translations "SYS") + X '(("SYS:SRC;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/src/**/*.*") + X ("SYS:CONTRIB;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/**/*.*"))) + X + ;;; Setup ASDF2 + (load "${EPREFIX}/etc/common-lisp/gentoo-init.lisp") + EOF + + # Install documentation + unset SBCL_HOME + INSTALL_ROOT="${ED}/usr" LIB_DIR="${EPREFIX}/usr/$(get_libdir)" DOC_DIR="${ED}/usr/share/doc/${PF}" \ + sh install.sh || die "install.sh failed" + + # bug #517008 + pax-mark -mr "${D}"/usr/bin/sbcl + + # rm empty directories lest paludis complain about this + find "${ED}" -empty -type d -exec rmdir -v {} + + + if use doc; then + dodoc -r doc/internals/sbcl-internals + + doinfo doc/manual/*.info* + doinfo doc/internals/sbcl-internals.info + + docinto internals-notes + dodoc doc/internals-notes/* + else + rm -Rv "${ED}/usr/share/doc/${PF}" || die + fi + + # install the SBCL source + if use source; then + ./clean.sh + cp -av src "${ED}/usr/$(get_libdir)/sbcl/" || die + fi + + # necessary for running newly-saved images + echo "SBCL_HOME=${EPREFIX}/usr/$(get_libdir)/${PN}" > "${ENVD}" + echo "SBCL_SOURCE_ROOT=${EPREFIX}/usr/$(get_libdir)/${PN}/src" >> "${ENVD}" + doenvd "${ENVD}" +} diff --git a/dev-lisp/sbcl/sbcl-1.5.7.ebuild b/dev-lisp/sbcl/sbcl-1.5.7.ebuild new file mode 100644 index 000000000000..a7b12bfec041 --- /dev/null +++ b/dev-lisp/sbcl/sbcl-1.5.7.ebuild @@ -0,0 +1,246 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit multilib eutils flag-o-matic pax-utils toolchain-funcs + +#same order as http://www.sbcl.org/platform-table.html +BV_X86=1.4.3 +BV_AMD64=1.5.6 +BV_PPC=1.2.7 +BV_SPARC=1.0.28 +BV_ALPHA=1.0.28 +BV_ARM=1.4.11 +BV_ARM64=1.4.2 +BV_X86_MACOS=1.1.6 +BV_X64_MACOS=1.2.11 +BV_PPC_MACOS=1.0.47 +BV_X86_SOLARIS=1.2.7 +BV_X64_SOLARIS=1.2.7 +BV_SPARC_SOLARIS=1.0.23 + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp" +HOMEPAGE="http://sbcl.sourceforge.net/" +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2 + x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 ) + arm? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 ) + arm64? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM64}-arm64-linux-binary.tar.bz2 ) + x86-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_MACOS}-x86-darwin-binary.tar.bz2 ) + x64-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 ) + ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-binary.tar.bz2 ) + x86-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_SOLARIS}-x86-solaris-binary.tar.bz2 ) + x64-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 ) + sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-solaris-binary.tar.bz2 )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris" +IUSE="debug doc source +threads +unicode pax_kernel zlib" + +CDEPEND=">=dev-lisp/asdf-3.1:=" +DEPEND="${CDEPEND} + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + pax_kernel? ( sys-apps/elfix )" +RDEPEND="${CDEPEND} + !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )" + +# Disable warnings about executable stacks, as this won't be fixed soon by upstream +QA_EXECSTACK="usr/bin/sbcl" + +CONFIG="${S}/customize-target-features.lisp" +ENVD="${T}/50sbcl" + +# Prevent ASDF from using the system libraries +CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" +ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" + +usep() { + use ${1} && echo "true" || echo "false" +} + +sbcl_feature() { + echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}" +} + +sbcl_apply_features() { + sed 's/^X//' > "${CONFIG}" <<-'EOF' + (lambda (list) + X (flet ((enable (x) (pushnew x list)) + X (disable (x) (setf list (remove x list)))) + EOF + if use x86 || use amd64; then + sbcl_feature "$(usep threads)" ":sb-thread" + fi + sbcl_feature "true" ":sb-ldb" + sbcl_feature "false" ":sb-test" + sbcl_feature "$(usep unicode)" ":sb-unicode" + sbcl_feature "$(usep zlib)" ":sb-core-compression" + sbcl_feature "$(usep debug)" ":sb-xref-for-internals" + sed 's/^X//' >> "${CONFIG}" <<-'EOF' + X ) + X list) + EOF + cat "${CONFIG}" +} + +src_unpack() { + unpack ${A} + mv sbcl-*-* sbcl-binary || die + cd "${S}" +} + +src_prepare() { + # bug #468482 + eapply "${FILESDIR}"/concurrency-test-1.5.3.patch + # bugs #486552, #527666, #517004 + eapply "${FILESDIR}"/${PN}-1.4.0-bsd-sockets-test.patch + # bugs #560276, #561018 + eapply "${FILESDIR}"/sb-posix-test-1.2.15.patch + + eapply "${FILESDIR}"/${PN}-1.2.11-solaris.patch + eapply "${FILESDIR}"/${PN}-1.4.0-verbose-build.patch + + eapply_user + + # Make sure the *FLAGS variables are sane. + # sbcl needs symbols in resulting binaries, so building with the -s linker flag will fail. + strip-unsupported-flags + filter-flags -fomit-frame-pointer -Wl,-s + filter-ldflags -s + + # original bugs #526194, #620532 + # this broke no-pie default builds, c.f. bug #632670 + # Pass CFLAGS down by appending our value, to let users override + # the default values. + # Keep passing LDFLAGS down via the LINKFLAGS variable. + sed -e "s@\(CFLAGS += -g .*\)\$@\1 ${CFLAGS}@" \ + -e "s@LINKFLAGS += -g\$@LINKFLAGS += ${LDFLAGS}@" \ + -i src/runtime/GNUmakefile || die + + sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \ + -i make-config.sh || die + + # Use installed ASDF version + cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die + # Avoid installation of ASDF info page. See bug #605752 + sed '/INFOFILES/s/asdf.info//' -i doc/manual/Makefile || die + + use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk + + # Some shells(such as dash) don't have "time" as builtin + # and we don't want to DEPEND on sys-process/time + sed "s,^time ,," -i make.sh || die + sed "s,/lib,/$(get_libdir),g" -i install.sh || die + # #define SBCL_HOME ... + sed "s,/usr/local/lib,${EPREFIX}/usr/$(get_libdir),g" -i src/runtime/runtime.c || die + # change location of /etc/sbclrc ... + sed "s,/etc/sbclrc,${EPREFIX}/etc/sbclrc,g" -i src/code/toplevel.lisp || die + + find . -type f -name .cvsignore -delete +} + +src_configure() { + # customizing SBCL version as per + # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup + echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + + if use pax_kernel ; then + # To disable PaX on hardened systems + pax-mark -mr "${bindir}"/src/runtime/sbcl + + # Hack to disable PaX on second GENESIS stage + sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \ + "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime" + fi + + # clear the environment to get rid of non-ASCII strings, see bug #174702 + # set HOME for paludis + env - HOME="${T}" PATH="${PATH}" \ + CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \ + CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \ + GNUMAKE=make ./make.sh \ + "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \ + || die "make failed" + + # need to set HOME because libpango(used by graphviz) complains about it + if use doc; then + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/manual info html || die "Cannot build manual" + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/internals info html || die "Cannot build internal docs" + fi +} + +src_test() { + ewarn "Unfortunately, it is known that some tests fail eg." + ewarn "run-program.impure.lisp. This is an issue of the upstream's" + ewarn "development and not of Gentoo's side. Please, before filing" + ewarn "any bug(s) search for older submissions. Thank you." + time ( cd tests && sh run-tests.sh ) +} + +src_install() { + # install system-wide initfile + dodir /etc/ + sed 's/^X//' > "${ED}"/etc/sbclrc <<-EOF + ;;; The following is required if you want source location functions to + ;;; work in SLIME, for example. + X + (setf (logical-pathname-translations "SYS") + X '(("SYS:SRC;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/src/**/*.*") + X ("SYS:CONTRIB;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/**/*.*"))) + X + ;;; Setup ASDF2 + (load "${EPREFIX}/etc/common-lisp/gentoo-init.lisp") + EOF + + # Install documentation + unset SBCL_HOME + INSTALL_ROOT="${ED}/usr" LIB_DIR="${EPREFIX}/usr/$(get_libdir)" DOC_DIR="${ED}/usr/share/doc/${PF}" \ + sh install.sh || die "install.sh failed" + + # bug #517008 + pax-mark -mr "${D}"/usr/bin/sbcl + + # rm empty directories lest paludis complain about this + find "${ED}" -empty -type d -exec rmdir -v {} + + + if use doc; then + dodoc -r doc/internals/sbcl-internals + + doinfo doc/manual/*.info* + doinfo doc/internals/sbcl-internals.info + + docinto internals-notes + dodoc doc/internals-notes/* + else + rm -Rv "${ED}/usr/share/doc/${PF}" || die + fi + + # install the SBCL source + if use source; then + ./clean.sh + cp -av src "${ED}/usr/$(get_libdir)/sbcl/" || die + fi + + # necessary for running newly-saved images + echo "SBCL_HOME=${EPREFIX}/usr/$(get_libdir)/${PN}" > "${ENVD}" + echo "SBCL_SOURCE_ROOT=${EPREFIX}/usr/$(get_libdir)/${PN}/src" >> "${ENVD}" + doenvd "${ENVD}" +} diff --git a/dev-lisp/sbcl/sbcl-1.5.8.ebuild b/dev-lisp/sbcl/sbcl-1.5.8.ebuild new file mode 100644 index 000000000000..38e70dcf9c50 --- /dev/null +++ b/dev-lisp/sbcl/sbcl-1.5.8.ebuild @@ -0,0 +1,246 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit multilib eutils flag-o-matic pax-utils toolchain-funcs + +#same order as http://www.sbcl.org/platform-table.html +BV_X86=1.4.3 +BV_AMD64=1.5.8 +BV_PPC=1.2.7 +BV_SPARC=1.0.28 +BV_ALPHA=1.0.28 +BV_ARM=1.4.11 +BV_ARM64=1.4.2 +BV_X86_MACOS=1.1.6 +BV_X64_MACOS=1.2.11 +BV_PPC_MACOS=1.0.47 +BV_X86_SOLARIS=1.2.7 +BV_X64_SOLARIS=1.2.7 +BV_SPARC_SOLARIS=1.0.23 + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp" +HOMEPAGE="http://sbcl.sourceforge.net/" +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2 + x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 ) + arm? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 ) + arm64? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM64}-arm64-linux-binary.tar.bz2 ) + x86-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_MACOS}-x86-darwin-binary.tar.bz2 ) + x64-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 ) + ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-binary.tar.bz2 ) + x86-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_SOLARIS}-x86-solaris-binary.tar.bz2 ) + x64-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 ) + sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-solaris-binary.tar.bz2 )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris" +IUSE="debug doc source +threads +unicode pax_kernel zlib" + +CDEPEND=">=dev-lisp/asdf-3.1:=" +DEPEND="${CDEPEND} + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + pax_kernel? ( sys-apps/elfix )" +RDEPEND="${CDEPEND} + !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )" + +# Disable warnings about executable stacks, as this won't be fixed soon by upstream +QA_EXECSTACK="usr/bin/sbcl" + +CONFIG="${S}/customize-target-features.lisp" +ENVD="${T}/50sbcl" + +# Prevent ASDF from using the system libraries +CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" +ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" + +usep() { + use ${1} && echo "true" || echo "false" +} + +sbcl_feature() { + echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}" +} + +sbcl_apply_features() { + sed 's/^X//' > "${CONFIG}" <<-'EOF' + (lambda (list) + X (flet ((enable (x) (pushnew x list)) + X (disable (x) (setf list (remove x list)))) + EOF + if use x86 || use amd64; then + sbcl_feature "$(usep threads)" ":sb-thread" + fi + sbcl_feature "true" ":sb-ldb" + sbcl_feature "false" ":sb-test" + sbcl_feature "$(usep unicode)" ":sb-unicode" + sbcl_feature "$(usep zlib)" ":sb-core-compression" + sbcl_feature "$(usep debug)" ":sb-xref-for-internals" + sed 's/^X//' >> "${CONFIG}" <<-'EOF' + X ) + X list) + EOF + cat "${CONFIG}" +} + +src_unpack() { + unpack ${A} + mv sbcl-*-* sbcl-binary || die + cd "${S}" +} + +src_prepare() { + # bug #468482 + eapply "${FILESDIR}"/concurrency-test-1.5.3.patch + # bugs #486552, #527666, #517004 + eapply "${FILESDIR}"/${PN}-1.4.0-bsd-sockets-test.patch + # bugs #560276, #561018 + eapply "${FILESDIR}"/sb-posix-test-1.2.15.patch + + eapply "${FILESDIR}"/${PN}-1.2.11-solaris.patch + eapply "${FILESDIR}"/${PN}-1.4.0-verbose-build.patch + + eapply_user + + # Make sure the *FLAGS variables are sane. + # sbcl needs symbols in resulting binaries, so building with the -s linker flag will fail. + strip-unsupported-flags + filter-flags -fomit-frame-pointer -Wl,-s + filter-ldflags -s + + # original bugs #526194, #620532 + # this broke no-pie default builds, c.f. bug #632670 + # Pass CFLAGS down by appending our value, to let users override + # the default values. + # Keep passing LDFLAGS down via the LINKFLAGS variable. + sed -e "s@\(CFLAGS += -g .*\)\$@\1 ${CFLAGS}@" \ + -e "s@LINKFLAGS += -g\$@LINKFLAGS += ${LDFLAGS}@" \ + -i src/runtime/GNUmakefile || die + + sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \ + -i make-config.sh || die + + # Use installed ASDF version + cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die + # Avoid installation of ASDF info page. See bug #605752 + sed '/INFOFILES/s/asdf.info//' -i doc/manual/Makefile || die + + use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk + + # Some shells(such as dash) don't have "time" as builtin + # and we don't want to DEPEND on sys-process/time + sed "s,^time ,," -i make.sh || die + sed "s,/lib,/$(get_libdir),g" -i install.sh || die + # #define SBCL_HOME ... + sed "s,/usr/local/lib,${EPREFIX}/usr/$(get_libdir),g" -i src/runtime/runtime.c || die + # change location of /etc/sbclrc ... + sed "s,/etc/sbclrc,${EPREFIX}/etc/sbclrc,g" -i src/code/toplevel.lisp || die + + find . -type f -name .cvsignore -delete +} + +src_configure() { + # customizing SBCL version as per + # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup + echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + + if use pax_kernel ; then + # To disable PaX on hardened systems + pax-mark -mr "${bindir}"/src/runtime/sbcl + + # Hack to disable PaX on second GENESIS stage + sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \ + "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime" + fi + + # clear the environment to get rid of non-ASCII strings, see bug #174702 + # set HOME for paludis + env - HOME="${T}" PATH="${PATH}" \ + CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \ + CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \ + GNUMAKE=make ./make.sh \ + "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \ + || die "make failed" + + # need to set HOME because libpango(used by graphviz) complains about it + if use doc; then + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/manual info html || die "Cannot build manual" + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/internals info html || die "Cannot build internal docs" + fi +} + +src_test() { + ewarn "Unfortunately, it is known that some tests fail eg." + ewarn "run-program.impure.lisp. This is an issue of the upstream's" + ewarn "development and not of Gentoo's side. Please, before filing" + ewarn "any bug(s) search for older submissions. Thank you." + time ( cd tests && sh run-tests.sh ) +} + +src_install() { + # install system-wide initfile + dodir /etc/ + sed 's/^X//' > "${ED}"/etc/sbclrc <<-EOF + ;;; The following is required if you want source location functions to + ;;; work in SLIME, for example. + X + (setf (logical-pathname-translations "SYS") + X '(("SYS:SRC;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/src/**/*.*") + X ("SYS:CONTRIB;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/**/*.*"))) + X + ;;; Setup ASDF2 + (load "${EPREFIX}/etc/common-lisp/gentoo-init.lisp") + EOF + + # Install documentation + unset SBCL_HOME + INSTALL_ROOT="${ED}/usr" LIB_DIR="${EPREFIX}/usr/$(get_libdir)" DOC_DIR="${ED}/usr/share/doc/${PF}" \ + sh install.sh || die "install.sh failed" + + # bug #517008 + pax-mark -mr "${D}"/usr/bin/sbcl + + # rm empty directories lest paludis complain about this + find "${ED}" -empty -type d -exec rmdir -v {} + + + if use doc; then + dodoc -r doc/internals/sbcl-internals + + doinfo doc/manual/*.info* + doinfo doc/internals/sbcl-internals.info + + docinto internals-notes + dodoc doc/internals-notes/* + else + rm -Rv "${ED}/usr/share/doc/${PF}" || die + fi + + # install the SBCL source + if use source; then + ./clean.sh + cp -av src "${ED}/usr/$(get_libdir)/sbcl/" || die + fi + + # necessary for running newly-saved images + echo "SBCL_HOME=${EPREFIX}/usr/$(get_libdir)/${PN}" > "${ENVD}" + echo "SBCL_SOURCE_ROOT=${EPREFIX}/usr/$(get_libdir)/${PN}/src" >> "${ENVD}" + doenvd "${ENVD}" +} diff --git a/dev-lisp/sbcl/sbcl-2.0.0.ebuild b/dev-lisp/sbcl/sbcl-2.0.0.ebuild new file mode 100644 index 000000000000..0bde7a4ffe20 --- /dev/null +++ b/dev-lisp/sbcl/sbcl-2.0.0.ebuild @@ -0,0 +1,246 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit multilib eutils flag-o-matic pax-utils toolchain-funcs + +#same order as http://www.sbcl.org/platform-table.html +BV_X86=1.4.3 +BV_AMD64=2.0.0 +BV_PPC=1.2.7 +BV_SPARC=1.0.28 +BV_ALPHA=1.0.28 +BV_ARM=1.4.11 +BV_ARM64=1.4.2 +BV_X86_MACOS=1.1.6 +BV_X64_MACOS=1.2.11 +BV_PPC_MACOS=1.0.47 +BV_X86_SOLARIS=1.2.7 +BV_X64_SOLARIS=1.2.7 +BV_SPARC_SOLARIS=1.0.23 + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp" +HOMEPAGE="http://sbcl.sourceforge.net/" +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2 + x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 ) + arm? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 ) + arm64? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM64}-arm64-linux-binary.tar.bz2 ) + x86-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_MACOS}-x86-darwin-binary.tar.bz2 ) + x64-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 ) + ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-binary.tar.bz2 ) + x86-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_SOLARIS}-x86-solaris-binary.tar.bz2 ) + x64-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 ) + sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-solaris-binary.tar.bz2 )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris" +IUSE="debug doc source +threads +unicode pax_kernel zlib" + +CDEPEND=">=dev-lisp/asdf-3.1:=" +DEPEND="${CDEPEND} + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + pax_kernel? ( sys-apps/elfix )" +RDEPEND="${CDEPEND} + !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )" + +# Disable warnings about executable stacks, as this won't be fixed soon by upstream +QA_EXECSTACK="usr/bin/sbcl" + +CONFIG="${S}/customize-target-features.lisp" +ENVD="${T}/50sbcl" + +# Prevent ASDF from using the system libraries +CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" +ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" + +usep() { + use ${1} && echo "true" || echo "false" +} + +sbcl_feature() { + echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}" +} + +sbcl_apply_features() { + sed 's/^X//' > "${CONFIG}" <<-'EOF' + (lambda (list) + X (flet ((enable (x) (pushnew x list)) + X (disable (x) (setf list (remove x list)))) + EOF + if use x86 || use amd64; then + sbcl_feature "$(usep threads)" ":sb-thread" + fi + sbcl_feature "true" ":sb-ldb" + sbcl_feature "false" ":sb-test" + sbcl_feature "$(usep unicode)" ":sb-unicode" + sbcl_feature "$(usep zlib)" ":sb-core-compression" + sbcl_feature "$(usep debug)" ":sb-xref-for-internals" + sed 's/^X//' >> "${CONFIG}" <<-'EOF' + X ) + X list) + EOF + cat "${CONFIG}" +} + +src_unpack() { + unpack ${A} + mv sbcl-*-* sbcl-binary || die + cd "${S}" +} + +src_prepare() { + # bug #468482 + eapply "${FILESDIR}"/concurrency-test-1.5.3.patch + # bugs #486552, #527666, #517004 + eapply "${FILESDIR}"/${PN}-1.4.0-bsd-sockets-test.patch + # bugs #560276, #561018 + eapply "${FILESDIR}"/sb-posix-test-1.2.15.patch + + eapply "${FILESDIR}"/${PN}-1.2.11-solaris.patch + eapply "${FILESDIR}"/${PN}-1.4.0-verbose-build.patch + + eapply_user + + # Make sure the *FLAGS variables are sane. + # sbcl needs symbols in resulting binaries, so building with the -s linker flag will fail. + strip-unsupported-flags + filter-flags -fomit-frame-pointer -Wl,-s + filter-ldflags -s + + # original bugs #526194, #620532 + # this broke no-pie default builds, c.f. bug #632670 + # Pass CFLAGS down by appending our value, to let users override + # the default values. + # Keep passing LDFLAGS down via the LINKFLAGS variable. + sed -e "s@\(CFLAGS += -g .*\)\$@\1 ${CFLAGS}@" \ + -e "s@LINKFLAGS += -g\$@LINKFLAGS += ${LDFLAGS}@" \ + -i src/runtime/GNUmakefile || die + + sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \ + -i make-config.sh || die + + # Use installed ASDF version + cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die + # Avoid installation of ASDF info page. See bug #605752 + sed '/INFOFILES/s/asdf.info//' -i doc/manual/Makefile || die + + use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk + + # Some shells(such as dash) don't have "time" as builtin + # and we don't want to DEPEND on sys-process/time + sed "s,^time ,," -i make.sh || die + sed "s,/lib,/$(get_libdir),g" -i install.sh || die + # #define SBCL_HOME ... + sed "s,/usr/local/lib,${EPREFIX}/usr/$(get_libdir),g" -i src/runtime/runtime.c || die + # change location of /etc/sbclrc ... + sed "s,/etc/sbclrc,${EPREFIX}/etc/sbclrc,g" -i src/code/toplevel.lisp || die + + find . -type f -name .cvsignore -delete +} + +src_configure() { + # customizing SBCL version as per + # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup + echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + + if use pax_kernel ; then + # To disable PaX on hardened systems + pax-mark -mr "${bindir}"/src/runtime/sbcl + + # Hack to disable PaX on second GENESIS stage + sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \ + "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime" + fi + + # clear the environment to get rid of non-ASCII strings, see bug #174702 + # set HOME for paludis + env - HOME="${T}" PATH="${PATH}" \ + CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \ + CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \ + GNUMAKE=make ./make.sh \ + "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \ + || die "make failed" + + # need to set HOME because libpango(used by graphviz) complains about it + if use doc; then + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/manual info html || die "Cannot build manual" + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/internals info html || die "Cannot build internal docs" + fi +} + +src_test() { + ewarn "Unfortunately, it is known that some tests fail eg." + ewarn "run-program.impure.lisp. This is an issue of the upstream's" + ewarn "development and not of Gentoo's side. Please, before filing" + ewarn "any bug(s) search for older submissions. Thank you." + time ( cd tests && sh run-tests.sh ) +} + +src_install() { + # install system-wide initfile + dodir /etc/ + sed 's/^X//' > "${ED}"/etc/sbclrc <<-EOF + ;;; The following is required if you want source location functions to + ;;; work in SLIME, for example. + X + (setf (logical-pathname-translations "SYS") + X '(("SYS:SRC;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/src/**/*.*") + X ("SYS:CONTRIB;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/**/*.*"))) + X + ;;; Setup ASDF2 + (load "${EPREFIX}/etc/common-lisp/gentoo-init.lisp") + EOF + + # Install documentation + unset SBCL_HOME + INSTALL_ROOT="${ED}/usr" LIB_DIR="${EPREFIX}/usr/$(get_libdir)" DOC_DIR="${ED}/usr/share/doc/${PF}" \ + sh install.sh || die "install.sh failed" + + # bug #517008 + pax-mark -mr "${D}"/usr/bin/sbcl + + # rm empty directories lest paludis complain about this + find "${ED}" -empty -type d -exec rmdir -v {} + + + if use doc; then + dodoc -r doc/internals/sbcl-internals + + doinfo doc/manual/*.info* + doinfo doc/internals/sbcl-internals.info + + docinto internals-notes + dodoc doc/internals-notes/* + else + rm -Rv "${ED}/usr/share/doc/${PF}" || die + fi + + # install the SBCL source + if use source; then + ./clean.sh + cp -av src "${ED}/usr/$(get_libdir)/sbcl/" || die + fi + + # necessary for running newly-saved images + echo "SBCL_HOME=${EPREFIX}/usr/$(get_libdir)/${PN}" > "${ENVD}" + echo "SBCL_SOURCE_ROOT=${EPREFIX}/usr/$(get_libdir)/${PN}/src" >> "${ENVD}" + doenvd "${ENVD}" +} diff --git a/dev-lisp/sbcl/sbcl-2.0.1.ebuild b/dev-lisp/sbcl/sbcl-2.0.1.ebuild new file mode 100644 index 000000000000..63010e5b32f4 --- /dev/null +++ b/dev-lisp/sbcl/sbcl-2.0.1.ebuild @@ -0,0 +1,246 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit multilib eutils flag-o-matic pax-utils toolchain-funcs + +#same order as http://www.sbcl.org/platform-table.html +BV_X86=1.4.3 +BV_AMD64=2.0.1 +BV_PPC=1.2.7 +BV_SPARC=1.0.28 +BV_ALPHA=1.0.28 +BV_ARM=1.4.11 +BV_ARM64=1.4.2 +BV_X86_MACOS=1.1.6 +BV_X64_MACOS=1.2.11 +BV_PPC_MACOS=1.0.47 +BV_X86_SOLARIS=1.2.7 +BV_X64_SOLARIS=1.2.7 +BV_SPARC_SOLARIS=1.0.23 + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp" +HOMEPAGE="http://sbcl.sourceforge.net/" +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2 + x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 ) + arm? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 ) + arm64? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM64}-arm64-linux-binary.tar.bz2 ) + x86-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_MACOS}-x86-darwin-binary.tar.bz2 ) + x64-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 ) + ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-binary.tar.bz2 ) + x86-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_SOLARIS}-x86-solaris-binary.tar.bz2 ) + x64-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 ) + sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-solaris-binary.tar.bz2 )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris" +IUSE="debug doc source +threads +unicode pax_kernel zlib" + +CDEPEND=">=dev-lisp/asdf-3.1:=" +DEPEND="${CDEPEND} + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + pax_kernel? ( sys-apps/elfix )" +RDEPEND="${CDEPEND} + !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )" + +# Disable warnings about executable stacks, as this won't be fixed soon by upstream +QA_EXECSTACK="usr/bin/sbcl" + +CONFIG="${S}/customize-target-features.lisp" +ENVD="${T}/50sbcl" + +# Prevent ASDF from using the system libraries +CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" +ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" + +usep() { + use ${1} && echo "true" || echo "false" +} + +sbcl_feature() { + echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}" +} + +sbcl_apply_features() { + sed 's/^X//' > "${CONFIG}" <<-'EOF' + (lambda (list) + X (flet ((enable (x) (pushnew x list)) + X (disable (x) (setf list (remove x list)))) + EOF + if use x86 || use amd64; then + sbcl_feature "$(usep threads)" ":sb-thread" + fi + sbcl_feature "true" ":sb-ldb" + sbcl_feature "false" ":sb-test" + sbcl_feature "$(usep unicode)" ":sb-unicode" + sbcl_feature "$(usep zlib)" ":sb-core-compression" + sbcl_feature "$(usep debug)" ":sb-xref-for-internals" + sed 's/^X//' >> "${CONFIG}" <<-'EOF' + X ) + X list) + EOF + cat "${CONFIG}" +} + +src_unpack() { + unpack ${A} + mv sbcl-*-* sbcl-binary || die + cd "${S}" +} + +src_prepare() { + # bug #468482 + eapply "${FILESDIR}"/concurrency-test-2.0.1.patch + # bugs #486552, #527666, #517004 + eapply "${FILESDIR}"/${PN}-1.4.0-bsd-sockets-test.patch + # bugs #560276, #561018 + eapply "${FILESDIR}"/sb-posix-test-1.2.15.patch + + eapply "${FILESDIR}"/${PN}-1.2.11-solaris.patch + eapply "${FILESDIR}"/${PN}-1.4.0-verbose-build.patch + + eapply_user + + # Make sure the *FLAGS variables are sane. + # sbcl needs symbols in resulting binaries, so building with the -s linker flag will fail. + strip-unsupported-flags + filter-flags -fomit-frame-pointer -Wl,-s + filter-ldflags -s + + # original bugs #526194, #620532 + # this broke no-pie default builds, c.f. bug #632670 + # Pass CFLAGS down by appending our value, to let users override + # the default values. + # Keep passing LDFLAGS down via the LINKFLAGS variable. + sed -e "s@\(CFLAGS += -g .*\)\$@\1 ${CFLAGS}@" \ + -e "s@LINKFLAGS += -g\$@LINKFLAGS += ${LDFLAGS}@" \ + -i src/runtime/GNUmakefile || die + + sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \ + -i make-config.sh || die + + # Use installed ASDF version + cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die + # Avoid installation of ASDF info page. See bug #605752 + sed '/INFOFILES/s/asdf.info//' -i doc/manual/Makefile || die + + use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk + + # Some shells(such as dash) don't have "time" as builtin + # and we don't want to DEPEND on sys-process/time + sed "s,^time ,," -i make.sh || die + sed "s,/lib,/$(get_libdir),g" -i install.sh || die + # #define SBCL_HOME ... + sed "s,/usr/local/lib,${EPREFIX}/usr/$(get_libdir),g" -i src/runtime/runtime.c || die + # change location of /etc/sbclrc ... + sed "s,/etc/sbclrc,${EPREFIX}/etc/sbclrc,g" -i src/code/toplevel.lisp || die + + find . -type f -name .cvsignore -delete +} + +src_configure() { + # customizing SBCL version as per + # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup + echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + + if use pax_kernel ; then + # To disable PaX on hardened systems + pax-mark -mr "${bindir}"/src/runtime/sbcl + + # Hack to disable PaX on second GENESIS stage + sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \ + "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime" + fi + + # clear the environment to get rid of non-ASCII strings, see bug #174702 + # set HOME for paludis + env - HOME="${T}" PATH="${PATH}" \ + CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \ + CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \ + GNUMAKE=make ./make.sh \ + "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \ + || die "make failed" + + # need to set HOME because libpango(used by graphviz) complains about it + if use doc; then + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/manual info html || die "Cannot build manual" + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/internals info html || die "Cannot build internal docs" + fi +} + +src_test() { + ewarn "Unfortunately, it is known that some tests fail eg." + ewarn "run-program.impure.lisp. This is an issue of the upstream's" + ewarn "development and not of Gentoo's side. Please, before filing" + ewarn "any bug(s) search for older submissions. Thank you." + time ( cd tests && sh run-tests.sh ) +} + +src_install() { + # install system-wide initfile + dodir /etc/ + sed 's/^X//' > "${ED}"/etc/sbclrc <<-EOF + ;;; The following is required if you want source location functions to + ;;; work in SLIME, for example. + X + (setf (logical-pathname-translations "SYS") + X '(("SYS:SRC;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/src/**/*.*") + X ("SYS:CONTRIB;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/**/*.*"))) + X + ;;; Setup ASDF2 + (load "${EPREFIX}/etc/common-lisp/gentoo-init.lisp") + EOF + + # Install documentation + unset SBCL_HOME + INSTALL_ROOT="${ED}/usr" LIB_DIR="${EPREFIX}/usr/$(get_libdir)" DOC_DIR="${ED}/usr/share/doc/${PF}" \ + sh install.sh || die "install.sh failed" + + # bug #517008 + pax-mark -mr "${D}"/usr/bin/sbcl + + # rm empty directories lest paludis complain about this + find "${ED}" -empty -type d -exec rmdir -v {} + + + if use doc; then + dodoc -r doc/internals/sbcl-internals + + doinfo doc/manual/*.info* + doinfo doc/internals/sbcl-internals.info + + docinto internals-notes + dodoc doc/internals-notes/* + else + rm -Rv "${ED}/usr/share/doc/${PF}" || die + fi + + # install the SBCL source + if use source; then + ./clean.sh + cp -av src "${ED}/usr/$(get_libdir)/sbcl/" || die + fi + + # necessary for running newly-saved images + echo "SBCL_HOME=${EPREFIX}/usr/$(get_libdir)/${PN}" > "${ENVD}" + echo "SBCL_SOURCE_ROOT=${EPREFIX}/usr/$(get_libdir)/${PN}/src" >> "${ENVD}" + doenvd "${ENVD}" +} diff --git a/dev-lisp/sbcl/sbcl-2.0.3.ebuild b/dev-lisp/sbcl/sbcl-2.0.3.ebuild new file mode 100644 index 000000000000..819f9f5c7b1e --- /dev/null +++ b/dev-lisp/sbcl/sbcl-2.0.3.ebuild @@ -0,0 +1,246 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit multilib eutils flag-o-matic pax-utils toolchain-funcs + +#same order as http://www.sbcl.org/platform-table.html +BV_X86=1.4.3 +BV_AMD64=2.0.3 +BV_PPC=1.2.7 +BV_SPARC=1.0.28 +BV_ALPHA=1.0.28 +BV_ARM=1.4.11 +BV_ARM64=1.4.2 +BV_X86_MACOS=1.1.6 +BV_X64_MACOS=1.2.11 +BV_PPC_MACOS=1.0.47 +BV_X86_SOLARIS=1.2.7 +BV_X64_SOLARIS=1.2.7 +BV_SPARC_SOLARIS=1.0.23 + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp" +HOMEPAGE="http://sbcl.sourceforge.net/" +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2 + x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 ) + arm? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 ) + arm64? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM64}-arm64-linux-binary.tar.bz2 ) + x86-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_MACOS}-x86-darwin-binary.tar.bz2 ) + x64-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 ) + ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-binary.tar.bz2 ) + x86-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_SOLARIS}-x86-solaris-binary.tar.bz2 ) + x64-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 ) + sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-solaris-binary.tar.bz2 )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris" +IUSE="debug doc source +threads +unicode pax_kernel zlib" + +CDEPEND=">=dev-lisp/asdf-3.1:=" +DEPEND="${CDEPEND} + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + pax_kernel? ( sys-apps/elfix )" +RDEPEND="${CDEPEND} + !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )" + +# Disable warnings about executable stacks, as this won't be fixed soon by upstream +QA_EXECSTACK="usr/bin/sbcl" + +CONFIG="${S}/customize-target-features.lisp" +ENVD="${T}/50sbcl" + +# Prevent ASDF from using the system libraries +CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" +ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" + +usep() { + use ${1} && echo "true" || echo "false" +} + +sbcl_feature() { + echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}" +} + +sbcl_apply_features() { + sed 's/^X//' > "${CONFIG}" <<-'EOF' + (lambda (list) + X (flet ((enable (x) (pushnew x list)) + X (disable (x) (setf list (remove x list)))) + EOF + if use x86 || use amd64; then + sbcl_feature "$(usep threads)" ":sb-thread" + fi + sbcl_feature "true" ":sb-ldb" + sbcl_feature "false" ":sb-test" + sbcl_feature "$(usep unicode)" ":sb-unicode" + sbcl_feature "$(usep zlib)" ":sb-core-compression" + sbcl_feature "$(usep debug)" ":sb-xref-for-internals" + sed 's/^X//' >> "${CONFIG}" <<-'EOF' + X ) + X list) + EOF + cat "${CONFIG}" +} + +src_unpack() { + unpack ${A} + mv sbcl-*-* sbcl-binary || die + cd "${S}" +} + +src_prepare() { + # bug #468482 + eapply "${FILESDIR}"/concurrency-test-2.0.1.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}"/verbose-build-2.0.3.patch + + eapply_user + + # Make sure the *FLAGS variables are sane. + # sbcl needs symbols in resulting binaries, so building with the -s linker flag will fail. + strip-unsupported-flags + filter-flags -fomit-frame-pointer -Wl,-s + filter-ldflags -s + + # original bugs #526194, #620532 + # this broke no-pie default builds, c.f. bug #632670 + # Pass CFLAGS down by appending our value, to let users override + # the default values. + # Keep passing LDFLAGS down via the LINKFLAGS variable. + sed -e "s@\(CFLAGS += -g .*\)\$@\1 ${CFLAGS}@" \ + -e "s@LINKFLAGS += -g\$@LINKFLAGS += ${LDFLAGS}@" \ + -i src/runtime/GNUmakefile || die + + sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \ + -i make-config.sh || die + + # Use installed ASDF version + cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die + # Avoid installation of ASDF info page. See bug #605752 + sed '/INFOFILES/s/asdf.info//' -i doc/manual/Makefile || die + + use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk + + # Some shells(such as dash) don't have "time" as builtin + # and we don't want to DEPEND on sys-process/time + sed "s,^time ,," -i make.sh || die + sed "s,/lib,/$(get_libdir),g" -i install.sh || die + # #define SBCL_HOME ... + sed "s,/usr/local/lib,${EPREFIX}/usr/$(get_libdir),g" -i src/runtime/runtime.c || die + # change location of /etc/sbclrc ... + sed "s,/etc/sbclrc,${EPREFIX}/etc/sbclrc,g" -i src/code/toplevel.lisp || die + + find . -type f -name .cvsignore -delete +} + +src_configure() { + # customizing SBCL version as per + # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup + echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + + if use pax_kernel ; then + # To disable PaX on hardened systems + pax-mark -mr "${bindir}"/src/runtime/sbcl + + # Hack to disable PaX on second GENESIS stage + sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \ + "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime" + fi + + # clear the environment to get rid of non-ASCII strings, see bug #174702 + # set HOME for paludis + env - HOME="${T}" PATH="${PATH}" \ + CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \ + CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \ + GNUMAKE=make ./make.sh \ + "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \ + || die "make failed" + + # need to set HOME because libpango(used by graphviz) complains about it + if use doc; then + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/manual info html || die "Cannot build manual" + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/internals info html || die "Cannot build internal docs" + fi +} + +src_test() { + ewarn "Unfortunately, it is known that some tests fail eg." + ewarn "run-program.impure.lisp. This is an issue of the upstream's" + ewarn "development and not of Gentoo's side. Please, before filing" + ewarn "any bug(s) search for older submissions. Thank you." + time ( cd tests && sh run-tests.sh ) +} + +src_install() { + # install system-wide initfile + dodir /etc/ + sed 's/^X//' > "${ED}"/etc/sbclrc <<-EOF + ;;; The following is required if you want source location functions to + ;;; work in SLIME, for example. + X + (setf (logical-pathname-translations "SYS") + X '(("SYS:SRC;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/src/**/*.*") + X ("SYS:CONTRIB;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/**/*.*"))) + X + ;;; Setup ASDF2 + (load "${EPREFIX}/etc/common-lisp/gentoo-init.lisp") + EOF + + # Install documentation + unset SBCL_HOME + INSTALL_ROOT="${ED}/usr" LIB_DIR="${EPREFIX}/usr/$(get_libdir)" DOC_DIR="${ED}/usr/share/doc/${PF}" \ + sh install.sh || die "install.sh failed" + + # bug #517008 + pax-mark -mr "${D}"/usr/bin/sbcl + + # rm empty directories lest paludis complain about this + find "${ED}" -empty -type d -exec rmdir -v {} + + + if use doc; then + dodoc -r doc/internals/sbcl-internals + + doinfo doc/manual/*.info* + doinfo doc/internals/sbcl-internals.info + + docinto internals-notes + dodoc doc/internals-notes/* + else + rm -Rv "${ED}/usr/share/doc/${PF}" || die + fi + + # install the SBCL source + if use source; then + ./clean.sh + cp -av src "${ED}/usr/$(get_libdir)/sbcl/" || die + fi + + # necessary for running newly-saved images + echo "SBCL_HOME=${EPREFIX}/usr/$(get_libdir)/${PN}" > "${ENVD}" + echo "SBCL_SOURCE_ROOT=${EPREFIX}/usr/$(get_libdir)/${PN}/src" >> "${ENVD}" + doenvd "${ENVD}" +} diff --git a/dev-lisp/sbcl/sbcl-2.0.4.ebuild b/dev-lisp/sbcl/sbcl-2.0.4.ebuild new file mode 100644 index 000000000000..6c4368d0f07a --- /dev/null +++ b/dev-lisp/sbcl/sbcl-2.0.4.ebuild @@ -0,0 +1,246 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit multilib eutils flag-o-matic pax-utils toolchain-funcs + +#same order as http://www.sbcl.org/platform-table.html +BV_X86=1.4.3 +BV_AMD64=2.0.4 +BV_PPC=1.2.7 +BV_SPARC=1.0.28 +BV_ALPHA=1.0.28 +BV_ARM=1.4.11 +BV_ARM64=1.4.2 +BV_X86_MACOS=1.1.6 +BV_X64_MACOS=1.2.11 +BV_PPC_MACOS=1.0.47 +BV_X86_SOLARIS=1.2.7 +BV_X64_SOLARIS=1.2.7 +BV_SPARC_SOLARIS=1.0.23 + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp" +HOMEPAGE="http://sbcl.sourceforge.net/" +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2 + x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 ) + arm? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 ) + arm64? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM64}-arm64-linux-binary.tar.bz2 ) + x86-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_MACOS}-x86-darwin-binary.tar.bz2 ) + x64-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 ) + ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-binary.tar.bz2 ) + x86-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_SOLARIS}-x86-solaris-binary.tar.bz2 ) + x64-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 ) + sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-solaris-binary.tar.bz2 )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris" +IUSE="debug doc source +threads +unicode pax_kernel zlib" + +CDEPEND=">=dev-lisp/asdf-3.1:=" +DEPEND="${CDEPEND} + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + pax_kernel? ( sys-apps/elfix )" +RDEPEND="${CDEPEND} + !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )" + +# Disable warnings about executable stacks, as this won't be fixed soon by upstream +QA_EXECSTACK="usr/bin/sbcl" + +CONFIG="${S}/customize-target-features.lisp" +ENVD="${T}/50sbcl" + +# Prevent ASDF from using the system libraries +CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" +ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" + +usep() { + use ${1} && echo "true" || echo "false" +} + +sbcl_feature() { + echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}" +} + +sbcl_apply_features() { + sed 's/^X//' > "${CONFIG}" <<-'EOF' + (lambda (list) + X (flet ((enable (x) (pushnew x list)) + X (disable (x) (setf list (remove x list)))) + EOF + if use x86 || use amd64; then + sbcl_feature "$(usep threads)" ":sb-thread" + fi + sbcl_feature "true" ":sb-ldb" + sbcl_feature "false" ":sb-test" + sbcl_feature "$(usep unicode)" ":sb-unicode" + sbcl_feature "$(usep zlib)" ":sb-core-compression" + sbcl_feature "$(usep debug)" ":sb-xref-for-internals" + sed 's/^X//' >> "${CONFIG}" <<-'EOF' + X ) + X list) + EOF + cat "${CONFIG}" +} + +src_unpack() { + unpack ${A} + mv sbcl-*-* sbcl-binary || die + cd "${S}" +} + +src_prepare() { + # bug #468482 + eapply "${FILESDIR}"/concurrency-test-2.0.1.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}"/verbose-build-2.0.3.patch + + eapply_user + + # Make sure the *FLAGS variables are sane. + # sbcl needs symbols in resulting binaries, so building with the -s linker flag will fail. + strip-unsupported-flags + filter-flags -fomit-frame-pointer -Wl,-s + filter-ldflags -s + + # original bugs #526194, #620532 + # this broke no-pie default builds, c.f. bug #632670 + # Pass CFLAGS down by appending our value, to let users override + # the default values. + # Keep passing LDFLAGS down via the LINKFLAGS variable. + sed -e "s@\(CFLAGS += -g .*\)\$@\1 ${CFLAGS}@" \ + -e "s@LINKFLAGS += -g\$@LINKFLAGS += ${LDFLAGS}@" \ + -i src/runtime/GNUmakefile || die + + sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \ + -i make-config.sh || die + + # Use installed ASDF version + cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die + # Avoid installation of ASDF info page. See bug #605752 + sed '/INFOFILES/s/asdf.info//' -i doc/manual/Makefile || die + + use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk + + # Some shells(such as dash) don't have "time" as builtin + # and we don't want to DEPEND on sys-process/time + sed "s,^time ,," -i make.sh || die + sed "s,/lib,/$(get_libdir),g" -i install.sh || die + # #define SBCL_HOME ... + sed "s,/usr/local/lib,${EPREFIX}/usr/$(get_libdir),g" -i src/runtime/runtime.c || die + # change location of /etc/sbclrc ... + sed "s,/etc/sbclrc,${EPREFIX}/etc/sbclrc,g" -i src/code/toplevel.lisp || die + + find . -type f -name .cvsignore -delete +} + +src_configure() { + # customizing SBCL version as per + # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup + echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + + if use pax_kernel ; then + # To disable PaX on hardened systems + pax-mark -mr "${bindir}"/src/runtime/sbcl + + # Hack to disable PaX on second GENESIS stage + sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \ + "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime" + fi + + # clear the environment to get rid of non-ASCII strings, see bug #174702 + # set HOME for paludis + env - HOME="${T}" PATH="${PATH}" \ + CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \ + CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \ + GNUMAKE=make ./make.sh \ + "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \ + || die "make failed" + + # need to set HOME because libpango(used by graphviz) complains about it + if use doc; then + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/manual info html || die "Cannot build manual" + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/internals info html || die "Cannot build internal docs" + fi +} + +src_test() { + ewarn "Unfortunately, it is known that some tests fail eg." + ewarn "run-program.impure.lisp. This is an issue of the upstream's" + ewarn "development and not of Gentoo's side. Please, before filing" + ewarn "any bug(s) search for older submissions. Thank you." + time ( cd tests && sh run-tests.sh ) +} + +src_install() { + # install system-wide initfile + dodir /etc/ + sed 's/^X//' > "${ED}"/etc/sbclrc <<-EOF + ;;; The following is required if you want source location functions to + ;;; work in SLIME, for example. + X + (setf (logical-pathname-translations "SYS") + X '(("SYS:SRC;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/src/**/*.*") + X ("SYS:CONTRIB;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/**/*.*"))) + X + ;;; Setup ASDF2 + (load "${EPREFIX}/etc/common-lisp/gentoo-init.lisp") + EOF + + # Install documentation + unset SBCL_HOME + INSTALL_ROOT="${ED}/usr" LIB_DIR="${EPREFIX}/usr/$(get_libdir)" DOC_DIR="${ED}/usr/share/doc/${PF}" \ + sh install.sh || die "install.sh failed" + + # bug #517008 + pax-mark -mr "${D}"/usr/bin/sbcl + + # rm empty directories lest paludis complain about this + find "${ED}" -empty -type d -exec rmdir -v {} + + + if use doc; then + dodoc -r doc/internals/sbcl-internals + + doinfo doc/manual/*.info* + doinfo doc/internals/sbcl-internals.info + + docinto internals-notes + dodoc doc/internals-notes/* + else + rm -Rv "${ED}/usr/share/doc/${PF}" || die + fi + + # install the SBCL source + if use source; then + ./clean.sh + cp -av src "${ED}/usr/$(get_libdir)/sbcl/" || die + fi + + # necessary for running newly-saved images + echo "SBCL_HOME=${EPREFIX}/usr/$(get_libdir)/${PN}" > "${ENVD}" + echo "SBCL_SOURCE_ROOT=${EPREFIX}/usr/$(get_libdir)/${PN}/src" >> "${ENVD}" + doenvd "${ENVD}" +} diff --git a/dev-lisp/sbcl/sbcl-2.0.5.ebuild b/dev-lisp/sbcl/sbcl-2.0.5.ebuild new file mode 100644 index 000000000000..8db97f2a1f77 --- /dev/null +++ b/dev-lisp/sbcl/sbcl-2.0.5.ebuild @@ -0,0 +1,246 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit multilib eutils flag-o-matic pax-utils toolchain-funcs + +#same order as http://www.sbcl.org/platform-table.html +BV_X86=1.4.3 +BV_AMD64=2.0.5 +BV_PPC=1.2.7 +BV_SPARC=1.0.28 +BV_ALPHA=1.0.28 +BV_ARM=1.4.11 +BV_ARM64=1.4.2 +BV_X86_MACOS=1.1.6 +BV_X64_MACOS=1.2.11 +BV_PPC_MACOS=1.0.47 +BV_X86_SOLARIS=1.2.7 +BV_X64_SOLARIS=1.2.7 +BV_SPARC_SOLARIS=1.0.23 + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp" +HOMEPAGE="http://sbcl.sourceforge.net/" +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2 + x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 ) + arm? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 ) + arm64? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM64}-arm64-linux-binary.tar.bz2 ) + x86-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_MACOS}-x86-darwin-binary.tar.bz2 ) + x64-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 ) + ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-binary.tar.bz2 ) + x86-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_SOLARIS}-x86-solaris-binary.tar.bz2 ) + x64-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 ) + sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-solaris-binary.tar.bz2 )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris" +IUSE="debug doc source +threads +unicode pax_kernel zlib" + +CDEPEND=">=dev-lisp/asdf-3.1:=" +DEPEND="${CDEPEND} + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + pax_kernel? ( sys-apps/elfix )" +RDEPEND="${CDEPEND} + !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )" + +# Disable warnings about executable stacks, as this won't be fixed soon by upstream +QA_EXECSTACK="usr/bin/sbcl" + +CONFIG="${S}/customize-target-features.lisp" +ENVD="${T}/50sbcl" + +# Prevent ASDF from using the system libraries +CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" +ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" + +usep() { + use ${1} && echo "true" || echo "false" +} + +sbcl_feature() { + echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}" +} + +sbcl_apply_features() { + sed 's/^X//' > "${CONFIG}" <<-'EOF' + (lambda (list) + X (flet ((enable (x) (pushnew x list)) + X (disable (x) (setf list (remove x list)))) + EOF + if use x86 || use amd64; then + sbcl_feature "$(usep threads)" ":sb-thread" + fi + sbcl_feature "true" ":sb-ldb" + sbcl_feature "false" ":sb-test" + sbcl_feature "$(usep unicode)" ":sb-unicode" + sbcl_feature "$(usep zlib)" ":sb-core-compression" + sbcl_feature "$(usep debug)" ":sb-xref-for-internals" + sed 's/^X//' >> "${CONFIG}" <<-'EOF' + X ) + X list) + EOF + cat "${CONFIG}" +} + +src_unpack() { + unpack ${A} + mv sbcl-*-* sbcl-binary || die + cd "${S}" +} + +src_prepare() { + # bug #468482 + eapply "${FILESDIR}"/concurrency-test-2.0.1.patch + # bugs #486552, #527666, #517004 + eapply "${FILESDIR}"/bsd-sockets-test-2.0.5.patch + # bugs #560276, #561018 + eapply "${FILESDIR}"/sb-posix-test-1.2.15.patch + + eapply "${FILESDIR}"/${PN}-1.2.11-solaris.patch + eapply "${FILESDIR}"/verbose-build-2.0.3.patch + + eapply_user + + # Make sure the *FLAGS variables are sane. + # sbcl needs symbols in resulting binaries, so building with the -s linker flag will fail. + strip-unsupported-flags + filter-flags -fomit-frame-pointer -Wl,-s + filter-ldflags -s + + # original bugs #526194, #620532 + # this broke no-pie default builds, c.f. bug #632670 + # Pass CFLAGS down by appending our value, to let users override + # the default values. + # Keep passing LDFLAGS down via the LINKFLAGS variable. + sed -e "s@\(CFLAGS += -g .*\)\$@\1 ${CFLAGS}@" \ + -e "s@LINKFLAGS += -g\$@LINKFLAGS += ${LDFLAGS}@" \ + -i src/runtime/GNUmakefile || die + + sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \ + -i make-config.sh || die + + # Use installed ASDF version + cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die + # Avoid installation of ASDF info page. See bug #605752 + sed '/INFOFILES/s/asdf.info//' -i doc/manual/Makefile || die + + use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk + + # Some shells(such as dash) don't have "time" as builtin + # and we don't want to DEPEND on sys-process/time + sed "s,^time ,," -i make.sh || die + sed "s,/lib,/$(get_libdir),g" -i install.sh || die + # #define SBCL_HOME ... + sed "s,/usr/local/lib,${EPREFIX}/usr/$(get_libdir),g" -i src/runtime/runtime.c || die + # change location of /etc/sbclrc ... + sed "s,/etc/sbclrc,${EPREFIX}/etc/sbclrc,g" -i src/code/toplevel.lisp || die + + find . -type f -name .cvsignore -delete +} + +src_configure() { + # customizing SBCL version as per + # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup + echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + + if use pax_kernel ; then + # To disable PaX on hardened systems + pax-mark -mr "${bindir}"/src/runtime/sbcl + + # Hack to disable PaX on second GENESIS stage + sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \ + "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime" + fi + + # clear the environment to get rid of non-ASCII strings, see bug #174702 + # set HOME for paludis + env - HOME="${T}" PATH="${PATH}" \ + CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \ + CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \ + GNUMAKE=make ./make.sh \ + "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \ + || die "make failed" + + # need to set HOME because libpango(used by graphviz) complains about it + if use doc; then + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/manual info html || die "Cannot build manual" + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/internals info html || die "Cannot build internal docs" + fi +} + +src_test() { + ewarn "Unfortunately, it is known that some tests fail eg." + ewarn "run-program.impure.lisp. This is an issue of the upstream's" + ewarn "development and not of Gentoo's side. Please, before filing" + ewarn "any bug(s) search for older submissions. Thank you." + time ( cd tests && sh run-tests.sh ) +} + +src_install() { + # install system-wide initfile + dodir /etc/ + sed 's/^X//' > "${ED}"/etc/sbclrc <<-EOF + ;;; The following is required if you want source location functions to + ;;; work in SLIME, for example. + X + (setf (logical-pathname-translations "SYS") + X '(("SYS:SRC;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/src/**/*.*") + X ("SYS:CONTRIB;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/**/*.*"))) + X + ;;; Setup ASDF2 + (load "${EPREFIX}/etc/common-lisp/gentoo-init.lisp") + EOF + + # Install documentation + unset SBCL_HOME + INSTALL_ROOT="${ED}/usr" LIB_DIR="${EPREFIX}/usr/$(get_libdir)" DOC_DIR="${ED}/usr/share/doc/${PF}" \ + sh install.sh || die "install.sh failed" + + # bug #517008 + pax-mark -mr "${D}"/usr/bin/sbcl + + # rm empty directories lest paludis complain about this + find "${ED}" -empty -type d -exec rmdir -v {} + + + if use doc; then + dodoc -r doc/internals/sbcl-internals + + doinfo doc/manual/*.info* + doinfo doc/internals/sbcl-internals.info + + docinto internals-notes + dodoc doc/internals-notes/* + else + rm -Rv "${ED}/usr/share/doc/${PF}" || die + fi + + # install the SBCL source + if use source; then + ./clean.sh + cp -av src "${ED}/usr/$(get_libdir)/sbcl/" || die + fi + + # necessary for running newly-saved images + echo "SBCL_HOME=${EPREFIX}/usr/$(get_libdir)/${PN}" > "${ENVD}" + echo "SBCL_SOURCE_ROOT=${EPREFIX}/usr/$(get_libdir)/${PN}/src" >> "${ENVD}" + doenvd "${ENVD}" +} diff --git a/dev-lisp/trivial-gray-streams/Manifest b/dev-lisp/trivial-gray-streams/Manifest new file mode 100644 index 000000000000..c9f35cfbfbbd --- /dev/null +++ b/dev-lisp/trivial-gray-streams/Manifest @@ -0,0 +1 @@ +DIST trivial-gray-streams-20170830.tar.bz2 7520 BLAKE2B 2080b9ee30249c61c21f88663a247323afe2854c6444467d68fbdc42df9b8868cc49c305ab319ca88cf37ee8b0d423681c01174bb2a26d373a0c9427f2ad8e4e SHA512 4fbcfff5f2875daaf9c9bb286e2f753fccbb9840bb3c3593b9755204475aaf34241c1ffc2c93b5bf2c3428400e91082b01f15812eb51251afcabe9a57d5df3fa diff --git a/dev-lisp/trivial-gray-streams/metadata.xml b/dev-lisp/trivial-gray-streams/metadata.xml new file mode 100644 index 000000000000..a1f8e41e6e61 --- /dev/null +++ b/dev-lisp/trivial-gray-streams/metadata.xml @@ -0,0 +1,13 @@ +<?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> + <origin>gentoo-staging</origin> +</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..112e97ce168f --- /dev/null +++ b/dev-lisp/uiop/Manifest @@ -0,0 +1,3 @@ +DIST asdf-3.1.5.tar.gz 400359 BLAKE2B 586a66799a37259694baa673f2849e183fac5fedfe5ff5c92529d47fc0954d40b48bbc095db926b9ea2214b551729c269d0925e4396a52310b72fd5f21842f49 SHA512 937d45eabea0853cd1b2e78e84cf33e7b55065857ffcf49fd87ccd60e21ae09c6dc7ab3649d48b37aeb1beaeeaf6c816e5ce035f0283707105296fb976044516 +DIST asdf-3.3.1.tar.gz 479255 BLAKE2B 5161b79741a52721eaa4da80a61bbe51e924967ecb744a087fdcbd99407abcc42faf39eafe6d30af7dd8af751a80caaf23e93ce42aa5f584123a1e8b528cc613 SHA512 bf5efec4518eb5312ce743c0fbe60c587bebfe26c36c833c163d67bf8631e18eeb293f2185e547f6be10da061a17f024d9f4a3a0808727d7b9b3a7d7a0faf133 +DIST uiop-3.3.2.tar.gz 98207 BLAKE2B a003fabde2ee66244e48caa5ae319fb7ce872dc72cdb8f66c39cfa97a5fc5307de667b48a403432cc3c5cf3d8bfa2e3d330ee91b6251add532ec462d0c4c1d29 SHA512 3af6bfc7d0aa6ee102d3d9cbef3277026d9d7ac4811f6c966b4a9f84ab1e0f128822bddcf8b221288a3c895fc5be377f0ae907e2a08f38e6b09f36e5b4635ecc diff --git a/dev-lisp/uiop/metadata.xml b/dev-lisp/uiop/metadata.xml new file mode 100644 index 000000000000..136dc046ea75 --- /dev/null +++ b/dev-lisp/uiop/metadata.xml @@ -0,0 +1,9 @@ +<?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> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-lisp/uiop/uiop-3.1.5.ebuild b/dev-lisp/uiop/uiop-3.1.5.ebuild new file mode 100644 index 000000000000..b78cf1fb0b7a --- /dev/null +++ b/dev-lisp/uiop/uiop-3.1.5.ebuild @@ -0,0 +1,26 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 +inherit eutils + +DESCRIPTION="UIOP is a portability layer spun off ASDF3" +HOMEPAGE="http://common-lisp.net/project/asdf/" +SRC_URI="http://common-lisp.net/project/asdf/archives/asdf-${PV}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha amd64 ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris" +IUSE="" + +RDEPEND="~dev-lisp/asdf-${PV}" + +S="${WORKDIR}/asdf-${PV}/${PN}" + +src_install() { + insinto /usr/share/common-lisp/source/${PN} + doins -r contrib *.lisp ../version.lisp-expr uiop.asd asdf-driver.asd + dodir /usr/share/common-lisp/systems + dosym /usr/share/common-lisp/source/${PN}/uiop.asd /usr/share/common-lisp/systems/uiop.asd + dosym /usr/share/common-lisp/source/${PN}/asdf-driver.asd /usr/share/common-lisp/systems/asdf-driver.asd +} diff --git a/dev-lisp/uiop/uiop-3.3.1.ebuild b/dev-lisp/uiop/uiop-3.3.1.ebuild new file mode 100644 index 000000000000..354fca8768ef --- /dev/null +++ b/dev-lisp/uiop/uiop-3.3.1.ebuild @@ -0,0 +1,27 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit common-lisp-3 + +DESCRIPTION="UIOP is a portability layer spun off ASDF3" +HOMEPAGE="http://common-lisp.net/project/asdf/" +SRC_URI="http://common-lisp.net/project/asdf/archives/asdf-${PV}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris" +IUSE="" + +RDEPEND="~dev-lisp/asdf-${PV}" + +S="${WORKDIR}/asdf-${PV}/${PN}" + +src_install() { + insinto "${CLSOURCEROOT}/${PN}" + doins -r contrib *.lisp ../version.lisp-expr "${PN}.asd" asdf-driver.asd + dodir "${CLSYSTEMROOT}" + dosym "${CLSOURCEROOT}/${PN}/${PN}.asd" "${CLSYSTEMROOT}/${PN}.asd" + dosym "${CLSOURCEROOT}/${PN}/asdf-driver.asd" "${CLSYSTEMROOT}/asdf-driver.asd" +} diff --git a/dev-lisp/uiop/uiop-3.3.2.ebuild b/dev-lisp/uiop/uiop-3.3.2.ebuild new file mode 100644 index 000000000000..7b084004812d --- /dev/null +++ b/dev-lisp/uiop/uiop-3.3.2.ebuild @@ -0,0 +1,17 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit common-lisp-3 + +DESCRIPTION="UIOP is a portability layer spun off ASDF3" +HOMEPAGE="http://common-lisp.net/project/asdf/" +SRC_URI="http://common-lisp.net/project/asdf/archives/${P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris" +IUSE="" + +RDEPEND="~dev-lisp/asdf-${PV}" |
