diff options
| author | root <root@alpha.trunkmasters.com> | 2026-06-04 05:48:38 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-06-04 05:48:38 -0500 |
| commit | bfd9c39e4712ebdb442d4ca0673061faed1e70e1 (patch) | |
| tree | 0d7a74b4463ee387f9cf9368ceb1b757f694f72a /dev-lisp | |
| parent | f716a9fe6455d39eef01e718aae68dae61c19704 (diff) | |
| download | baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.gz baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.xz baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.zip | |
Revert "Adding metadata"
This reverts commit f716a9fe6455d39eef01e718aae68dae61c19704.
Diffstat (limited to 'dev-lisp')
97 files changed, 4472 insertions, 0 deletions
diff --git a/dev-lisp/abcl/Manifest b/dev-lisp/abcl/Manifest new file mode 100644 index 000000000000..89a514e279b3 --- /dev/null +++ b/dev-lisp/abcl/Manifest @@ -0,0 +1,2 @@ +DIST abcl-src-1.10.0.tar.gz 2468764 BLAKE2B 3931581733d1ca34f9549381734a6f866c9656e055e2c7324a868636c421faddaf5247f9710e4cfde5aa9073dea0cc1eff38d4458043dced88ddb387509c52e4 SHA512 53ca1770a94d6cdb3cb0061e13ad63667e97a0efcb58aa81043890e9ee5e057555423a8fcf94e3b12dc350f9fa2ea26b75937a02f1a572221b59d40325a0b85e +DIST abcl-src-1.9.3.tar.gz 2490465 BLAKE2B faa42892b5bcd8b4e2b931060a3c1889350ed1041c4c5d159b400b780feaa6bc1f854595be8fa7d777a82fe1b11bae756f1db309f333e210cb4cb90428b0a923 SHA512 1d4df4baf71252e6eb07045c50118dd4de08470978d743abe146bcc9dbcaace166b9bba9b4adf250446439ceb8534087acd8da2913b1469bca430e3684e96bc4 diff --git a/dev-lisp/abcl/abcl-1.10.0.ebuild b/dev-lisp/abcl/abcl-1.10.0.ebuild new file mode 100644 index 000000000000..3e24bfd92bff --- /dev/null +++ b/dev-lisp/abcl/abcl-1.10.0.ebuild @@ -0,0 +1,34 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +inherit java-pkg-2 + +DESCRIPTION="Armed Bear Common Lisp is a Common Lisp implementation for the JVM" +HOMEPAGE="https://abcl.org" +SRC_URI="https://abcl.org/releases/${PV}/abcl-src-${PV}.tar.gz" +S="${WORKDIR}/abcl-src-${PV}" + +LICENSE="GPL-2-with-classpath-exception" +SLOT="0" +KEYWORDS="~amd64" + +BDEPEND=">=dev-java/ant-1.10.15-r1:0" +DEPEND=">=virtual/jdk-1.8:*" +RDEPEND=">=virtual/jre-1.8:*" + +src_compile() { + local targets=( abcl.compile abcl.jar ) + eant \ + -Dant.build.javac.source="$(java-pkg_get-source)" \ + -Dant.build.javac.target="$(java-pkg_get-target)" \ + "${targets[@]}" +} + +src_install() { + java-pkg_dojar dist/abcl.jar dist/abcl-contrib.jar + java-pkg_dolauncher ${PN} --java_args "-server -Xrs" --main org.armedbear.lisp.Main + + einstalldocs +} diff --git a/dev-lisp/abcl/abcl-1.9.3-r1.ebuild b/dev-lisp/abcl/abcl-1.9.3-r1.ebuild new file mode 100644 index 000000000000..01fd906e97f5 --- /dev/null +++ b/dev-lisp/abcl/abcl-1.9.3-r1.ebuild @@ -0,0 +1,34 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +inherit java-pkg-2 + +DESCRIPTION="Armed Bear Common Lisp is a Common Lisp implementation for the JVM" +HOMEPAGE="https://abcl.org" +SRC_URI="https://abcl.org/releases/${PV}/abcl-src-${PV}.tar.gz" +S="${WORKDIR}/abcl-src-${PV}" + +LICENSE="GPL-2-with-classpath-exception" +SLOT="0" +KEYWORDS="amd64" + +BDEPEND=">=dev-java/ant-1.10.15-r1:0" +DEPEND=">=virtual/jdk-1.8:*" +RDEPEND=">=virtual/jre-1.8:*" + +src_compile() { + local targets=( abcl.compile abcl.jar ) + eant \ + -Dant.build.javac.source="$(java-pkg_get-source)" \ + -Dant.build.javac.target="$(java-pkg_get-target)" \ + "${targets[@]}" +} + +src_install() { + java-pkg_dojar dist/abcl.jar dist/abcl-contrib.jar + java-pkg_dolauncher ${PN} --java_args "-server -Xrs" --main org.armedbear.lisp.Main + + einstalldocs +} diff --git a/dev-lisp/abcl/metadata.xml b/dev-lisp/abcl/metadata.xml new file mode 100644 index 000000000000..66fa0ac73e12 --- /dev/null +++ b/dev-lisp/abcl/metadata.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://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> + <upstream> + <bugs-to>https://abcl.org/trac/report/1</bugs-to> + <remote-id type="github">armedbear/abcl</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lisp/alexandria/Manifest b/dev-lisp/alexandria/Manifest new file mode 100644 index 000000000000..300a98810ff7 --- /dev/null +++ b/dev-lisp/alexandria/Manifest @@ -0,0 +1 @@ +DIST alexandria-v1.4.tar.gz 57634 BLAKE2B e552d44f0b4db326f09246f88af57ccd233dbb3b4354d2b9a55c8b9ddaf441016010fb4645f32ad0fbc82fb6755957fe7c989c67af62dd04f39baf78478e4b1c SHA512 4343be8eb2bac1924aaa8c890895aa885205af4c84110d7f8ceaf6c9ba1390e6037ffa3697fd1630266aede01bb596fd84c332ca43ded80326795637583332af diff --git a/dev-lisp/alexandria/alexandria-1.4.ebuild b/dev-lisp/alexandria/alexandria-1.4.ebuild new file mode 100644 index 000000000000..e1ecae812700 --- /dev/null +++ b/dev-lisp/alexandria/alexandria-1.4.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit common-lisp-3 + +DESCRIPTION="A collection of portable utilities for Common Lisp" +HOMEPAGE="http://common-lisp.net/project/alexandria/ https://gitlab.common-lisp.net/alexandria/alexandria" +SRC_URI="https://gitlab.common-lisp.net/${PN}/${PN}/-/archive/v${PV}/${PN}-v${PV}.tar.gz" +S="${WORKDIR}/${PN}-v${PV}" + +LICENSE="public-domain" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~sparc ~x86" +IUSE="doc" + +# sbcl is hardcoded in Makefile +BDEPEND="doc? ( + dev-lisp/sbcl + sys-apps/texinfo +) +" + +DOCS=( README AUTHORS ) + +src_compile() { + use doc && emake -C doc +} + +src_install() { + common-lisp-install-sources -t all alexandria-1 alexandria-2 LICENCE + common-lisp-install-asdf + if use doc; then + doinfo doc/${PN}.info + HTML_DOCS=( doc/{"${PN}.html","${PN}.pdf"} ) + fi + einstalldocs +} diff --git a/dev-lisp/alexandria/metadata.xml b/dev-lisp/alexandria/metadata.xml new file mode 100644 index 000000000000..399d58f7d271 --- /dev/null +++ b/dev-lisp/alexandria/metadata.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>common-lisp@gentoo.org</email> + <name>Gentoo Common Lisp Project</name> + </maintainer> + <longdescription lang="en"> + Alexandria is a project and a library. + + As a project Alexandria's goal is to reduce duplication of effort and + improve portability of Common Lisp code according to its own + idiosyncratic and rather conservative aesthetic. What this actually + means is open to debate, but each project member has a veto on all + project activities, so a degree of conservativism is inevitable. + + As a library Alexandria is one of the means by which the project + strives for its goals. Alexandria is a collection of portable public + domain utilities that meet the following constraints: + + * Utilities, not extensions: Alexandria will not contain conceptual + extensions to Common Lisp, instead limiting itself to tools and + utilities that fit well within the framework of standard ANSI Common + Lisp. Test-frameworks, system definitions, logging facilities, + serialization layers, etc. are all outside the scope of Alexandria + as a library, though well within the scope of Alexandria as a project. + * Conservative: Alexandria limits itself to what project members + consider conservative utilities. Alexandria does not and will not + include anaphoric constructs, loop-like binding macros, etc. + * Portable: Alexandria limits itself to portable parts of Common + Lisp. Even apparently conservative and usefull functions remain + outside the scope of Alexandria if they cannot be implemented + portably. Portability is here defined as portable within a + conforming implementation: implementation bugs are not considered + portability issues. + * Team player: Alexandria will not (initially, at least) subsume + or provide functionality for which good-quality special-purpose + packages exist, like split-sequence. Instead, third party packages + such as that may be "blessed". + </longdescription> + <upstream> + <remote-id type="gitlab">alexandria/alexandria</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lisp/asdf/Manifest b/dev-lisp/asdf/Manifest new file mode 100644 index 000000000000..730b60d701ee --- /dev/null +++ b/dev-lisp/asdf/Manifest @@ -0,0 +1 @@ +DIST asdf-3.3.5.tar.gz 520233 BLAKE2B 59697b9c6a691c43efe47c0e6d9fed5b8a0f2f2432f10cb58a643857bc3d332b730b180d5d13e87656b9106eab7787359ecd3b854447f5d9c8a871b3a1510448 SHA512 27221bbf798c94e427b8e2c0e8ecb5384102dd5f8f5d2cc18c2e3d44e0aa2f3b79538e0f2cb589442eb493abe00c8a63a04f6c1558979b78cd00165c6b33103b diff --git a/dev-lisp/asdf/asdf-3.3.5-r1.ebuild b/dev-lisp/asdf/asdf-3.3.5-r1.ebuild new file mode 100644 index 000000000000..c6230b834fc0 --- /dev/null +++ b/dev-lisp/asdf/asdf-3.3.5-r1.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit prefix common-lisp-3 + +DESCRIPTION="ASDF is Another System Definition Facility for Common Lisp" +HOMEPAGE="https://asdf.common-lisp.dev/" +SRC_URI="https://asdf.common-lisp.dev/archives/${P}.tar.gz" + +LICENSE="MIT" +SLOT="0/${PVR}" +KEYWORDS="~alpha amd64 ~mips ppc ppc64 ~riscv ~sparc x86 ~x64-macos" +IUSE="doc test" +RESTRICT="!test? ( test )" + +BDEPEND="doc? ( virtual/texi2dvi ) + test? ( virtual/commonlisp )" +PDEPEND="virtual/commonlisp + ~dev-lisp/uiop-${PV}" + +PATCHES=( + # bug 841335, drop on next version bump + "${FILESDIR}"/${PN}-3.3.5-test-utilities.patch +) + +install_docs() { + ( + cd doc || die + dodoc *.{html,css,ico,png} ${PN}.pdf + doinfo ${PN}.info + + # texinfo-7 renamed the dir from asdf to asdf_html #883439 + if [[ -d asdf_html ]]; then + dodoc -r asdf_html + else + docinto asdf_html + dodoc -r asdf/. + fi + ) +} + +src_compile() { + emake + + use doc && emake -C doc +} + +src_test() { + common-lisp-export-impl-args "$(common-lisp-find-lisp-impl)" + + rm test/test-program.script || die + + # sbcl in common-lisp.eclass has --non-interactive in the binary name + # which seems to break this? + test/run-tests.sh ${CL_BINARY/--non-interactive/} || die +} + +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/asdf-3.3.5-test-utilities.patch b/dev-lisp/asdf/files/asdf-3.3.5-test-utilities.patch new file mode 100644 index 000000000000..d8529d16823d --- /dev/null +++ b/dev-lisp/asdf/files/asdf-3.3.5-test-utilities.patch @@ -0,0 +1,27 @@ +https://bugs.gentoo.org/841335 +Taken from https://github.com/roswell/asdf/commit/fd289d99d1c76601fb310f8ca26a48f807337c8d + +From fd289d99d1c76601fb310f8ca26a48f807337c8d Mon Sep 17 00:00:00 2001 +From: "Robert P. Goldman" <rpgoldman@sift.net> +Date: Fri, 2 Jul 2021 15:57:34 -0500 +Subject: [PATCH] Fix garbled test. + +By accident a bad test slipped into a commit: this was due to my not +understanding how `with-expected-failure` works. +--- + test/test-utilities.script | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test/test-utilities.script b/test/test-utilities.script +index 09a03347..b1e00fa5 100644 +--- a/test/test-utilities.script ++++ b/test/test-utilities.script +@@ -342,7 +342,7 @@ + ;; (assert (directory-exists-p oddball-pathname)) + ;; (pathname oddball-namestring) + ;; (assert-equal nil (uiop:subdirectories oddball-namestring)) +-(with-expected-failure ("UIOP:SUBDIRECTORIES does not handle non-standard pathnames.") ++(with-expected-failure (#+(or sbcl cmucl) t) + (assert-equal nil (uiop:subdirectories "/[foo"))) + + (DBG "check to make sure WITH-CURRENT-DIRECTORY checks its parameter for directory pathname") 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..4de45c7d62d6 --- /dev/null +++ b/dev-lisp/asdf/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="project"> + <email>common-lisp@gentoo.org</email> + <name>Gentoo Common Lisp Project</name> +</maintainer> +</pkgmetadata> diff --git a/dev-lisp/c2ffi/Manifest b/dev-lisp/c2ffi/Manifest new file mode 100644 index 000000000000..8cfbd5ed8e6b --- /dev/null +++ b/dev-lisp/c2ffi/Manifest @@ -0,0 +1 @@ +DIST c2ffi-21.1.0.20260104.tar.gz 44622 BLAKE2B 689b8ac28b51ac858923f8ee790ba6efde6d737317b38e8665f756942a23b28971538aa33bf1659c6a14a3a0c8b80a0d6a0586d209b71fa84d36d7835c4d5f84 SHA512 08b22a5212b2b99b87ae0f9bb47ba7b69d799f85a862e96990b175fa3882be96c6a829d4388b4efa34ac1d821da83a443d74d785ba3d53d7aaeee16d9e0b24f4 diff --git a/dev-lisp/c2ffi/c2ffi-21.1.0.20260104.ebuild b/dev-lisp/c2ffi/c2ffi-21.1.0.20260104.ebuild new file mode 100644 index 000000000000..cb0f01368670 --- /dev/null +++ b/dev-lisp/c2ffi/c2ffi-21.1.0.20260104.ebuild @@ -0,0 +1,31 @@ +# Copyright 2019-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 21 ) + +inherit cmake llvm-r2 + +MY_COMMIT="f52a6c90651cd5f2f5239b67b41fb9a7e4de1f2e" + +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" +S="${WORKDIR}/c2ffi-${MY_COMMIT}" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64" + +DEPEND=" + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT}= + llvm-core/llvm:${LLVM_SLOT}= + ') +" +RDEPEND="${DEPEND}" + +pkg_setup() { + llvm-r2_pkg_setup +} diff --git a/dev-lisp/c2ffi/metadata.xml b/dev-lisp/c2ffi/metadata.xml new file mode 100644 index 000000000000..3350a5603a7e --- /dev/null +++ b/dev-lisp/c2ffi/metadata.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="person" proxied="yes"> + <email>h.judt@gmx.at</email> + <name>Harald Judt</name> +</maintainer> +<maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> +</maintainer> +<upstream> + <remote-id type="github">rpav/c2ffi</remote-id> +</upstream> +</pkgmetadata> diff --git a/dev-lisp/cl-ppcre-unicode/Manifest b/dev-lisp/cl-ppcre-unicode/Manifest new file mode 100644 index 000000000000..47eafcd5ee1a --- /dev/null +++ b/dev-lisp/cl-ppcre-unicode/Manifest @@ -0,0 +1,2 @@ +DIST cl-ppcre-2.1.0.tar.gz 159051 BLAKE2B d1b9dd93c3f4c4c3a23a7c01f28cc4a8cc8543bfa3280f60b53d61dadb377f9e45c0f79592323bb7dcaf06721d899159f958f5b7d391370eeb5c6ede81a7a0cd SHA512 c9c95c58628fd5ecebf6e24e0c26913719360c325e90e78c256d1306eb8c2cbe85a2a5f617fdb6c2a7091bd80f4021ad0d294371b2696ad8e5873eca13aab866 +DIST cl-ppcre-2.1.2.tar.gz 159376 BLAKE2B 73ca66402066401e52bc685bf2cd1a66a15b7688e3415ffa1eac2de28bbc577808752122bcb56967c061a83a547046bd3c2667fbaa5dc37d135b6cf67f29e10b SHA512 bfcea40b251a21861dae4883f6d5b277626ae2bed86fb895173e011bdf35a289eee949a3a87b3e83ed123ae22f2a19268038e624b378fd98d28855dda9e11f78 diff --git a/dev-lisp/cl-ppcre-unicode/cl-ppcre-unicode-2.1.0-r1.ebuild b/dev-lisp/cl-ppcre-unicode/cl-ppcre-unicode-2.1.0-r1.ebuild new file mode 100644 index 000000000000..5486feaaf190 --- /dev/null +++ b/dev-lisp/cl-ppcre-unicode/cl-ppcre-unicode-2.1.0-r1.ebuild @@ -0,0 +1,25 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit common-lisp-3 + +DESCRIPTION="CL-PPCRE is a portable regular expression library for Common Lisp" +HOMEPAGE="https://edicl.github.io/cl-ppcre/ + https://www.cliki.net/cl-ppcre" + +SRC_URI="https://github.com/edicl/cl-ppcre/archive/v${PV}.tar.gz -> cl-ppcre-${PV}.tar.gz" +S="${WORKDIR}/cl-ppcre-${PV}" + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="amd64 ~ppc ~sparc x86" + +RDEPEND="~dev-lisp/cl-ppcre-${PV} + dev-lisp/cl-unicode" + +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.2.ebuild b/dev-lisp/cl-ppcre-unicode/cl-ppcre-unicode-2.1.2.ebuild new file mode 100644 index 000000000000..eaade7fa1679 --- /dev/null +++ b/dev-lisp/cl-ppcre-unicode/cl-ppcre-unicode-2.1.2.ebuild @@ -0,0 +1,25 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit common-lisp-3 + +DESCRIPTION="CL-PPCRE is a portable regular expression library for Common Lisp" +HOMEPAGE="https://edicl.github.io/cl-ppcre/ + https://www.cliki.net/cl-ppcre" + +SRC_URI="https://github.com/edicl/cl-ppcre/archive/v${PV}.tar.gz -> cl-ppcre-${PV}.tar.gz" +S="${WORKDIR}/cl-ppcre-${PV}" + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="amd64 ~ppc ~riscv ~sparc x86" + +RDEPEND="~dev-lisp/cl-ppcre-${PV} + dev-lisp/cl-unicode" + +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..a75d4513576b --- /dev/null +++ b/dev-lisp/cl-ppcre-unicode/metadata.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>common-lisp@gentoo.org</email> + <name>Gentoo Common Lisp Project</name> + </maintainer> + <longdescription> + CL-PPCRE is a portable regular expression library for Common Lisp + which has the following features: + + * compatible with Perl + * fast (outperforms Perl) + * portable (ANSI Common Lisp) + * thread-safe + * includes convenience features + * well-documented. + </longdescription> + <upstream> + <remote-id type="github">edicl/cl-ppcre</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lisp/cl-ppcre/Manifest b/dev-lisp/cl-ppcre/Manifest new file mode 100644 index 000000000000..47eafcd5ee1a --- /dev/null +++ b/dev-lisp/cl-ppcre/Manifest @@ -0,0 +1,2 @@ +DIST cl-ppcre-2.1.0.tar.gz 159051 BLAKE2B d1b9dd93c3f4c4c3a23a7c01f28cc4a8cc8543bfa3280f60b53d61dadb377f9e45c0f79592323bb7dcaf06721d899159f958f5b7d391370eeb5c6ede81a7a0cd SHA512 c9c95c58628fd5ecebf6e24e0c26913719360c325e90e78c256d1306eb8c2cbe85a2a5f617fdb6c2a7091bd80f4021ad0d294371b2696ad8e5873eca13aab866 +DIST cl-ppcre-2.1.2.tar.gz 159376 BLAKE2B 73ca66402066401e52bc685bf2cd1a66a15b7688e3415ffa1eac2de28bbc577808752122bcb56967c061a83a547046bd3c2667fbaa5dc37d135b6cf67f29e10b SHA512 bfcea40b251a21861dae4883f6d5b277626ae2bed86fb895173e011bdf35a289eee949a3a87b3e83ed123ae22f2a19268038e624b378fd98d28855dda9e11f78 diff --git a/dev-lisp/cl-ppcre/cl-ppcre-2.1.0-r1.ebuild b/dev-lisp/cl-ppcre/cl-ppcre-2.1.0-r1.ebuild new file mode 100644 index 000000000000..1586dc19896a --- /dev/null +++ b/dev-lisp/cl-ppcre/cl-ppcre-2.1.0-r1.ebuild @@ -0,0 +1,30 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit common-lisp-3 + +DESCRIPTION="CL-PPCRE is a portable regular expression library for Common Lisp" +HOMEPAGE="https://edicl.github.io/cl-ppcre/ + https://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" + +RDEPEND="dev-lisp/flexi-streams" +PDEPEND="dev-lisp/cl-ppcre-unicode" + +src_unpack() { + unpack ${A} + cd "${S}" || die + rm -rf cl-ppcre-unicode test/unicode* || die +} + +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/cl-ppcre-2.1.2.ebuild b/dev-lisp/cl-ppcre/cl-ppcre-2.1.2.ebuild new file mode 100644 index 000000000000..c95d8e8165b5 --- /dev/null +++ b/dev-lisp/cl-ppcre/cl-ppcre-2.1.2.ebuild @@ -0,0 +1,30 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit common-lisp-3 + +DESCRIPTION="CL-PPCRE is a portable regular expression library for Common Lisp" +HOMEPAGE="https://edicl.github.io/cl-ppcre/ + https://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 ~riscv ~sparc x86" + +RDEPEND="dev-lisp/flexi-streams" +PDEPEND="dev-lisp/cl-ppcre-unicode" + +src_unpack() { + unpack ${A} + cd "${S}" || die + rm -rf cl-ppcre-unicode test/unicode* || die +} + +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..0b2858e5e177 --- /dev/null +++ b/dev-lisp/cl-ppcre/metadata.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>common-lisp@gentoo.org</email> + <name>Gentoo Common Lisp Project</name> + </maintainer> + <longdescription lang="en"> + CL-PPCRE is a portable regular expression library for Common Lisp + which has the following features: + + * compatible with Perl + * fast (outperforms Perl) + * portable (ANSI Common Lisp) + * thread-safe + * includes convenience features + * well-documented + </longdescription> + <longdescription lang="es"> + CL-PPCRE es una biblioteca de expressiones regulares portable + para Common Lisp que tiene las siguientes características: + + * Compatible con Perl + * Rápida (más rápida que la versión para Perl) + * Portable (ANSI Common Lisp) + * Segura en la ejecución de hilos (thread-safe) + * Incluye características para hacerla cómoda + * Bien documentada + </longdescription> + <upstream> + <remote-id type="github">edicl/cl-ppcre</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lisp/cl-unicode/Manifest b/dev-lisp/cl-unicode/Manifest new file mode 100644 index 000000000000..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-r1.ebuild b/dev-lisp/cl-unicode/cl-unicode-0.1.5-r1.ebuild new file mode 100644 index 000000000000..61fc2c95afa6 --- /dev/null +++ b/dev-lisp/cl-unicode/cl-unicode-0.1.5-r1.ebuild @@ -0,0 +1,40 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit common-lisp-3 xdg-utils + +MY_P="v${PV}" + +DESCRIPTION="Provides Common Lisp implementations with knowledge about Unicode characters" +HOMEPAGE="https://edicl.github.io/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 ~riscv ~sparc x86" + +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 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..720832fbe22d --- /dev/null +++ b/dev-lisp/cl-unicode/metadata.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>common-lisp@gentoo.org</email> + <name>Gentoo Common Lisp Project</name> + </maintainer> + <longdescription lang="en"> + CL-UNICODE is a library which provides Common Lisp implementations + with knowledge about Unicode characters including their name, their + general category, the scripts and blocks they belong to, their + numerical value, and several other properties. It also provides the + ability to replace the standard syntax for reading Lisp characters + with one that is Unicode-aware and is used to enhance CL-PPCRE with + Unicode properties. + </longdescription> + <longdescription lang="es"> + CL-UNICODE es una biblioteca que ofrece implmentaciones de Common + Lisp que reconoce caracteres Unicode incluyendo su nombre, categoría + general, los guiones y bloques a los que pertenecen, su valor + numérico y algunas otras propiedades. También ofrece la capacidad + de reemplazar la sintaxis estándar para la lectura de caracteres + Lisp por otra que reconoce Unicode y se utiliza para mejorar + CL-PPCRE con propiedades Unicode. + </longdescription> + <upstream> + <remote-id type="github">edicl/cl-unicode</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lisp/clisp/Manifest b/dev-lisp/clisp/Manifest new file mode 100644 index 000000000000..5aba3d53d0f0 --- /dev/null +++ b/dev-lisp/clisp/Manifest @@ -0,0 +1 @@ +DIST clisp-2.49.92.tar.bz2 9055207 BLAKE2B 6cf331eb9f99f62579e35469e2d01cae066083592ccc71cf483b70b4d1be349cdee9d403e0a7ed1ad1c8c5d805c1dab51c1a5031d77469ff8c4dc52eb58913df SHA512 cc9412a7b3f21c85b040bf5e660380fafb3c2374765a1c00272feb3f7838f2161e27a5d6295cef9976f0c4522f10796cf5ee5447716090d1cc69ecfe598ef306 diff --git a/dev-lisp/clisp/clisp-2.49.92-r1.ebuild b/dev-lisp/clisp/clisp-2.49.92-r1.ebuild new file mode 100644 index 000000000000..3ea9e50026d3 --- /dev/null +++ b/dev-lisp/clisp/clisp-2.49.92-r1.ebuild @@ -0,0 +1,147 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic 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 ~mips ppc ppc64 ~riscv ~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/libcrypt:= + virtual/libiconv + >=dev-libs/libsigsegv-2.10 + >=dev-libs/ffcall-1.10 + dbus? ( sys-apps/dbus ) + fastcgi? ( dev-libs/fcgi ) + gdbm? ( sys-libs/gdbm:0= ) + 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? ( virtual/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 + if use alpha; 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() { + # -Werror=lto-type-mismatch + # https://bugs.gentoo.org/856103 + # https://gitlab.com/gnu-clisp/clisp/-/issues/49 + filter-lto + + # We need this to build on alpha + if use alpha; 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://${EPREFIX}/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}" || die + make DESTDIR="${D}" prefix="${EPREFIX}"/usr install-bin || die "Installation failed" + doman clisp.1 + dodoc ../SUMMARY README* ../src/NEWS ../unix/MAGIC.add ../ANNOUNCE + popd || die + dodoc doc/{CLOS-guide,LISP-tutorial}.txt + docinto html + dodoc doc/impnotes.{css,html} doc/regexp.html doc/clisp.png +} diff --git a/dev-lisp/clisp/clisp-2.49.92-r3.ebuild b/dev-lisp/clisp/clisp-2.49.92-r3.ebuild new file mode 100644 index 000000000000..e0d629369d04 --- /dev/null +++ b/dev-lisp/clisp/clisp-2.49.92-r3.ebuild @@ -0,0 +1,194 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit edo flag-o-matic toolchain-funcs xdg-utils + +DESCRIPTION="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 ~mips ppc ppc64 ~riscv ~sparc x86" +# "jit" disabled ATM +IUSE="hyperspec X berkdb dbus fastcgi gdbm gtk +pcre postgres +readline svm threads +unicode +zlib" +# Needs work still +RESTRICT="test" + +RDEPEND=" + >=dev-lisp/asdf-2.33-r3 + >=dev-libs/libsigsegv-2.10 + >=dev-libs/ffcall-1.10 + virtual/libcrypt:= + virtual/libiconv + dbus? ( sys-apps/dbus ) + fastcgi? ( dev-libs/fcgi ) + gdbm? ( sys-libs/gdbm:= ) + gtk? ( + >=gnome-base/libglade-2.6 + >=x11-libs/gtk+-2.10:2 + ) + postgres? ( >=dev-db/postgresql-8.0:* ) + readline? ( >=sys-libs/readline-7.0:= ) + pcre? ( dev-libs/libpcre:3 ) + svm? ( sci-libs/libsvm ) + zlib? ( virtual/zlib:= ) + X? ( x11-libs/libXpm ) + hyperspec? ( dev-lisp/hyperspec ) + berkdb? ( sys-libs/db:5.3 ) +" +DEPEND=" + ${RDEPEND} + X? ( x11-base/xorg-proto ) +" +BDEPEND="X? ( x11-misc/imake )" + +PATCHES=( + "${FILESDIR}"/${P}-after_glibc_cfree_bdb.patch + "${FILESDIR}"/${P}-gdbm_and_bdb5.3.patch + "${FILESDIR}"/${P}-build-Build-genclx-without-gnulib.patch +) + +BUILDDIR="builddir" + +enable_modules() { + [[ $# = 0 ]] && die "${FUNCNAME[0]} must receive at least one argument" + + local m + for m in "$@" ; do + einfo "Enabling module ${m}" + myconf+=( --with-module=${m} ) + done +} + +src_prepare() { + default + + # More than -O1 breaks alpha + if use alpha; then + sed -i -e 's/-O2//g' src/makemake.in || die + fi + + xdg_environment_reset +} + +src_configure() { + # Not local so enable_modules() can use it + myconf=( + --prefix="${EPREFIX}"/usr + --libdir="${EPREFIX}"/usr/$(get_libdir) + --enable-portability + $(use_with readline) + $(use_with unicode) + --hyperspec=${CLHSROOT} + ) + + # Temporary workaround for bug #932564 with GCC 15 + # This can be dropped with a new release. + strip-flags + tc-is-gcc && { + append-flags -fno-tree-dce -fno-tree-dse -fno-tree-pta + } + + # -Werror=lto-type-mismatch + # https://bugs.gentoo.org/856103 + # https://gitlab.com/gnu-clisp/clisp/-/issues/49 + filter-lto + + if use alpha; then + # We need this to build on alpha + replace-flags -O? -O1 + elif use x86; then + # bug #585182 + append-flags -falign-functions=4 + fi + + # built-in features + 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 + + # 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 + # + # 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/db5.3 + 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/hyperspec/HyperSpec/" + else + CLHSROOT="http://www.lispworks.com/reference/HyperSpec/" + fi + + myconf+=( + --config + CC="$(tc-getCC)" + CFLAGS="${CFLAGS}" + LDFLAGS="${LDFLAGS}" + ) + + # configure chokes on --sysconfdir option + edo ./configure "${myconf[@]}" ${BUILDDIR} + + IMPNOTES="file://${EPREFIX}/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 + # parallel build fails + emake -C "${BUILDDIR}" -j1 +} + +src_test() { + emake -C "${BUILDDIR}" -j1 check + # Test non-portable features and modules + emake -C "${BUILDDIR}" -j1 extracheck mod-check +} + +src_install() { + pushd "${BUILDDIR}" || die + emake -j1 DESTDIR="${D}" prefix="${EPREFIX}"/usr install-bin + doman clisp.1 + dodoc ../SUMMARY README* ../src/NEWS ../unix/MAGIC.add ../ANNOUNCE + popd || die + + dodoc doc/{CLOS-guide,LISP-tutorial}.txt + docinto html + dodoc doc/impnotes.{css,html} doc/regexp.html doc/clisp.png +} 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/files/clisp-2.49.92-build-Build-genclx-without-gnulib.patch b/dev-lisp/clisp/files/clisp-2.49.92-build-Build-genclx-without-gnulib.patch new file mode 100644 index 000000000000..af173d118dd7 --- /dev/null +++ b/dev-lisp/clisp/files/clisp-2.49.92-build-Build-genclx-without-gnulib.patch @@ -0,0 +1,52 @@ +From 766baa4f47b59b70c9d865786182c16dc93aafe6 Mon Sep 17 00:00:00 2001 +From: Bruno Haible <bruno@clisp.org> +Date: Sat, 9 Nov 2024 12:57:02 +0100 +Subject: [PATCH] build: Build genclx without gnulib. + +Reported by Peter Van Eynde in +<https://gitlab.com/gnu-clisp/clisp/-/issues/53>. + +* modules/clx/new-clx/Makefile.in (BUILD_CC, BUILD_CPPFLAGS, BUILD_CFLAGS, +BUILD_LDFLAGS): New variables. +(clx.d): Use them to compile genclx.c. + +diff --git a/modules/clx/new-clx/Makefile.in b/modules/clx/new-clx/Makefile.in +index 7b0056ad0..600f2752b 100644 +--- a/modules/clx/new-clx/Makefile.in ++++ b/modules/clx/new-clx/Makefile.in +@@ -1,11 +1,22 @@ +-# Makefile for CLISP module set clx ++# Makefile for CLISP module set new-clx + + srcdir = @srcdir@ ++ ++# These variables are used to build binaries for the build platform, ++# that are not linked to Gnulib or CLISP code. ++BUILD_CC = @CC@ ++BUILD_CPPFLAGS = @CPPFLAGS@ ++BUILD_CFLAGS = @CFLAGS@ ++BUILD_LDFLAGS = @LDFLAGS@ ++ ++# These variables are used to build binaries for the target platform. ++# They are set through link.sh (invoked from clisp-link). + CC = @CC@ + CPPFLAGS = @CPPFLAGS@ + CFLAGS = -O + CLISP = @CLISP@ -norc -q + CLISP_LINKKIT = @CLISP_LINKKIT@ ++ + LN = @LN@ + LN_S = @LN_S@ + SHELL = /bin/sh +@@ -35,7 +46,7 @@ resource.fas: $(srcdir)/resource.lisp clx.lib + + clx.d: $(srcdir)/clx.f + $(CCMP2C) $(srcdir)/clx.f > genclx.c +- $(CC) $(CPPFLAGS) $(CFLAGS) $(WANTS) genclx.c -o genclx ++ $(BUILD_CC) $(BUILD_CPPFLAGS) $(WANTS) $(BUILD_CFLAGS) $(BUILD_LDFLAGS) -o genclx genclx.c + ./genclx -l -o clx.d > clx.d + $(RM) genclx.c + $(RM) genclx +-- +2.45.2 + diff --git a/dev-lisp/clisp/files/clisp-2.49.92-gdbm_and_bdb5.3.patch b/dev-lisp/clisp/files/clisp-2.49.92-gdbm_and_bdb5.3.patch new file mode 100644 index 000000000000..360b5b269aac --- /dev/null +++ b/dev-lisp/clisp/files/clisp-2.49.92-gdbm_and_bdb5.3.patch @@ -0,0 +1,105 @@ +cherry picked from: +i +https://gitlab.com/gnu-clisp/clisp/-/commit/fe98f04798677f3b85f24e1a3d267e926ca031cc +https://gitlab.com/gnu-clisp/clisp/-/commit/14017a35e2c1dc02b18f09b6d079eeb441bb9b92 +https://gitlab.com/gnu-clisp/clisp/-/commit/50120fab20ac508852938ebe7cd73dc09d5a50a1 + +diff --git a/modules/berkeley-db/bdb.c b/modules/berkeley-db/bdb.c +index 1efa285..86d9645 100644 +--- a/modules/berkeley-db/bdb.c ++++ b/modules/berkeley-db/bdb.c +@@ -2758,8 +2758,8 @@ DEFUN(BDB:TXN-RECOVER, dbe &key FIRST :NEXT) + DB_ENV *dbe = (DB_ENV*)bdb_handle(popSTACK(),`BDB::DBE`,BH_VALID); + u_int32_t tx_max; + DB_PREPLIST *preplist; +- int status, ii; +- u_int32_t retnum; ++ int status; ++ long ii, retnum; + SYSCALL(dbe->get_tx_max,(dbe,&tx_max)); + preplist = (DB_PREPLIST*)clisp_malloc(tx_max * sizeof(DB_PREPLIST)); + begin_blocking_system_call(); +diff --git a/modules/berkeley-db/configure b/modules/berkeley-db/configure +index 8a4cf06..c0f1346 100755 +--- a/modules/berkeley-db/configure ++++ b/modules/berkeley-db/configure +@@ -5712,7 +5712,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + int + main () + { +-DB db; db.stat(&db,NULL,0,NULL); ++DB *db; db_create(&db,NULL,0); db->stat(db,NULL,NULL,0); + ; + return 0; + } +@@ -5747,7 +5747,7 @@ void my_callback (const DB_ENV* dbe, const char *errpfx, const char *msg) {} + int + main () + { +-DB_ENV dbe; dbe.set_errcall(&dbe,&my_callback); ++DB_ENV *dbe; db_env_create(&dbe,0); dbe->set_errcall(dbe,&my_callback); + ; + return 0; + } +@@ -5780,7 +5780,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + int + main () + { +-DB db; db.get_transactional(&db); ++DB *db; db_create(&db,NULL,0); db->get_transactional(db); + ; + return 0; + } +diff --git a/modules/berkeley-db/configure.in b/modules/berkeley-db/configure.in +index 623d633..475251a 100644 +--- a/modules/berkeley-db/configure.in ++++ b/modules/berkeley-db/configure.in +@@ -38,7 +38,7 @@ AC_CHECK_SIZEOF(db_recno_t,,[#include <stdio.h> + dnl <http://www.sleepycat.com/docs/ref/upgrade.4.3/stat.html> + AC_CACHE_CHECK([whether DB->stat() accepts TXNid],ac_cv_db_stat_accept_txn,[ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <db.h>], +-[[DB db; db.stat(&db,NULL,0,NULL);]])], ++[[DB *db; db_create(&db,NULL,0); db->stat(db,NULL,NULL,0);]])], + ac_cv_db_stat_accept_txn=yes,ac_cv_db_stat_accept_txn=no)]) + if test "$ac_cv_db_stat_accept_txn" = "yes"; then + AC_DEFINE(HAVE_DB_STAT_ACCEPT_TXN,1,[Define to 1 if DB->stat() accepts TXNid]) +@@ -51,7 +51,7 @@ CFLAGS_save="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <db.h> + void my_callback (const DB_ENV* dbe, const char *errpfx, const char *msg) {}], +-[[DB_ENV dbe; dbe.set_errcall(&dbe,&my_callback);]])], ++[[DB_ENV *dbe; db_create(&db,NULL,0); dbe->set_errcall(&dbe,&my_callback);]])], + ac_cv_dbe_set_errcall_accept_dbe=yes,ac_cv_dbe_set_errcall_accept_dbe=no) + CFLAGS=$CFLAGS_save]) + if test "$ac_cv_dbe_set_errcall_accept_dbe" = "yes"; then +@@ -63,7 +63,7 @@ dnl unannounced! + AC_CACHE_CHECK([whether DB->get_transactional() accepts just 1 argument], + ac_cv_db_get_transactional_1arg,[ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <db.h>], +-[[DB db; db.get_transactional(&db);]])], ++[[DB *db; db_create(&db,NULL,0); db->get_transactional(db);]])], + ac_cv_db_get_transactional_1arg=yes,ac_cv_db_get_transactional_1arg=no)]) + if test "$ac_cv_db_get_transactional_1arg" = "yes"; then + AC_DEFINE(HAVE_DB_GET_TRANSACTIONAL_1ARG,1, +diff --git a/modules/gdbm/gdbm.c b/modules/gdbm/gdbm.c +index a42706e..d81d7e3 100644 +--- a/modules/gdbm/gdbm.c ++++ b/modules/gdbm/gdbm.c +@@ -66,7 +66,7 @@ DEFCHECKER(check_gdbm_errno, prefix=GDBM, NO-ERROR MALLOC-ERROR \ + READER-CANT-REORGANIZE UNKNOWN-UPDATE ITEM-NOT-FOUND \ + REORGANIZE-FAILED CANNOT-REPLACE ILLEGAL-DATA OPT-ALREADY-SET \ + OPT-ILLEGAL) +-static _Noreturn void error_gdbm (char *fatal_message) { ++static _Noreturn void error_gdbm (const char *fatal_message) { + end_blocking_system_call(); /* in case we are called from _gdbm_fatal() */ + pushSTACK(`GDBM::GDBM-ERROR`); + pushSTACK(`:MESSAGE`); +@@ -126,7 +126,7 @@ static object open_gdbm (object path, int bsize, int rw, int mode) { + GDBM_FILE gdbm; + with_string_0(path, GLO(pathname_encoding), name, { + SYSCALL(gdbm = gdbm_open(name, bsize, rw, mode, +- (void (*)(void))error_gdbm)); ++ error_gdbm)); + }); + if (gdbm == NULL) error_gdbm(NULL); + return allocate_fpointer(gdbm); diff --git a/dev-lisp/clisp/metadata.xml b/dev-lisp/clisp/metadata.xml new file mode 100644 index 000000000000..44471e4a1c02 --- /dev/null +++ b/dev-lisp/clisp/metadata.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://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> + <remote-id type="gitlab">gnu-clisp/clisp</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lisp/clozurecl/Manifest b/dev-lisp/clozurecl/Manifest new file mode 100644 index 000000000000..53d14fd768cc --- /dev/null +++ b/dev-lisp/clozurecl/Manifest @@ -0,0 +1,5 @@ +DIST ccl-1.12.2-darwinx86.tar.gz 23942873 BLAKE2B 980403852c086c49ed467d391fbcf776b32c9c8cf3352ce71249ccd3cb0548904421ebd20512abef77b888de4a102a0fb19d1117c8a2dd14c3b618feea205f63 SHA512 96ac720ea1f210a89b17ad2a617f55bb04bece3c06bb2433191dab99886a2ad3529716e35624bd4b0d4c9eec2e9ccd80c0d894b75766ac1e361185cd7dfe3e92 +DIST ccl-1.12.2-linuxx86.tar.gz 20997426 BLAKE2B 7bc9037b85964be6363f3082af6abf18d519e9a155edd34f4de495aedb5bfec8f43e4403b3b3bcece17c64bb7a381163bbaa03e1d2b9db9aee0a53deef537cf1 SHA512 4cf6960e41347ae980f8ea7366434a016e2a47a9ae090a77e52a2145233454cc97cd4812851d0368024548c46aa0997abb2791992125b5857a9f5f662890338b +DIST ccl-1.13-darwinx86.tar.gz 24020406 BLAKE2B 3d8e973f2fe9a48f62392a1106d12c6d2d617e26c602103e563ae654a317cb2af9bb2ac2f65e617dee237ac476b3daacd4b0cf02baa7878b6c1e41288371099b SHA512 777cf4e41af46f7b72ffcc5db2dab0e1542a7522cdf8b81200b760d6be404adb8d4ef9773590b562d839fa07979486aee1193300ce59b444a505acc135f51df8 +DIST ccl-1.13-linuxx86.tar.gz 19507771 BLAKE2B 8699178dcfc5b1435bacb4358c81544027a0fd1fbae072cd93e75ef58b90dde76b9c8f7cd13b889d9693f0f86fd2c593e8692c8cf9e345b085f05d582ac91849 SHA512 5180bedd5581cef27be52c2738d9d62bca546ccca1f6d75122d8018be0187d6e026401870879c4e283787ba980482d575ed331c4a0c28638ce62b6b10730ac1e +DIST ccl.html 962023 BLAKE2B 6dcda62b4d18e83b3b73d554a4dd4255411944831e99464e20c9840f97bccd1bdf74b1d718620b2f6aa5e4f297e1925dbd3da6c48a5977b517caa194f62a37d4 SHA512 536ae7d858846b20bc9cee52292549ff3c2dd28565fcb3a7a1bf706d4f59799e83389d9ea0e73f943f815515c6bc3aa33222d8afde362bc503786b09eb784230 diff --git a/dev-lisp/clozurecl/clozurecl-1.12.2.ebuild b/dev-lisp/clozurecl/clozurecl-1.12.2.ebuild new file mode 100644 index 000000000000..433bc7a1ca6c --- /dev/null +++ b/dev-lisp/clozurecl/clozurecl-1.12.2.ebuild @@ -0,0 +1,81 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit 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 ) + x64-macos? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-darwinx86.tar.gz ) + doc? ( https://ccl.clozure.com/docs/ccl.html )" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="-* amd64 x86 ~x64-macos" +IUSE="doc" + +RDEPEND=">=dev-lisp/asdf-2.33-r3:=" +DEPEND="${RDEPEND}" + +S="${WORKDIR}"/${MY_PN} +ENVD="${T}/50ccl" + +src_prepare() { + default + cp "${EPREFIX}/usr/share/common-lisp/source/asdf/build/asdf.lisp" tools/ || die +} + +src_configure() { + if use x64-macos; then + CCL_RUNTIME=dx86cl64; CCL_HEADERS=darwin-x86-headers64; CCL_KERNEL=darwinx8664 + 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 + 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/clozurecl-1.13.ebuild b/dev-lisp/clozurecl/clozurecl-1.13.ebuild new file mode 100644 index 000000000000..97d47f989558 --- /dev/null +++ b/dev-lisp/clozurecl/clozurecl-1.13.ebuild @@ -0,0 +1,81 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit 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 ) + x64-macos? ( https://github.com/Clozure/ccl/releases/download/v${PV}/${MY_P}-darwinx86.tar.gz ) + doc? ( https://ccl.clozure.com/docs/ccl.html )" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="-* amd64 ~x86 ~x64-macos" +IUSE="doc" + +RDEPEND=">=dev-lisp/asdf-2.33-r3:=" +DEPEND="${RDEPEND}" + +S="${WORKDIR}"/${MY_PN} +ENVD="${T}/50ccl" + +src_prepare() { + default + cp "${EPREFIX}/usr/share/common-lisp/source/asdf/build/asdf.lisp" tools/ || die +} + +src_configure() { + if use x64-macos; then + CCL_RUNTIME=dx86cl64; CCL_HEADERS=darwin-x86-headers64; CCL_KERNEL=darwinx8664 + 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 + fi +} + +src_compile() { + emake -C lisp-kernel/${CCL_KERNEL} clean + emake -C lisp-kernel/${CCL_KERNEL} all CC="$(tc-getCC)" + + unset CCL_DEFAULT_DIRECTORY + ./${CCL_RUNTIME} -n -b -Q -e '(ccl:rebuild-ccl :full t)' -e '(ccl:quit)' || die "Compilation failed" + + # remove non-owner write permissions on the full-image + chmod go-w ${CCL_RUNTIME}{,.image} || die + + esvn_clean +} + +src_install() { + local target_dir="/usr/$(get_libdir)/${PN}" + local prefix_dir="${EPREFIX}/${target_dir#/}" + + mkdir -p "${D}/${prefix_dir#/}" + + find . -type f -name '*fsl' -delete || die + rm -f lisp-kernel/${CCL_KERNEL}/*.o || die + cp -a compiler level-0 level-1 lib library lisp-kernel scripts \ + tools xdump ${CCL_HEADERS} ${CCL_RUNTIME} ${CCL_RUNTIME}.image \ + "${D}/${prefix_dir#/}" || die + + echo "CCL_DEFAULT_DIRECTORY=${prefix_dir}" > "${ENVD}" + doenvd "${ENVD}" + + dosym "${target_dir}/${CCL_RUNTIME}" /usr/bin/ccl + dodoc doc/release-notes.txt + + if use doc ; then + dodoc "${DISTDIR}/ccl.html" + dodoc -r doc/manual + dodoc -r examples + fi +} diff --git a/dev-lisp/clozurecl/metadata.xml b/dev-lisp/clozurecl/metadata.xml new file mode 100644 index 000000000000..4de45c7d62d6 --- /dev/null +++ b/dev-lisp/clozurecl/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="project"> + <email>common-lisp@gentoo.org</email> + <name>Gentoo Common Lisp Project</name> +</maintainer> +</pkgmetadata> diff --git a/dev-lisp/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-r1.ebuild b/dev-lisp/clx/clx-0.7.5-r1.ebuild new file mode 100644 index 000000000000..a7fff37b1784 --- /dev/null +++ b/dev-lisp/clx/clx-0.7.5-r1.ebuild @@ -0,0 +1,35 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit common-lisp-3 + +DESCRIPTION="CLX is the Common Lisp interface to the X11 protocol primarily for SBCL" +HOMEPAGE="https://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 )" + +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..77f38c787423 --- /dev/null +++ b/dev-lisp/clx/metadata.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>common-lisp@gentoo.org</email> + <name>Gentoo Common Lisp Project</name> + </maintainer> + <longdescription> + 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> + <upstream> + <bugs-to>https://github.com/sharplispers/clx/issues</bugs-to> + <doc>https://sharplispers.github.io/clx/</doc> + <remote-id type="github">sharplispers/clx</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lisp/cmucl/Manifest b/dev-lisp/cmucl/Manifest new file mode 100644 index 000000000000..9721af93252b --- /dev/null +++ b/dev-lisp/cmucl/Manifest @@ -0,0 +1,2 @@ +DIST cmucl-21e-x86-linux.tar.bz2 11305452 BLAKE2B d7dde5afb0d6b0a42506c2a7bef09e93ddfb415eea1d41db95d63bdfc3d6f654859dabd641b4fd78c1ba4c36a6f6b5ac6318d4124a0cd21b389dd448e4bc109a SHA512 84193903a75356a28e14b4dc2f6c4dd20d6f0d424a24150c2f9b1094b4a91def4c85b8c5ade326487ca34a7705096c09109329f1eedba728e63e70b1dc011b5d +DIST cmucl-src-21e.tar.bz2 7161287 BLAKE2B 1e52643917f05bbd2fa45f3cbed894506458a13047faf077388066035dfcb66440879c8cc4f79592b32dd5eb85679e3bb9fad5d9327f86e1c30e8446ffdda281 SHA512 fc2647fdd9adebe9c9a6a6398ef43203b750ff9c9437fec2b0c9b6fe2a50e430089308f0ff2362c3bc76724df9168c95293191e45489b3a5051942f63c0ed9b2 diff --git a/dev-lisp/cmucl/cmucl-21e.ebuild b/dev-lisp/cmucl/cmucl-21e.ebuild new file mode 100644 index 000000000000..6b44bb707caf --- /dev/null +++ b/dev-lisp/cmucl/cmucl-21e.ebuild @@ -0,0 +1,106 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +MY_PV=${PV:0:3} + +DESCRIPTION="CMU Common Lisp is an implementation of ANSI Common Lisp" +HOMEPAGE="https://www.cons.org/cmucl/" +SRC_URI=" + https://common-lisp.net/project/cmucl/downloads/release/${MY_PV}/cmucl-src-${MY_PV}.tar.bz2 + https://common-lisp.net/project/cmucl/downloads/release/${MY_PV}/cmucl-${MY_PV}-x86-linux.tar.bz2 +" +S="${WORKDIR}" + +LICENSE="public-domain" +SLOT="0" +KEYWORDS="-* x86" +IUSE="doc gui source" + +CDEPEND=">=dev-lisp/asdf-2.33-r3:= + x11-libs/motif:0" +DEPEND="${CDEPEND} + app-alternatives/bc + doc? ( virtual/latex-base )" +RDEPEND="${CDEPEND}" + +TARGET=linux-4 + +src_prepare() { + eapply "${FILESDIR}"/${PN}-21c-execstack-fixes.patch + eapply "${FILESDIR}"/${P}-version.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=$(usex gui "" -u) + local 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 || die + fi +} + +src_install() { + DOCDIR=share/doc/${PF} 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 || die + tar xzpf "${WORKDIR}"/cmucl-${MY_PV}-x86-linux.tar.gz \ + || die "Cannot install main system" + if use gui ; 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 || die + + # 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 + if use doc; then + dodoc src/docs/cmu-user/cmu-user.pdf src/docs/internals/design.pdf + docompress -x /usr/share/doc/${PF}/{cmu-user,design}.pdf + fi +} 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/cmucl-21e-version.patch b/dev-lisp/cmucl/files/cmucl-21e-version.patch new file mode 100644 index 000000000000..204e1a396593 --- /dev/null +++ b/dev-lisp/cmucl/files/cmucl-21e-version.patch @@ -0,0 +1,9 @@ +--- cmucl/bin/build.sh ++++ cmucl/bin/build.sh +@@ -40,5 +40,5 @@ + ENABLE4="yes" + +-version=21d ++version=21e + SRCDIR=src + BINDIR=bin 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..5f45b9fa5e7b --- /dev/null +++ b/dev-lisp/cmucl/metadata.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://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="gui">Build CLX, CLM, or Hemlock</flag> +<flag name="source">Include source code for CMUCL in installation</flag> +</use> +</pkgmetadata> diff --git a/dev-lisp/ecl/Manifest b/dev-lisp/ecl/Manifest new file mode 100644 index 000000000000..601cfddb34dd --- /dev/null +++ b/dev-lisp/ecl/Manifest @@ -0,0 +1,3 @@ +DIST ecl-24.5.10.tgz 8130112 BLAKE2B 76ee9b4dca68543151e8f8474651e3f2b540017b62ab2ba6e00d64002362045ccf0aad16d0f82d7fd9a7511423aa90f9ddce912bf4b314c7905f6e404b850d1a SHA512 46e6da0f319573e412e54573b3c029179ba9debf48f73828ad5dd0a99c4a0b4ef21f99b411fdab3dc5429242c917553eb3e9794eeac7ec44667cd26fc0dd927e +DIST ecl-26.3.27.tgz 7488052 BLAKE2B 6cb8703e37eb2f24eaf375dbb77bb9a9a2b526de640441a91b459bd4ca9bfc589cfc6ce180b6040157c86db338ae8e9f16c01ab355fcb2764bb8afd1742f9ac5 SHA512 a6a8a40f63b44229fb84239cf5f1048e0a99bc36ec3fc1925409ad344884997de125ac1954cf0fb715529efb602649735e739f73827a834fb117512cf2e7879d +DIST ecl-26.5.5.tgz 7488598 BLAKE2B 2b3b6d272125542635b4a07d2b9951a8bc9e288d0768303c3a014a21fe16ea8b2e8b529664df75245e83968118e094408f4f6ddb2b72a3abce3628bb9cf84dfc SHA512 ac81913bb788a1b9fdc693ee73ad500b4e3bc2085e1859488fb179267c090dc473e078934bc0883cfc48ed75867200a5aa438ac37c8276440d92b4277621a9e5 diff --git a/dev-lisp/ecl/ecl-24.5.10-r1.ebuild b/dev-lisp/ecl/ecl-24.5.10-r1.ebuild new file mode 100644 index 000000000000..000ac3194185 --- /dev/null +++ b/dev-lisp/ecl/ecl-24.5.10-r1.ebuild @@ -0,0 +1,94 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic readme.gentoo-r1 + +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/${P}.tgz" + +LICENSE="BSD-2 LGPL-2.1+" +SLOT="0/${PV}" +KEYWORDS="amd64 ~ppc ppc64 ~riscv ~sparc x86" +IUSE="cxx debug emacs gengc precisegc cpu_flags_x86_sse +threads +unicode X" +# test phase only works if ecl already installed #516876 +RESTRICT="test" + +RDEPEND="dev-libs/gmp:0= + dev-libs/libffi:= + dev-libs/libatomic_ops + >=dev-libs/boehm-gc-7.1[threads?] + >=dev-lisp/asdf-2.33-r3:=" +DEPEND="${RDEPEND} + app-text/texi2html + emacs? ( >=app-editors/emacs-23.1:* >=app-eselect/eselect-emacs-1.12 )" + +DOCS=( README.md CHANGELOG ) + +PATCHES=( + "${FILESDIR}/${PN}-16.1.3-headers-gentoo.patch" + "${FILESDIR}/${PN}-16.1.3-build.patch" + "${FILESDIR}/${PN}-21.2.1-donotcompressinfo.patch" + "${FILESDIR}/${PN}-24.5.10-gcc15.patch" +) + +src_prepare() { + default + cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die +} + +src_configure() { + + append-cflags -std=gnu17 # While the upcoming ecl release will allow C23, + # here we request C17 (std=gnu17, to be precise). + + filter-lto # bug #931081 + + econf \ + --enable-gmp=system \ + --enable-boehm=system \ + --with-dffi \ + --enable-libatomic=system \ + --with-defsystem \ + $(use_with cxx) \ + $(use_enable gengc) \ + $(use_enable precisegc) \ + $(use_with debug debug-cflags) \ + $(use_with cpu_flags_x86_sse sse) \ + $(use_enable threads) \ + $(use_enable unicode) \ + $(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 || die + else + touch build/TAGS + fi + + ## for /proc/self/clear_refs (see #867052) + addpredict /proc + + emake +} + +src_install() { + default + + readme.gentoo_create_doc + pushd build/doc > /dev/null || die + newman ecl.man ecl.1 + newman ecl-config.man ecl-config.1 + popd > /dev/null || die +} + +pkg_postinst() { + readme.gentoo_print_elog +} diff --git a/dev-lisp/ecl/ecl-24.5.10.ebuild b/dev-lisp/ecl/ecl-24.5.10.ebuild new file mode 100644 index 000000000000..ea7c29564b62 --- /dev/null +++ b/dev-lisp/ecl/ecl-24.5.10.ebuild @@ -0,0 +1,89 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic readme.gentoo-r1 + +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/${P}.tgz" + +LICENSE="BSD-2 LGPL-2.1+" +SLOT="0/${PV}" +KEYWORDS="amd64 ~ppc ppc64 ~riscv ~sparc x86" +IUSE="cxx debug emacs gengc precisegc cpu_flags_x86_sse +threads +unicode X" +# test phase only works if ecl already installed #516876 +RESTRICT="test" + +RDEPEND="dev-libs/gmp:0= + dev-libs/libffi:= + dev-libs/libatomic_ops + >=dev-libs/boehm-gc-7.1[threads?] + >=dev-lisp/asdf-2.33-r3:=" +DEPEND="${RDEPEND} + app-text/texi2html + emacs? ( >=app-editors/emacs-23.1:* >=app-eselect/eselect-emacs-1.12 )" + +DOCS=( README.md CHANGELOG ) + +PATCHES=( + "${FILESDIR}/${PN}-16.1.3-headers-gentoo.patch" + "${FILESDIR}/${PN}-16.1.3-build.patch" + "${FILESDIR}/${PN}-21.2.1-donotcompressinfo.patch" +) + +src_prepare() { + default + cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die +} + +src_configure() { + filter-lto # bug #931081 + + econf \ + --enable-gmp=system \ + --enable-boehm=system \ + --with-dffi \ + --enable-libatomic=system \ + --with-defsystem \ + $(use_with cxx) \ + $(use_enable gengc) \ + $(use_enable precisegc) \ + $(use_with debug debug-cflags) \ + $(use_with cpu_flags_x86_sse sse) \ + $(use_enable threads) \ + $(use_enable unicode) \ + $(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 || die + else + touch build/TAGS + fi + + ## for /proc/self/clear_refs (see #867052) + addpredict /proc + + emake +} + +src_install() { + default + + readme.gentoo_create_doc + pushd build/doc > /dev/null || die + newman ecl.man ecl.1 + newman ecl-config.man ecl-config.1 + popd > /dev/null || die +} + +pkg_postinst() { + readme.gentoo_print_elog +} diff --git a/dev-lisp/ecl/ecl-26.3.27.ebuild b/dev-lisp/ecl/ecl-26.3.27.ebuild new file mode 100644 index 000000000000..80fd2f62545a --- /dev/null +++ b/dev-lisp/ecl/ecl-26.3.27.ebuild @@ -0,0 +1,89 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic readme.gentoo-r1 + +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/${P}.tgz" + +LICENSE="BSD-2 LGPL-2.1+" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~ppc ~ppc64 ~riscv ~sparc ~x86" +IUSE="cxx debug emacs gengc precisegc cpu_flags_x86_sse +threads +unicode X" +# test phase only works if ecl already installed #516876 +RESTRICT="test" + +RDEPEND="dev-libs/gmp:0= + dev-libs/libffi:= + dev-libs/libatomic_ops + >=dev-libs/boehm-gc-7.1[threads?] + >=dev-lisp/asdf-2.33-r3:=" +DEPEND="${RDEPEND} + app-text/texi2html + emacs? ( >=app-editors/emacs-23.1:* >=app-eselect/eselect-emacs-1.12 )" + +DOCS=( README.md CHANGELOG ) + +PATCHES=( + "${FILESDIR}/${PN}-16.1.3-headers-gentoo.patch" + "${FILESDIR}/${PN}-16.1.3-build.patch" + "${FILESDIR}/${PN}-21.2.1-donotcompressinfo.patch" +) + +src_prepare() { + default + cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die +} + +src_configure() { + filter-lto # bug #931081 + + econf \ + --enable-gmp=system \ + --enable-boehm=system \ + --with-dffi \ + --enable-libatomic=system \ + --with-defsystem \ + $(use_with cxx) \ + $(use_enable gengc) \ + $(use_enable precisegc) \ + $(use_with debug debug-cflags) \ + $(use_with cpu_flags_x86_sse sse) \ + $(use_enable threads) \ + $(use_enable unicode) \ + $(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 || die + else + touch build/TAGS + fi + + ## for /proc/self/clear_refs (see #867052) + addpredict /proc + + emake +} + +src_install() { + default + + readme.gentoo_create_doc + pushd build/doc > /dev/null || die + newman ecl.man ecl.1 + newman ecl-config.man ecl-config.1 + popd > /dev/null || die +} + +pkg_postinst() { + readme.gentoo_print_elog +} diff --git a/dev-lisp/ecl/ecl-26.5.5.ebuild b/dev-lisp/ecl/ecl-26.5.5.ebuild new file mode 100644 index 000000000000..80fd2f62545a --- /dev/null +++ b/dev-lisp/ecl/ecl-26.5.5.ebuild @@ -0,0 +1,89 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic readme.gentoo-r1 + +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/${P}.tgz" + +LICENSE="BSD-2 LGPL-2.1+" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~ppc ~ppc64 ~riscv ~sparc ~x86" +IUSE="cxx debug emacs gengc precisegc cpu_flags_x86_sse +threads +unicode X" +# test phase only works if ecl already installed #516876 +RESTRICT="test" + +RDEPEND="dev-libs/gmp:0= + dev-libs/libffi:= + dev-libs/libatomic_ops + >=dev-libs/boehm-gc-7.1[threads?] + >=dev-lisp/asdf-2.33-r3:=" +DEPEND="${RDEPEND} + app-text/texi2html + emacs? ( >=app-editors/emacs-23.1:* >=app-eselect/eselect-emacs-1.12 )" + +DOCS=( README.md CHANGELOG ) + +PATCHES=( + "${FILESDIR}/${PN}-16.1.3-headers-gentoo.patch" + "${FILESDIR}/${PN}-16.1.3-build.patch" + "${FILESDIR}/${PN}-21.2.1-donotcompressinfo.patch" +) + +src_prepare() { + default + cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die +} + +src_configure() { + filter-lto # bug #931081 + + econf \ + --enable-gmp=system \ + --enable-boehm=system \ + --with-dffi \ + --enable-libatomic=system \ + --with-defsystem \ + $(use_with cxx) \ + $(use_enable gengc) \ + $(use_enable precisegc) \ + $(use_with debug debug-cflags) \ + $(use_with cpu_flags_x86_sse sse) \ + $(use_enable threads) \ + $(use_enable unicode) \ + $(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 || die + else + touch build/TAGS + fi + + ## for /proc/self/clear_refs (see #867052) + addpredict /proc + + emake +} + +src_install() { + default + + readme.gentoo_create_doc + pushd build/doc > /dev/null || die + newman ecl.man ecl.1 + newman ecl-config.man ecl-config.1 + popd > /dev/null || die +} + +pkg_postinst() { + readme.gentoo_print_elog +} diff --git a/dev-lisp/ecl/files/README.gentoo b/dev-lisp/ecl/files/README.gentoo new file mode 100644 index 000000000000..c95b6cb75167 --- /dev/null +++ b/dev-lisp/ecl/files/README.gentoo @@ -0,0 +1,13 @@ +-*- outline -*- + +Gentoo GNU/Linux specific notes for ECL +--------------------------------------- + + * 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 https://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/ecl/files/ecl-16.1.3-build.patch b/dev-lisp/ecl/files/ecl-16.1.3-build.patch new file mode 100644 index 000000000000..ff7d6cd74d8b --- /dev/null +++ b/dev-lisp/ecl/files/ecl-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/ecl/files/ecl-16.1.3-headers-gentoo.patch b/dev-lisp/ecl/files/ecl-16.1.3-headers-gentoo.patch new file mode 100644 index 000000000000..10802aa48803 --- /dev/null +++ b/dev-lisp/ecl/files/ecl-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/ecl/files/ecl-21.2.1-donotcompressinfo.patch b/dev-lisp/ecl/files/ecl-21.2.1-donotcompressinfo.patch new file mode 100644 index 000000000000..722e5dc7483f --- /dev/null +++ b/dev-lisp/ecl/files/ecl-21.2.1-donotcompressinfo.patch @@ -0,0 +1,35 @@ +diff --git a/src/doc/Makefile.in b/src/doc/Makefile.in +index 5660f41..c2aadbe 100644 +--- a/src/doc/Makefile.in ++++ b/src/doc/Makefile.in +@@ -15,7 +15,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_DATA = @INSTALL_DATA@ + INSTALL_INFO = @INSTALL_INFO@ + mkinstalldirs = $(top_srcdir)/bdwgc/install-sh -d +-INFO_FILE = ecl.info.gz ++INFO_FILE = ecl.info + MAKEINFO = @MAKEINFO@ + MANUAL_MAKE_TARGET = @MANUAL_MAKE_TARGET@ + MANUAL_INSTALL_TARGET = @MANUAL_INSTALL_TARGET@ +diff --git a/src/doc/manual/Makefile b/src/doc/manual/Makefile +index f82c287..2ff67e0 100644 +--- a/src/doc/manual/Makefile ++++ b/src/doc/manual/Makefile +@@ -5,15 +5,14 @@ FILES= *.txi */*.txi figures/* + all: pdf info html + + pdf: manual.pdf +-info: ecl.info.gz ++info: ecl.info + html: html/index.html + + manual.pdf: $(FILES) + texi2pdf manual.txi + +-ecl.info.gz: $(FILES) ++ecl.info: $(FILES) + $(MAKEINFO) --no-split manual.txi +- gzip < ecl.info > ecl.info.gz + + html/index.html: $(FILES) + $(MAKEINFO) --html --css-include=ecl.css --split=section manual.txi diff --git a/dev-lisp/ecl/files/ecl-24.5.10-gcc15.patch b/dev-lisp/ecl/files/ecl-24.5.10-gcc15.patch new file mode 100644 index 000000000000..f3827c3ac8de --- /dev/null +++ b/dev-lisp/ecl/files/ecl-24.5.10-gcc15.patch @@ -0,0 +1,229 @@ +From 1aec8f741f69fd736f020b7fe4d3afc33e60ae6a Mon Sep 17 00:00:00 2001 +From: Marius Gerbershagen <marius.gerbershagen@gmail.com> +Date: Sat, 26 Apr 2025 17:49:44 +0200 +Subject: [PATCH] port to C23 standard + +There are two things to fix: + +- `bool` is a keyword in C23, so `typedef int bool` is invalid. We + already require C99, so just include stdbool.h instead. This also + means that `bool` and `int` are no longer synonymous, so we have to + be more careful in defining return types for some functions. +- Function definitions and function pointers with unspecified + arguments are no longer valid. Fix the definitions to include + arguments and add casts for the function pointers. +--- + src/c/backq.d | 2 +- + src/c/cinit.d | 2 +- + src/c/dpp.c | 10 ---------- + src/c/file.d | 2 +- + src/c/macros.d | 6 +++--- + src/c/read.d | 4 ++-- + src/c/tcp.d | 5 +---- + src/h/ecl.h | 1 + + src/h/external.h | 2 +- + src/h/internal.h | 2 +- + src/h/object.h | 3 --- + 11 files changed, 12 insertions(+), 27 deletions(-) + +diff --git a/src/c/backq.d b/src/c/backq.d +index 973d5b922..02c3cfbd4 100644 +--- a/src/c/backq.d ++++ b/src/c/backq.d +@@ -259,5 +259,5 @@ quasiquote_macro(cl_object whole, cl_object env) + void + init_backq(void) + { +- ecl_def_c_macro(@'si::quasiquote', quasiquote_macro, 2); ++ ecl_def_c_macro(@'si::quasiquote', (cl_objectfn_fixed)quasiquote_macro, 2); + } +diff --git a/src/c/cinit.d b/src/c/cinit.d +index 54ac36abb..8f81d28d4 100644 +--- a/src/c/cinit.d ++++ b/src/c/cinit.d +@@ -188,7 +188,7 @@ main(int argc, char **args) + #endif + ECL_SET(@'*features*', features); + top_level = _ecl_intern("TOP-LEVEL", cl_core.system_package); +- ecl_def_c_function(top_level, si_simple_toplevel, 0); ++ ecl_def_c_function(top_level, (cl_objectfn_fixed)si_simple_toplevel, 0); + _ecl_funcall1(top_level); + return(0); + } +diff --git a/src/c/dpp.c b/src/c/dpp.c +index 462361f9f..82c86fedf 100644 +--- a/src/c/dpp.c ++++ b/src/c/dpp.c +@@ -85,10 +85,7 @@ + #include <ctype.h> + #include <string.h> + #include <stdarg.h> +- +-#if defined(_MSC_VER) && (_MSC_VER >= 1800) + #include <stdbool.h> +-#endif + + #define DPP + #include <ecl/config.h> +@@ -106,13 +103,6 @@ + #define TRUE 1 + #define FALSE 0 + +-#ifndef __cplusplus +-#if ! ( defined(__bool_true_false_are_defined) \ +- &&__bool_true_false_are_defined ) +-typedef int bool; +-#endif +-#endif +- + FILE *in, *out; + + char filename[BUFSIZ]; +diff --git a/src/c/file.d b/src/c/file.d +index 6d0d4785b..798b0a37f 100644 +--- a/src/c/file.d ++++ b/src/c/file.d +@@ -5166,7 +5166,7 @@ ecl_unread_char(ecl_character c, cl_object strm) + stream_dispatch_table(strm)->unread_char(strm, c); + } + +-bool ++int + ecl_listen_stream(cl_object strm) + { + return stream_dispatch_table(strm)->listen(strm); +diff --git a/src/c/macros.d b/src/c/macros.d +index 1a356241e..d1cf70022 100644 +--- a/src/c/macros.d ++++ b/src/c/macros.d +@@ -179,7 +179,7 @@ void + init_macros(void) + { + ECL_SET(@'*macroexpand-hook*', @'funcall'); +- ecl_def_c_macro(@'or', or_macro, 2); +- ecl_def_c_macro(@'and', and_macro, 2); +- ecl_def_c_macro(@'when', when_macro, 2); ++ ecl_def_c_macro(@'or', (cl_objectfn_fixed)or_macro, 2); ++ ecl_def_c_macro(@'and', (cl_objectfn_fixed)and_macro, 2); ++ ecl_def_c_macro(@'when', (cl_objectfn_fixed)when_macro, 2); + } +diff --git a/src/c/read.d b/src/c/read.d +index 4fba0b93b..356b94826 100644 +--- a/src/c/read.d ++++ b/src/c/read.d +@@ -2019,8 +2019,8 @@ extra_argument(int c, cl_object stream, cl_object d) + } + + +-#define make_cf2(f) ecl_make_cfun((f), ECL_NIL, NULL, 2) +-#define make_cf3(f) ecl_make_cfun((f), ECL_NIL, NULL, 3) ++#define make_cf2(f) ecl_make_cfun((cl_objectfn_fixed)(f), ECL_NIL, NULL, 2) ++#define make_cf3(f) ecl_make_cfun((cl_objectfn_fixed)(f), ECL_NIL, NULL, 3) + + void + init_read(void) +diff --git a/src/c/tcp.d b/src/c/tcp.d +index f26275516..8325b131d 100644 +--- a/src/c/tcp.d ++++ b/src/c/tcp.d +@@ -32,6 +32,7 @@ extern int errno; + #include <arpa/inet.h> + #include <netdb.h> + #include <unistd.h> ++#include <stdlib.h> + #endif + #include <string.h> + +@@ -86,10 +87,6 @@ int connect_to_server(char *host, int port) + struct sockaddr *addr; /* address to connect to */ + struct hostent *host_ptr; + int addrlen; /* length of address */ +-#if !defined(ECL_MS_WINDOWS_HOST) +- extern char *getenv(); +- extern struct hostent *gethostbyname(); +-#endif + int fd; /* Network socket */ + + INIT_TCP +diff --git a/src/h/ecl.h b/src/h/ecl.h +index 42e7b1dc2..ee1fca141 100644 +--- a/src/h/ecl.h ++++ b/src/h/ecl.h +@@ -22,6 +22,7 @@ + #include <stdarg.h> /* va_list */ + #include <setjmp.h> /* setjmp and buffers */ + #include <stdio.h> /* FILE */ ++#include <stdbool.h> + /* Microsoft VC++ does not have va_copy() */ + #if ( defined(_MSC_VER) && (_MSC_VER < 1800) ) || !defined(va_copy) + #define va_copy(dst, src) \ +diff --git a/src/h/external.h b/src/h/external.h +index a0276837d..99b924344 100755 +--- a/src/h/external.h ++++ b/src/h/external.h +@@ -744,7 +744,7 @@ extern ECL_API void ecl_force_output(cl_object strm); + extern ECL_API void ecl_finish_output(cl_object strm); + extern ECL_API void ecl_clear_input(cl_object strm); + extern ECL_API void ecl_clear_output(cl_object strm); +-extern ECL_API bool ecl_listen_stream(cl_object strm); ++extern ECL_API int ecl_listen_stream(cl_object strm); + extern ECL_API cl_object ecl_file_position(cl_object strm); + extern ECL_API cl_object ecl_file_position_set(cl_object strm, cl_object disp); + extern ECL_API cl_object ecl_file_length(cl_object strm); +diff --git a/src/h/internal.h b/src/h/internal.h +index 2c9bec5c3..b6d64e0cc 100755 +--- a/src/h/internal.h ++++ b/src/h/internal.h +@@ -468,7 +468,7 @@ extern void ecl_clear_bignum_registers(cl_env_ptr env); + + /* threads/mutex.d */ + +-extern cl_object si_mutex_timeout(); ++extern cl_object si_mutex_timeout(cl_object process, cl_object lock, cl_object timeout); + + /* print.d */ + +diff --git a/src/h/object.h b/src/h/object.h +index 1f9b581a2..bbf82bdb4 100644 +--- a/src/h/object.h ++++ b/src/h/object.h +@@ -23,9 +23,6 @@ extern "C" { + #define TRUE 1 /* boolean true value */ + #define FALSE 0 /* boolean false value */ + +-#if !defined(__cplusplus) && !defined(bool) +-typedef int bool; +-#endif + typedef unsigned char byte; + + /* +-- +GitLab + +From f69ded9777c43df20021788d2a4bfc0e9c6b4566 Mon Sep 17 00:00:00 2001 +From: Marius Gerbershagen <marius.gerbershagen@gmail.com> +Date: Sun, 4 May 2025 18:02:59 +0200 +Subject: [PATCH] remove bogus `#undef bool` statement + +Not sure why that was ever there. +--- + src/c/ffi/libraries.d | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/src/c/ffi/libraries.d b/src/c/ffi/libraries.d +index 9973ae457..098cd483d 100644 +--- a/src/c/ffi/libraries.d ++++ b/src/c/ffi/libraries.d +@@ -44,9 +44,6 @@ + # ifdef HAVE_DLFCN_H + # include <dlfcn.h> + # define INIT_PREFIX "init_fas_" +-# ifdef bool +-# undef bool +-# endif + # endif + # ifdef HAVE_MACH_O_DYLD_H + # include <mach-o/dyld.h> +-- +GitLab + diff --git a/dev-lisp/ecl/metadata.xml b/dev-lisp/ecl/metadata.xml new file mode 100644 index 000000000000..94495eddf267 --- /dev/null +++ b/dev-lisp/ecl/metadata.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://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="unicode">Make the produced lisp support unicode</flag> + </use> + <upstream> + <remote-id type="gitlab">embeddable-common-lisp/ecl</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lisp/flexi-streams/Manifest b/dev-lisp/flexi-streams/Manifest new file mode 100644 index 000000000000..7db7cf6b772c --- /dev/null +++ b/dev-lisp/flexi-streams/Manifest @@ -0,0 +1 @@ +DIST flexi-streams-1.0.19.tar.gz 393330 BLAKE2B 755f835ea7fe7edf0fd4ff317463a7ed86289aad428b4bbf461808900a9656711279de362a48c32d5ea8cb9933743b92c28729ad866950200d5d65bd7fab83c1 SHA512 03288868f86ce8c3c4ed63fb5f5f9d809bc0772834ef603793c861d09ad7ffb900c14021f1f1621111e7bd4ee3f0b0653985449391ee250d0f43385abbfdfdfa diff --git a/dev-lisp/flexi-streams/flexi-streams-1.0.19.ebuild b/dev-lisp/flexi-streams/flexi-streams-1.0.19.ebuild new file mode 100644 index 000000000000..3b609b6664d5 --- /dev/null +++ b/dev-lisp/flexi-streams/flexi-streams-1.0.19.ebuild @@ -0,0 +1,42 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +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 ~riscv ~sparc x86" + +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-lisp/trivial-gray-streams-20060925 +" +BDEPEND=" + test? ( + ${RDEPEND} + ) +" + +src_test() { + local -x CL_SOURCE_REGISTRY="${S}:${CLSYSTEMROOT}" + common-lisp-export-impl-args $(common-lisp-find-lisp-impl) + + ${CL_BINARY} ${CL_EVAL} "(asdf:test-system :flexi-streams)" || die +} + +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..3b73f947db73 --- /dev/null +++ b/dev-lisp/flexi-streams/metadata.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>common-lisp@gentoo.org</email> + <name>Gentoo Common Lisp Project</name> + </maintainer> + <longdescription lang="en"> + FLEXI-STREAMS implements "virtual" bivalent streams that can be + layered atop real binary or bivalent streams and that can be used + to read and write character data in various single- or multi-octet + encodings which can be changed on the fly. It also supplies + in-memory binary streams which are similar to string streams. + </longdescription> + <longdescription lang="es"> + FLEXI-STREAMS implementa flujos de datos bivalentes "virtuales" + que se pueden superponer a flujos de datos binarios reales o + bivalentes y que pueden ser utilizados para leer y escribir datos + en caracteres en distintas codificaciones sencillas o multi-octeto + que a su vez se pueden cambiar al vuelo. También proporciona flujos + de datos en memoria que son similares a los flujos de datos de + cadenas de caracteres. + </longdescription> + <upstream> + <remote-id type="github">edicl/flexi-streams</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lisp/gcl/Manifest b/dev-lisp/gcl/Manifest new file mode 100644 index 000000000000..dfb08e8f19ba --- /dev/null +++ b/dev-lisp/gcl/Manifest @@ -0,0 +1,3 @@ +DIST gcl-2.6.14.tar.gz 11725385 BLAKE2B 3e6a7fc359f94897d1062f5e5e31a0ae36f5d24ca0155fd22044cb967f1fd6a0303572dafe25b1a7abbc936db4e8caa93d0e50b1779886e2ba40e148fa868b8f SHA512 1a69f5e8195783c88b618a613253da1089b13e390dd259056df52f1ed95cf0c99358c34d3782c8eb297c07fda74deb7db359e6b9bf94590ee7fc34e94742eb14 +DIST gcl-2.6.15_pre3-spelling.patch.gz 10530 BLAKE2B ce2f4a2a568467c77ef58d6063df4596220a0826e18158e0f3308dc6c4a89451910a2c54a179131a4d0cb5362e7b20ba33691d2a80c02dc81e826d664298c29b SHA512 f72cf9c6607603f548220ee169fdbaf9151ea41f2be03209c258a261c6274b97c78b02e8258b2a2550ff9fcd8ab144a334789f274deedf0fe9f050a10bd54a67 +DIST gcl-Version_2_6_15pre3.tar.gz 11433299 BLAKE2B cee392674f465477d37bcdf724651f88e08b90a74ca3e79a561b99f0e61227332dbee77ed688cda7525341421df262a0a58c325576d6e8a5daaa1122ae36c6e4 SHA512 bf05c3f4ecad74a9e29b25969d3f82d39c9715bfa98c1b734b279a7886e60076ecb5896723fe1888255c4eecf4e5eda60696d25ad6a8e17eb55088b2a37ad3ce diff --git a/dev-lisp/gcl/files/64gcl-gentoo.el b/dev-lisp/gcl/files/64gcl-gentoo.el new file mode 100644 index 000000000000..e5e19f27cdcd --- /dev/null +++ b/dev-lisp/gcl/files/64gcl-gentoo.el @@ -0,0 +1,4 @@ +(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.15-riscv.patch b/dev-lisp/gcl/files/gcl-2.6.15-riscv.patch new file mode 100644 index 000000000000..1250ac2cf1e0 --- /dev/null +++ b/dev-lisp/gcl/files/gcl-2.6.15-riscv.patch @@ -0,0 +1,67 @@ +From bc3324432b859477feed47e7db0e97dd33b61d1f Mon Sep 17 00:00:00 2001 +From: Camm Maguire <camm@transcendence.maguirefamily.org> +Date: Fri, 23 Feb 2024 07:47:26 -0500 +Subject: update relocs for riscv64 + +--- + gcl/h/elf64_riscv64_reloc.h | 44 +++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 43 insertions(+), 1 deletion(-) + +diff --git a/gcl/h/elf64_riscv64_reloc.h b/gcl/h/elf64_riscv64_reloc.h +index c2f8232..08e94ce 100644 +--- a/h/elf64_riscv64_reloc.h ++++ b/h/elf64_riscv64_reloc.h +@@ -23,8 +23,50 @@ + case R_RISCV_JAL: + break; + case R_RISCV_64: +- store_val(where,MASK(64),(s+a)); ++ store_val(where,~0L,(s+a)); + break; + case R_RISCV_32: + store_val(where,MASK(32),(s+a)); + break; ++ case R_RISCV_32_PCREL: ++ store_val(where,MASK(32),(s+a)-p); ++ break; ++ case R_RISCV_ADD8: ++ add_val(where,MASK(8),(s+a)); ++ break; ++ case R_RISCV_ADD16: ++ add_val(where,MASK(16),(s+a)); ++ break; ++ case R_RISCV_ADD32: ++ add_val(where,MASK(32),(s+a)); ++ break; ++ case R_RISCV_ADD64: ++ add_val(where,~0L,(s+a)); ++ break; ++ case R_RISCV_SUB6: ++ add_val(where,MASK(6),-(s+a)); ++ break; ++ case R_RISCV_SUB8: ++ add_val(where,MASK(8),-(s+a)); ++ break; ++ case R_RISCV_SUB16: ++ add_val(where,MASK(16),-(s+a)); ++ break; ++ case R_RISCV_SUB32: ++ add_val(where,MASK(32),-(s+a)); ++ break; ++ case R_RISCV_SUB64: ++ add_val(where,~0L,-(s+a)); ++ break; ++ case R_RISCV_SET6: ++ store_val(where,MASK(6),(s+a)); ++ break; ++ case R_RISCV_SET8: ++ store_val(where,MASK(8),(s+a)); ++ break; ++ case R_RISCV_SET16: ++ store_val(where,MASK(16),(s+a)); ++ break; ++ case R_RISCV_SET32: ++ store_val(where,MASK(32),(s+a)); ++ break; +-- +cgit v1.1 diff --git a/dev-lisp/gcl/gcl-2.6.14.ebuild b/dev-lisp/gcl/gcl-2.6.14.ebuild new file mode 100644 index 000000000000..018b95d1eb15 --- /dev/null +++ b/dev-lisp/gcl/gcl-2.6.14.ebuild @@ -0,0 +1,106 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +inherit elisp-common flag-o-matic + +DESCRIPTION="GNU Common Lisp" +HOMEPAGE="https://www.gnu.org/software/gcl/gcl.html" +SRC_URI="https://ftp.gnu.org/gnu/${PN}/${P}.tar.gz" + +LICENSE="LGPL-2+ GPL-2+" +SLOT="0" +KEYWORDS="amd64 ~arm ~ppc ppc64 x86" +IUSE="+ansi athena emacs +readline tk X" +RESTRICT="strip" #205803 + +RDEPEND="dev-libs/gmp + virtual/latex-base + emacs? ( app-editors/emacs:= ) + readline? ( sys-libs/readline:= ) + athena? ( x11-libs/libXaw ) + tk? ( dev-lang/tk:= ) + X? ( x11-libs/libXt x11-libs/libXext x11-libs/libXmu x11-libs/libXaw )" +DEPEND="${RDEPEND} + virtual/texi2dvi + app-text/texi2html + >=dev-build/autoconf-2.52" + +src_configure() { + filter-lto # bug #931082 + strip-flags + append-cflags -std=gnu17 # bug #947758 + filter-flags -fstack-protector -fstack-protector-all + # breaks linking on multiple defined syms + #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 \ + $(use_enable readline) \ + $(use_enable ansi) \ + $(use_enable athena xgcl) \ + $(use_with X x) \ + ${tcl} +} + +src_compile() { + emake -j1 +} + +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 elisp/add-defaults.el + dodoc readme readme.gmp readme.xgcl ChangeLog doc/* info/*.pdf + dodoc -r info/gcl-si + doman man/man1/gcl.1 + doinfo info/gcl.info* info/gcl-si.info + + use athena && dodoc xgcl-2/*.pdf + + if use tk; then + dodoc -r info/gcl-tk + doinfo info/gcl-tk.info* + fi + + if use emacs; then + elisp-site-file-install "${FILESDIR}"/64${PN}-gentoo.el + elisp-install ${PN} elisp/*.el + fi +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/dev-lisp/gcl/gcl-2.6.15_pre3.ebuild b/dev-lisp/gcl/gcl-2.6.15_pre3.ebuild new file mode 100644 index 000000000000..4e421544b705 --- /dev/null +++ b/dev-lisp/gcl/gcl-2.6.15_pre3.ebuild @@ -0,0 +1,110 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +inherit elisp-common flag-o-matic + +DESCRIPTION="GNU Common Lisp" +HOMEPAGE="https://www.gnu.org/software/gcl/gcl.html" +SRC_URI="http://git.savannah.gnu.org/cgit/gcl.git/snapshot/${PN}-Version_2_6_15pre3.tar.gz + https://dev.gentoo.org/~grozin/${PF}-spelling.patch.gz" + +LICENSE="LGPL-2+ GPL-2+" +SLOT="0" +KEYWORDS="amd64 ~arm ~ppc ppc64 ~riscv x86" +IUSE="+ansi athena doc emacs +readline tk X" +RESTRICT="strip" #205803 + +RDEPEND="dev-libs/gmp + virtual/latex-base + emacs? ( app-editors/emacs:= ) + readline? ( sys-libs/readline:= ) + athena? ( x11-libs/libXaw ) + tk? ( dev-lang/tk:= ) + X? ( x11-libs/libXt x11-libs/libXext x11-libs/libXmu x11-libs/libXaw )" +DEPEND="${RDEPEND} + virtual/texi2dvi + app-text/texi2html + >=dev-build/autoconf-2.52" + +PATCHES=( + "${WORKDIR}"/${PF}-spelling.patch + # bug 893938 + "${FILESDIR}"/${PN}-2.6.15-riscv.patch +) +S="${WORKDIR}"/${PN}-Version_2_6_15pre3/${PN} + +src_configure() { + filter-lto # bug #931082 + strip-flags + append-cflags -std=gnu17 # bug #947758 + append-cppflags -std=gnu17 # ditto + 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 \ + $(use_enable readline) \ + $(use_enable ansi) \ + $(use_enable athena xgcl) \ + $(use_with X x) \ + ${tcl} +} + +src_compile() { + emake -j1 +} + +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 + dodoc readme readme.gmp readme.xgcl ChangeLog doc/* + + pushd "${D}"/usr/share/doc > /dev/null + rm dwdoc.tex || die "rm dwdoc.tex.bz2 failed" + if use doc; then + mv *.pdf gcl gcl-si gcl-tk dwdoc ${PF} || die "mv * ${PF} failed" + else + rm -rf *.pdf gcl gcl-si gcl-tk dwdoc + fi + popd > /dev/null + + if use emacs; then + elisp-site-file-install "${FILESDIR}"/64${PN}-gentoo.el + elisp-install ${PN} elisp/*.el + 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..c4d029b5b1cc --- /dev/null +++ b/dev-lisp/gcl/metadata.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>common-lisp@gentoo.org</email> + <name>Gentoo Common Lisp Project</name> + </maintainer> + <longdescription> + GCL is the official Common Lisp for the GNU project. Its design + makes use of the system's C compiler to compile to native object + code, providing for both good performance and facile portability. + </longdescription> + <use> + <flag name="ansi">Build a GCL with ANSI support (else build a traditional CLtL1 image)</flag> + <flag name="athena">Build xgcl - an interface to <pkg>x11-libs/libXaw</pkg></flag> + </use> +</pkgmetadata> diff --git a/dev-lisp/hyperspec/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-r3.ebuild b/dev-lisp/hyperspec/hyperspec-7.0-r3.ebuild new file mode 100644 index 000000000000..87f948981bae --- /dev/null +++ b/dev-lisp/hyperspec/hyperspec-7.0-r3.ebuild @@ -0,0 +1,35 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit readme.gentoo-r1 + +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" +S="${WORKDIR}" + +LICENSE="HyperSpec" +SLOT="0" +KEYWORDS="amd64 ~mips ppc ppc64 ~riscv ~sparc x86" + +src_install() { + docinto html + dodoc -r HyperSpec/{Body,Data,Front,Graphics,Issues} + dosym html /usr/share/doc/${PF}/HyperSpec + dosym -r /usr/share/doc/${PF} /usr/share/${PN} + + docinto . + dodoc HyperSpec-{README,Legalese}.text + local DOC_CONTENTS="A permanent link to the HyperSpec documentation + is provided at: ${EPREFIX}/usr/share/${PN}" + readme.gentoo_create_doc +} + +pkg_postinst() { + readme.gentoo_print_elog +} diff --git a/dev-lisp/hyperspec/metadata.xml b/dev-lisp/hyperspec/metadata.xml new file mode 100644 index 000000000000..0e907627e12d --- /dev/null +++ b/dev-lisp/hyperspec/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="project"> + <email>common-lisp@gentoo.org</email> + <name>Gentoo Common Lisp Project</name> +</maintainer> +<stabilize-allarches/> +</pkgmetadata> diff --git a/dev-lisp/metadata.xml b/dev-lisp/metadata.xml new file mode 100644 index 000000000000..fc0d76e9bd05 --- /dev/null +++ b/dev-lisp/metadata.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE catmetadata SYSTEM "https://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..628307540e08 --- /dev/null +++ b/dev-lisp/roswell/Manifest @@ -0,0 +1,3 @@ +DIST roswell-21.10.14.111.tar.gz 172464 BLAKE2B 816f2fbbf99be21f7416456fb724faf5e290090ad2130bdd6feb03573cb059bf21bd5419cbf5928c84d2a977c123b31597df6676f65a11ded0121acc37c589aa SHA512 d6979974807385e1e7be993610b5ed6ef5297ded21727162b6bc3240d402168cfe32b6b243f535c69b91620d0af4a3b7e046080be2881610ffbe0d3babfa3b23 +DIST roswell-22.12.14.113.tar.gz 170253 BLAKE2B ddb59d1778b0d0becfc8914edec850203aea979357ac8f33988053afaaa21c8302800af0b44a3e00e694b5deedf1c5d3306f47f8bce5d5f5b4aa5f8c8961e173 SHA512 f102297af67b5d5414f853fc428f39347cb09a604bff95ad50c7f5249582a053e00fa3bb59a52846e3afc8244b8de1a7ee4667847b829f7d176121c496fd038f +DIST roswell-23.10.14.114.tar.gz 171258 BLAKE2B 107c6d7c70077236ed588c84238c2d44b693742f787c5db17923c14a30c870121eed8aadfabfce98d373b06c090aaa77f5152085ff38e699f8e571d2e913386a SHA512 9bc4962d5e132c20a896342fff28138692e79a91657aa1d8642f431eaa2f757d72d92a792b079cfb9cf55e196af453f0e420d0f9e927a1c8f0daf93d54506bf4 diff --git a/dev-lisp/roswell/files/roswell-21.10.14.111.patch b/dev-lisp/roswell/files/roswell-21.10.14.111.patch new file mode 100644 index 000000000000..ff82a1013d41 --- /dev/null +++ b/dev-lisp/roswell/files/roswell-21.10.14.111.patch @@ -0,0 +1,27 @@ +--- roswell-21.10.14.111/configure.ac.ORIG 2022-04-11 14:29:44.336778578 +0000 ++++ roswell-21.10.14.111/configure.ac 2022-04-11 14:31:42.549505141 +0000 +@@ -59,9 +59,11 @@ + + AC_CHECK_HEADERS(gnu/libc-version.h) + +-AC_CHECK_HEADERS(windows.h,[with_windows=true]) ++#AC_CHECK_HEADERS(windows.h,[with_windows=true]) ++with_windows= + AM_CONDITIONAL([WITH_WINDOWS], [test "$with_windows" != ""]) +-AC_CHECK_TOOL([WINDRES], [windres], []) ++#AC_CHECK_TOOL([WINDRES], [windres], []) ++WINDRES= + AM_CONDITIONAL([WITH_WIN_ICON], [test "$WINDRES" != ""]) + + AC_CHECK_MEMBERS([struct dirent.d_type],,,[#include <dirent.h>]) +--- roswell-21.10.14.111/Makefile.am.ORIG 2022-04-11 14:28:16.220579397 +0000 ++++ roswell-21.10.14.111/Makefile.am 2022-04-11 14:28:56.773113318 +0000 +@@ -167,7 +167,7 @@ + + pack: $(PACK).tar.bz2 + +-WINPACK = roswell_$(VERSION)_$(shell if [ $$MSYSTEM = 'MINGW64' ];then echo amd64 ;else echo i686; fi) ++#WINPACK = roswell_$(VERSION)_$(shell if [ $$MSYSTEM = 'MINGW64' ];then echo amd64 ;else echo i686; fi) + + pack.zip: $(PACK).tar.bz2 + 7z a $(WINPACK).zip roswell
\ No newline at end of file diff --git a/dev-lisp/roswell/metadata.xml b/dev-lisp/roswell/metadata.xml new file mode 100644 index 000000000000..26aec25c2169 --- /dev/null +++ b/dev-lisp/roswell/metadata.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>sheepduke@gmail.com</email> + <name>YUE Daian</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <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> +</pkgmetadata> diff --git a/dev-lisp/roswell/roswell-21.10.14.111.ebuild b/dev-lisp/roswell/roswell-21.10.14.111.ebuild new file mode 100644 index 000000000000..de8998f15f2a --- /dev/null +++ b/dev-lisp/roswell/roswell-21.10.14.111.ebuild @@ -0,0 +1,34 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic + +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 + net-misc/curl" +DEPEND="${RDEPEND}" + +src_prepare() { + default + eautoreconf +} + +src_configure() { + # -Werror=lto-type-mismatch + # https://bugs.gentoo.org/856106 + # https://github.com/roswell/roswell/issues/584 + filter-lto + + default +} diff --git a/dev-lisp/roswell/roswell-22.12.14.113.ebuild b/dev-lisp/roswell/roswell-22.12.14.113.ebuild new file mode 100644 index 000000000000..de8998f15f2a --- /dev/null +++ b/dev-lisp/roswell/roswell-22.12.14.113.ebuild @@ -0,0 +1,34 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic + +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 + net-misc/curl" +DEPEND="${RDEPEND}" + +src_prepare() { + default + eautoreconf +} + +src_configure() { + # -Werror=lto-type-mismatch + # https://bugs.gentoo.org/856106 + # https://github.com/roswell/roswell/issues/584 + filter-lto + + default +} diff --git a/dev-lisp/roswell/roswell-23.10.14.114.ebuild b/dev-lisp/roswell/roswell-23.10.14.114.ebuild new file mode 100644 index 000000000000..4cc2bc188d97 --- /dev/null +++ b/dev-lisp/roswell/roswell-23.10.14.114.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic + +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 + net-misc/curl" +DEPEND="${RDEPEND}" + +# Patch from #822126 +src_prepare() { + PATCHES=( "${FILESDIR}/roswell-21.10.14.111.patch" ) + default + eautoreconf +} + +src_configure() { + # -Werror=lto-type-mismatch + # https://bugs.gentoo.org/856106 + # https://github.com/roswell/roswell/issues/584 + filter-lto + + default +} diff --git a/dev-lisp/sbcl/Manifest b/dev-lisp/sbcl/Manifest new file mode 100644 index 000000000000..b319d0d81fc8 --- /dev/null +++ b/dev-lisp/sbcl/Manifest @@ -0,0 +1,19 @@ +DIST bsd-sockets-test-2.3.6.patch.gz 3459 BLAKE2B f8ee83904a21944f15890c781aa46f66e0e5c5f59b5c03ba78b54fc8c1d4b1d88cae71bbb6f3f88451435eb7a3ab39a7168df047d9684391b46afc644dc9e96c SHA512 baaf803210c00074042d04e12e47919e8e187c8ae3374651a4205aded9d10bec078e5e17e04fcdcb666ab3f4bb1d7195c453b0f1d8b1fc5038e1ac22bf99ca35 +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.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.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.5.8-ppc64le-linux-binary.tar.bz2 10025597 BLAKE2B aac079e3585ebe9d5b610cf096e958edfd4410361b0d96b2fa88a285cbdce4133d89e1ddf0cf6729d43d6c3057365d07a3d73362f906fd8798b76c993210a8e5 SHA512 443ab604caa768c756f3322d7c599142a50227914bcd6be12434432daf1e3d5af0740d1ebdb166b856cc77ddf02451e29fcef9e29099f7bc4fb49ad61db17674 +DIST sbcl-2.2.9-x86-64-darwin-binary.tar.bz2 10944221 BLAKE2B 4511a3d6d10a638741f3794706dd4802adbba533087ba333e6d6cba2f2f4338e840a3cfb5e6490f437c4a4aad35ff37c729cff5754c5dc0896a8a1d36e1c09b0 SHA512 2416489b179ad411cd6f16d0ff4b8106b1ea0d57118939a401251faf9fbe97e4e6ee0f16778beedcee18068021bae09f0ecf931860b1cc62232a4b13a0990536 +DIST sbcl-2.3.3-armhf-linux-binary.tar.bz2 9932803 BLAKE2B 77e0da4a60fd74caaef3adbf29446a50323c18433cc36418d9e670e410882137cdd482ef4b2da989190c27d1cc737dba0848ad652044832337e39243088813f3 SHA512 b9810c2fe9f34ee974cb90b3b79dbb4c77053300fd029eae216fbb2772da539f2b71ca13c868772adf618f364fc73994a3a467e0a535fe5195b7eb6b0fee3571 +DIST sbcl-2.5.11-source.tar.bz2 8330163 BLAKE2B 41e5c27aca2d7d9cdc19b6b80b5f78f4ad42ba500b43534380a96114fccbc7d60900c223777047d5e55615ac75d997075c0ea2074f2c69c87211a82cfcf34316 SHA512 a2c73949004db0098f3fc5de63abc4d9f6d19e719e0c6c2343e30a9fc9ef264fa1b9702e15213065ccf1e3590c9cd2698c50960aea203fd8af593e729a7b7251 +DIST sbcl-2.5.11-x86-64-linux-binary.tar.bz2 12194407 BLAKE2B f7bfb9c31a12d026b226766b83683a7347b35f38301f1bcca64cf0082926d1ee76e5c74d6b961c119564bec093c91a8067b36b64993d2770c207e1c7798a4f10 SHA512 a5e2b49c71f0bce34737dc40d7b0c1bf07439b5585fc0415693b85c49af6a7587d636f2ffa38de1d97b6166995169f1308845c7e2eade31f6b723ecae4dfa9e4 +DIST sbcl-2.5.4-source.tar.bz2 8252514 BLAKE2B 9953e7ecfbef7fda728747d5aade2bc16074578bd7d07924e150f88072fb0ecbcf54a1a8a8e7f8bb4590186a8c639f240e74ebb5b4ebb6626ac7c1b7f8fd39e7 SHA512 f0e6c25c37d7c83c0ee8ae94f78438b2c0ed6491f080afec84c5cd7bc1eb65ba43982d8092b637b77d8764d6cb0de4b337c250f840184f27fe21e3944fdce31c +DIST sbcl-2.5.4-x86-64-linux-binary.tar.bz2 12030625 BLAKE2B eb176f3e16158e5afd44634b7e69229acb84ae799997e5504c328dc9d92fe378fbcc5ffa9f65441d63a7b7f02d9dd1547ff8f91ae9afb3328b704b28707b796d SHA512 fa962120a2f806289c6c8b60d40b9f6fd5c852d2dec48f0546780be7f4aa5d64e337924074e61573b38587839597398e82a2988aae579b7163960bb45466e4a2 +DIST sbcl-2.6.4-source.tar.bz2 8482159 BLAKE2B 36505b28469641fd7266cb3676e852558496df4c7252606f015fb7fdb5e9ef77028740c6ce18262e43a8041f7498577a83d5eeb3e64ad1f33ec147f40eccdb24 SHA512 a3997f5dcf778202df192de1ff8888e6d81b9d1152bc4ba0c7b1b549b663d9be9cea78bdb34cea02a77395c703c6208d14a80acad9a1aae07722b87ad803c09d +DIST sbcl-2.6.4-x86-64-linux-binary.tar.bz2 12324680 BLAKE2B 0dc952bc06bc358f3716b9139a4879c2b9e7e15bb768d8e786b208a4e90f2bddd38839129e2c9c62b359d5e1c1cf28ed86f7be5fdf72d5ce51197d05d75868fe SHA512 b21310b85fb970c0f744c272388148fa15bd2355417543816e2c015d8b586c3bd643bc15ad858eb7b78e033814437cfb7a80809c0bd26efd04332b3e19982fe0 +DIST sbcl-2.6.5-source.tar.bz2 8497853 BLAKE2B 70a2e275566b9153f622c681d962d917ac19ce8677834e45dc6e2a957bade17404ccdd037a93a6b63d529bf04cb7b261c7824c0d3180c856875ac9ea8b90f7d6 SHA512 00f0f6a41864ae3f93d95e693744188e3543fae94f465292992d1701e0d022a409574304ed3276789abb0f3a4894f0aaa0dfd2b83613ceec26ea1477d451d4a1 +DIST sbcl-2.6.5-x86-64-linux-binary.tar.bz2 12361070 BLAKE2B 32e412b569685f3c4ab5354a6b9168193e9dde331404fbd1e0d6e8c6fe1db6c232536ec206b4083d473a0c84c1fbe82c150d6e7e8e72fbd9b7f8eed2f5bff995 SHA512 9ea95c0f2c421600b60dcc8a73503ed7782a11d89b554c02939ed43fc67d1df9edcacb9e4a2e9dd1b2b17824ad3589ec234cb6c0216d3eb9c1af9749072df2f6 diff --git a/dev-lisp/sbcl/files/build-id-2.4.3.patch b/dev-lisp/sbcl/files/build-id-2.4.3.patch new file mode 100644 index 000000000000..ff8e37ce7280 --- /dev/null +++ b/dev-lisp/sbcl/files/build-id-2.4.3.patch @@ -0,0 +1,12 @@ +diff -r -U3 sbcl-2.4.3.orig/make-config.sh sbcl-2.4.3/make-config.sh +--- sbcl-2.4.3.orig/make-config.sh 2024-03-30 00:02:12.000000000 +0700 ++++ sbcl-2.4.3/make-config.sh 2024-04-03 22:07:49.912404814 +0700 +@@ -807,7 +807,7 @@ + fi + + if [ -n "$SOURCE_DATE_EPOCH" ]; then +- echo '"'hostname-id-"$SOURCE_DATE_EPOCH"'"' > output/build-id.inc ++ echo "\"${PV}\"" > output/build-id.inc + else + echo '"'`hostname`-`id -un`-`date +%Y-%m-%d-%H-%M-%S`'"' > output/build-id.inc + fi 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/concurrency-test-2.5.10.patch b/dev-lisp/sbcl/files/concurrency-test-2.5.10.patch new file mode 100644 index 000000000000..3926114adbb2 --- /dev/null +++ b/dev-lisp/sbcl/files/concurrency-test-2.5.10.patch @@ -0,0 +1,12 @@ +diff '--color=auto' -r -U3 sbcl-2.5.10.orig/contrib/sb-concurrency/tests/test-frlock.lisp sbcl-2.5.10/contrib/sb-concurrency/tests/test-frlock.lisp +--- sbcl-2.5.10.orig/contrib/sb-concurrency/tests/test-frlock.lisp 2025-10-28 00:13:20.000000000 +0700 ++++ sbcl-2.5.10/contrib/sb-concurrency/tests/test-frlock.lisp 2025-11-01 19:10:56.810091410 +0700 +@@ -83,7 +83,7 @@ + #+sb-thread + (deftest frlock.1 + (handler-case +- (sb-ext:with-timeout (* 40 #+gc-stress 10) ++ (sb-ext:with-timeout (* 240 #+gc-stress 10) + (test-frlocks #+win32 :outer-write-pause #+win32 t )) + (sb-ext:timeout (c) + (error "~A" c))) diff --git a/dev-lisp/sbcl/files/etags-2.1.0.patch b/dev-lisp/sbcl/files/etags-2.1.0.patch new file mode 100644 index 000000000000..8f14e5038614 --- /dev/null +++ b/dev-lisp/sbcl/files/etags-2.1.0.patch @@ -0,0 +1,10 @@ +diff -r -U2 sbcl-2.1.0.orig/src/runtime/GNUmakefile sbcl-2.1.0/src/runtime/GNUmakefile +--- sbcl-2.1.0.orig/src/runtime/GNUmakefile 2020-12-29 17:05:25.000000000 +0700 ++++ sbcl-2.1.0/src/runtime/GNUmakefile 2021-01-28 18:02:57.682523052 +0700 +@@ -12,5 +12,5 @@ + .PHONY: all clean TAGS tags targets + +-all: targets tags ++all: targets + TARGET=sbcl + diff --git a/dev-lisp/sbcl/files/sb-posix-test-2.5.0.patch b/dev-lisp/sbcl/files/sb-posix-test-2.5.0.patch new file mode 100644 index 000000000000..919dc8d0718d --- /dev/null +++ b/dev-lisp/sbcl/files/sb-posix-test-2.5.0.patch @@ -0,0 +1,32 @@ +diff '--color=auto' -r -U2 sbcl-2.5.0.orig/contrib/sb-posix/posix-tests.lisp sbcl-2.5.0/contrib/sb-posix/posix-tests.lisp +--- sbcl-2.5.0.orig/contrib/sb-posix/posix-tests.lisp 2024-12-29 17:12:03.000000000 +0700 ++++ sbcl-2.5.0/contrib/sb-posix/posix-tests.lisp 2024-12-29 23:01:52.817298778 +0700 +@@ -163,16 +163,16 @@ + #+unix (member err `(,sb-posix:enotdir ,sb-posix:eacces))))) + +-#-haiku +-(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 freebsd) ,sb-posix:eisdir +- #+win32 ,sb-posix::eacces #+win32 ,sb-posix::enotempty +- #+sunos ,sb-posix::einval +- #-(or darwin openbsd freebsd win32 sunos haiku) ,sb-posix::ebusy)))) +- t) ++;; #-haiku ++;; (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 freebsd) ,sb-posix:eisdir ++;; #+win32 ,sb-posix::eacces #+win32 ,sb-posix::enotempty ++;; #+sunos ,sb-posix::einval ++;; #-(or darwin openbsd freebsd win32 sunos haiku) ,sb-posix::ebusy)))) ++;; t) + + (deftest rmdir.error.4 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..9a9f699bd5e4 --- /dev/null +++ b/dev-lisp/sbcl/metadata.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>grozin@gentoo.org</email> + <name>Andrey Grozin</name> + </maintainer> + <maintainer type="project"> + <email>common-lisp@gentoo.org</email> + <name>Gentoo Common Lisp Project</name> + </maintainer> + <longdescription>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="system-bootstrap">Bootstrap SBCL using either system SBCL installation or <pkg>dev-lisp/clisp</pkg></flag> + <flag name="unicode">Make the produced lisp support unicode</flag> + </use> + <upstream> + <remote-id type="sourceforge">sbcl</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lisp/sbcl/sbcl-2.5.11.ebuild b/dev-lisp/sbcl/sbcl-2.5.11.ebuild new file mode 100644 index 000000000000..d50a42db493b --- /dev/null +++ b/dev-lisp/sbcl/sbcl-2.5.11.ebuild @@ -0,0 +1,274 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit 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.5.11 +BV_PPC=1.2.7 +BV_PPC64LE=1.5.8 +BV_SPARC=1.0.28 +BV_ALPHA=1.0.28 +BV_ARM=2.3.3 +BV_ARM64=1.4.2 +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="https://www.sbcl.org/ https://sbcl.sourceforge.net/" +BSD_SOCKETS_TEST_PATCH=bsd-sockets-test-2.3.6.patch +SRC_URI="https://downloads.sourceforge.net/sbcl/${P}-source.tar.bz2 + https://dev.gentoo.org/~grozin/${BSD_SOCKETS_TEST_PATCH}.gz + !system-bootstrap? ( + x86? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + amd64? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + ppc? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + ppc64? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_PPC64LE}-ppc64le-linux-binary.tar.bz2 ) + sparc? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + alpha? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 ) + arm? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 ) + arm64? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_ARM64}-arm64-linux-binary.tar.bz2 ) + x64-macos? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 ) + x64-solaris? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 ) + )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="-* amd64 ppc ppc64 ~riscv ~sparc ~x86 ~x64-macos" +IUSE="system-bootstrap debug doc source +threads +unicode +zstd" + +CDEPEND=">=dev-lisp/asdf-3.3:= \ + prefix? ( dev-util/patchelf )" +# bug #843851 +BDEPEND="${CDEPEND} + dev-debug/strace + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + system-bootstrap? ( || ( >=dev-lisp/ecl-24.5.10 dev-lisp/clisp dev-lisp/sbcl ) )" +RDEPEND="${CDEPEND} + zstd? ( app-arch/zstd ) + !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 zstd)" ":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} + if ! use system-bootstrap ; then + mv sbcl-*-* sbcl-binary || die + fi + cd "${S}" +} + +src_prepare() { + # bug #468482 + eapply "${FILESDIR}"/concurrency-test-2.5.10.patch + # bugs #486552, #527666, #517004 + eapply "${WORKDIR}"/${BSD_SOCKETS_TEST_PATCH} + # bugs #560276, #561018 + eapply "${FILESDIR}"/sb-posix-test-2.5.0.patch + # bug #767742 + eapply "${FILESDIR}"/etags-2.1.0.patch + # Use ${PV} as build-id, bug #797574 + eapply "${FILESDIR}"/build-id-2.4.3.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 + + # set interpreter for Prefix + if use prefix ; then + patchelf --set-interpreter \ + "${EPREFIX}/$(get_libdir)"/ld-linux-x86-64.so.2 \ + "${WORKDIR}"/sbcl-binary/src/runtime/sbcl + fi + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + local bootstrap_lisp="sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" + + if use system-bootstrap ; then + if has_version "dev-lisp/sbcl" ; then + bootstrap_lisp="sbcl --no-sysinit --no-userinit --disable-debugger" + elif has_version "dev-lisp/ecl" ; then + bootstrap_lisp="ecl" + elif has_version "dev-lisp/clisp" ; then + bootstrap_lisp="clisp" + else + die "could not find a bootstrap_lisp" + fi + fi + + # Bug #869434 + append-cppflags -D_GNU_SOURCE + + # 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}" \ + SBCL_HOME="/usr/$(get_libdir)/sbcl" SBCL_SOURCE_ROOT="/usr/$(get_libdir)/sbcl/src" \ + GNUMAKE=make PV=${PV} ./make.sh \ + "${bootstrap_lisp}" \ + || 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 + for d in contrib/*/; do + cp -av "$d" "${ED}/usr/$(get_libdir)/sbcl/" || die + done + 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.5.4.ebuild b/dev-lisp/sbcl/sbcl-2.5.4.ebuild new file mode 100644 index 000000000000..5ca9b5181a14 --- /dev/null +++ b/dev-lisp/sbcl/sbcl-2.5.4.ebuild @@ -0,0 +1,270 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit 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.5.4 +BV_PPC=1.2.7 +BV_PPC64LE=1.5.8 +BV_SPARC=1.0.28 +BV_ALPHA=1.0.28 +BV_ARM=2.3.3 +BV_ARM64=1.4.2 +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="https://www.sbcl.org/ https://sbcl.sourceforge.net/" +BSD_SOCKETS_TEST_PATCH=bsd-sockets-test-2.3.6.patch +SRC_URI="https://downloads.sourceforge.net/sbcl/${P}-source.tar.bz2 + https://dev.gentoo.org/~grozin/${BSD_SOCKETS_TEST_PATCH}.gz + !system-bootstrap? ( + x86? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + amd64? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + ppc? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + ppc64? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_PPC64LE}-ppc64le-linux-binary.tar.bz2 ) + sparc? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + alpha? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 ) + arm? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 ) + arm64? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_ARM64}-arm64-linux-binary.tar.bz2 ) + x64-macos? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 ) + x64-solaris? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 ) + )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="-* amd64 ppc ppc64 ~riscv ~sparc x86 ~x64-macos" +IUSE="system-bootstrap debug doc source +threads +unicode +zstd" + +CDEPEND=">=dev-lisp/asdf-3.3:= \ + prefix? ( dev-util/patchelf )" +# bug #843851 +BDEPEND="${CDEPEND} + dev-debug/strace + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + system-bootstrap? ( || ( dev-lisp/clisp dev-lisp/sbcl ) )" +RDEPEND="${CDEPEND} + zstd? ( app-arch/zstd ) + !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 zstd)" ":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} + if ! use system-bootstrap ; then + mv sbcl-*-* sbcl-binary || die + fi + cd "${S}" +} + +src_prepare() { + # bug #468482 + eapply "${FILESDIR}"/concurrency-test-2.0.1.patch + # bugs #486552, #527666, #517004 + eapply "${WORKDIR}"/${BSD_SOCKETS_TEST_PATCH} + # bugs #560276, #561018 + eapply "${FILESDIR}"/sb-posix-test-2.5.0.patch + # bug #767742 + eapply "${FILESDIR}"/etags-2.1.0.patch + # Use ${PV} as build-id, bug #797574 + eapply "${FILESDIR}"/build-id-2.4.3.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 + + # set interpreter for Prefix + if use prefix ; then + patchelf --set-interpreter \ + "${EPREFIX}/$(get_libdir)"/ld-linux-x86-64.so.2 \ + "${WORKDIR}"/sbcl-binary/src/runtime/sbcl + fi + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + local bootstrap_lisp="sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" + + if use system-bootstrap ; then + if has_version "dev-lisp/sbcl" ; then + bootstrap_lisp="sbcl --no-sysinit --no-userinit --disable-debugger" + else + bootstrap_lisp="clisp" + fi + fi + + # Bug #869434 + append-cppflags -D_GNU_SOURCE + + # 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}" \ + SBCL_HOME="/usr/$(get_libdir)/sbcl" SBCL_SOURCE_ROOT="/usr/$(get_libdir)/sbcl/src" \ + GNUMAKE=make PV=${PV} ./make.sh \ + "${bootstrap_lisp}" \ + || 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 + for d in contrib/*/; do + cp -av "$d" "${ED}/usr/$(get_libdir)/sbcl/" || die + done + 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.6.4.ebuild b/dev-lisp/sbcl/sbcl-2.6.4.ebuild new file mode 100644 index 000000000000..99fb0f20b98f --- /dev/null +++ b/dev-lisp/sbcl/sbcl-2.6.4.ebuild @@ -0,0 +1,271 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic pax-utils toolchain-funcs + +#same order as http://www.sbcl.org/platform-table.html +BV_AMD64=2.6.4 +BV_X86=1.4.3 +BV_PPC=1.2.7 +BV_PPC64LE=1.5.8 +BV_SPARC=1.0.28 +BV_ARM=2.3.3 +BV_ARM64=1.4.2 +BV_X64_MACOS=2.2.9 +BV_X64_SOLARIS=1.2.7 +BV_X86_SOLARIS=1.2.7 +BV_SPARC_SOLARIS=2.0.4 + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp" +HOMEPAGE="https://www.sbcl.org/ https://sbcl.sourceforge.net/" +BSD_SOCKETS_TEST_PATCH=bsd-sockets-test-2.3.6.patch +SRC_URI="https://downloads.sourceforge.net/sbcl/${P}-source.tar.bz2 + https://dev.gentoo.org/~grozin/${BSD_SOCKETS_TEST_PATCH}.gz + !system-bootstrap? ( + amd64? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + x86? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + ppc? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + ppc64? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_PPC64LE}-ppc64le-linux-binary.tar.bz2 ) + sparc? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + arm? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 ) + arm64? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_ARM64}-arm64-linux-binary.tar.bz2 ) + x64-macos? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 ) + x64-solaris? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 ) + )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="-* ~amd64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos" +IUSE="system-bootstrap debug doc source +threads +unicode +zstd" + +CDEPEND=">=dev-lisp/asdf-3.3:= \ + prefix? ( dev-util/patchelf )" +# bug #843851 +BDEPEND="${CDEPEND} + dev-debug/strace + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + system-bootstrap? ( || ( >=dev-lisp/ecl-24.5.10 dev-lisp/clisp dev-lisp/sbcl ) )" +RDEPEND="${CDEPEND} + zstd? ( app-arch/zstd ) + !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 zstd)" ":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} + if ! use system-bootstrap ; then + mv sbcl-*-* sbcl-binary || die + fi + cd "${S}" +} + +src_prepare() { + # bug #468482 + eapply "${FILESDIR}"/concurrency-test-2.5.10.patch + # bugs #486552, #527666, #517004 + eapply "${WORKDIR}"/${BSD_SOCKETS_TEST_PATCH} + # bugs #560276, #561018 + eapply "${FILESDIR}"/sb-posix-test-2.5.0.patch + # bug #767742 + eapply "${FILESDIR}"/etags-2.1.0.patch + # Use ${PV} as build-id, bug #797574 + eapply "${FILESDIR}"/build-id-2.4.3.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 + + # set interpreter for Prefix + if use prefix ; then + patchelf --set-interpreter \ + "${EPREFIX}/$(get_libdir)"/ld-linux-x86-64.so.2 \ + "${WORKDIR}"/sbcl-binary/src/runtime/sbcl + fi + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + local bootstrap_lisp="sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" + + if use system-bootstrap ; then + if has_version "dev-lisp/sbcl" ; then + bootstrap_lisp="sbcl --no-sysinit --no-userinit --disable-debugger" + elif has_version "dev-lisp/ecl" ; then + bootstrap_lisp="ecl" + elif has_version "dev-lisp/clisp" ; then + bootstrap_lisp="clisp" + else + die "could not find a bootstrap_lisp" + fi + fi + + # Bug #869434 + append-cppflags -D_GNU_SOURCE + + # 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}" \ + SBCL_HOME="/usr/$(get_libdir)/sbcl" SBCL_SOURCE_ROOT="/usr/$(get_libdir)/sbcl/src" \ + GNUMAKE=make PV=${PV} ./make.sh \ + "${bootstrap_lisp}" \ + || 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 + for d in contrib/*/; do + cp -av "$d" "${ED}/usr/$(get_libdir)/sbcl/" || die + done + 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.6.5.ebuild b/dev-lisp/sbcl/sbcl-2.6.5.ebuild new file mode 100644 index 000000000000..06b7ba115b7c --- /dev/null +++ b/dev-lisp/sbcl/sbcl-2.6.5.ebuild @@ -0,0 +1,271 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic pax-utils toolchain-funcs + +#same order as http://www.sbcl.org/platform-table.html +BV_AMD64=2.6.5 +BV_X86=1.4.3 +BV_PPC=1.2.7 +BV_PPC64LE=1.5.8 +BV_SPARC=1.0.28 +BV_ARM=2.3.3 +BV_ARM64=1.4.2 +BV_X64_MACOS=2.2.9 +BV_X64_SOLARIS=1.2.7 +BV_X86_SOLARIS=1.2.7 +BV_SPARC_SOLARIS=2.0.4 + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp" +HOMEPAGE="https://www.sbcl.org/ https://sbcl.sourceforge.net/" +BSD_SOCKETS_TEST_PATCH=bsd-sockets-test-2.3.6.patch +SRC_URI="https://downloads.sourceforge.net/sbcl/${P}-source.tar.bz2 + https://dev.gentoo.org/~grozin/${BSD_SOCKETS_TEST_PATCH}.gz + !system-bootstrap? ( + amd64? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + x86? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + ppc? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + ppc64? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_PPC64LE}-ppc64le-linux-binary.tar.bz2 ) + sparc? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + arm? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 ) + arm64? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_ARM64}-arm64-linux-binary.tar.bz2 ) + x64-macos? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 ) + x64-solaris? ( https://downloads.sourceforge.net/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 ) + )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="-* ~amd64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos" +IUSE="system-bootstrap debug doc source +threads +unicode +zstd" + +CDEPEND=">=dev-lisp/asdf-3.3:= \ + prefix? ( dev-util/patchelf )" +# bug #843851 +BDEPEND="${CDEPEND} + dev-debug/strace + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + system-bootstrap? ( || ( >=dev-lisp/ecl-24.5.10 dev-lisp/clisp dev-lisp/sbcl ) )" +RDEPEND="${CDEPEND} + zstd? ( app-arch/zstd ) + !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 zstd)" ":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} + if ! use system-bootstrap ; then + mv sbcl-*-* sbcl-binary || die + fi + cd "${S}" +} + +src_prepare() { + # bug #468482 + eapply "${FILESDIR}"/concurrency-test-2.5.10.patch + # bugs #486552, #527666, #517004 + eapply "${WORKDIR}"/${BSD_SOCKETS_TEST_PATCH} + # bugs #560276, #561018 + eapply "${FILESDIR}"/sb-posix-test-2.5.0.patch + # bug #767742 + eapply "${FILESDIR}"/etags-2.1.0.patch + # Use ${PV} as build-id, bug #797574 + eapply "${FILESDIR}"/build-id-2.4.3.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 + + # set interpreter for Prefix + if use prefix ; then + patchelf --set-interpreter \ + "${EPREFIX}/$(get_libdir)"/ld-linux-x86-64.so.2 \ + "${WORKDIR}"/sbcl-binary/src/runtime/sbcl + fi + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + local bootstrap_lisp="sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" + + if use system-bootstrap ; then + if has_version "dev-lisp/sbcl" ; then + bootstrap_lisp="sbcl --no-sysinit --no-userinit --disable-debugger" + elif has_version "dev-lisp/ecl" ; then + bootstrap_lisp="ecl" + elif has_version "dev-lisp/clisp" ; then + bootstrap_lisp="clisp" + else + die "could not find a bootstrap_lisp" + fi + fi + + # Bug #869434 + append-cppflags -D_GNU_SOURCE + + # 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}" \ + SBCL_HOME="/usr/$(get_libdir)/sbcl" SBCL_SOURCE_ROOT="/usr/$(get_libdir)/sbcl/src" \ + GNUMAKE=make PV=${PV} ./make.sh \ + "${bootstrap_lisp}" \ + || 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 + for d in contrib/*/; do + cp -av "$d" "${ED}/usr/$(get_libdir)/sbcl/" || die + done + 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..ab49f9d34032 --- /dev/null +++ b/dev-lisp/trivial-gray-streams/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>common-lisp@gentoo.org</email> + <name>Gentoo Common Lisp Project</name> + </maintainer> +</pkgmetadata> diff --git a/dev-lisp/trivial-gray-streams/trivial-gray-streams-20170830-r1.ebuild b/dev-lisp/trivial-gray-streams/trivial-gray-streams-20170830-r1.ebuild new file mode 100644 index 000000000000..538c3a71827a --- /dev/null +++ b/dev-lisp/trivial-gray-streams/trivial-gray-streams-20170830-r1.ebuild @@ -0,0 +1,14 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit common-lisp-3 + +DESCRIPTION="A thin compatibility layer between Gray Stream Common Lisp implementations" +HOMEPAGE="https://trivial-gray-streams.common-lisp.dev/" +SRC_URI="mirror://gentoo/a9/${P}.tar.bz2" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="amd64 ~ppc ~riscv ~sparc x86" diff --git a/dev-lisp/uiop/Manifest b/dev-lisp/uiop/Manifest new file mode 100644 index 000000000000..d6eaea01c5a1 --- /dev/null +++ b/dev-lisp/uiop/Manifest @@ -0,0 +1 @@ +DIST uiop-3.3.5.tar.gz 103922 BLAKE2B af730c5241245f7d6f41fff32c734a2e3f8c4a86590e5b2cacea0af1f71fdc8f89849c35cb906623d76046ee1928ad1b913364eea3819b546aa37a4494f1fa2b SHA512 33faf9c1d7e48d1573dd17201cbce312ef42edf64ad98576c25fdc51dcd0421322678e9e31f0558450768c6f742882fea80980d2c393b2d64359198091a939f6 diff --git a/dev-lisp/uiop/metadata.xml b/dev-lisp/uiop/metadata.xml new file mode 100644 index 000000000000..4de45c7d62d6 --- /dev/null +++ b/dev-lisp/uiop/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="project"> + <email>common-lisp@gentoo.org</email> + <name>Gentoo Common Lisp Project</name> +</maintainer> +</pkgmetadata> diff --git a/dev-lisp/uiop/uiop-3.3.5.ebuild b/dev-lisp/uiop/uiop-3.3.5.ebuild new file mode 100644 index 000000000000..df91b4d69693 --- /dev/null +++ b/dev-lisp/uiop/uiop-3.3.5.ebuild @@ -0,0 +1,16 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +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 ~mips ppc ppc64 ~riscv ~sparc x86 ~x64-macos" + +RDEPEND="~dev-lisp/asdf-${PV}" |
