summaryrefslogtreecommitdiff
path: root/dev-lisp
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-04 16:47:34 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-04 16:47:34 -0500
commitdda948891d3731927b821ce31f9d9a2d03ba20c5 (patch)
tree99cd40be4cbb0606260da212cd81b8ab2db9da9b /dev-lisp
parenta3ceca1b4c0d9bdb550dc23f06ffbb5a8e033bc7 (diff)
downloadbaldeagleos-repo-dda948891d3731927b821ce31f9d9a2d03ba20c5.tar.gz
baldeagleos-repo-dda948891d3731927b821ce31f9d9a2d03ba20c5.tar.xz
baldeagleos-repo-dda948891d3731927b821ce31f9d9a2d03ba20c5.zip
Adding metadata
Diffstat (limited to 'dev-lisp')
-rw-r--r--dev-lisp/abcl/Manifest2
-rw-r--r--dev-lisp/abcl/abcl-1.10.0.ebuild34
-rw-r--r--dev-lisp/abcl/abcl-1.9.3-r1.ebuild34
-rw-r--r--dev-lisp/abcl/metadata.xml20
-rw-r--r--dev-lisp/alexandria/Manifest1
-rw-r--r--dev-lisp/alexandria/alexandria-1.4.ebuild39
-rw-r--r--dev-lisp/alexandria/metadata.xml42
-rw-r--r--dev-lisp/asdf/Manifest1
-rw-r--r--dev-lisp/asdf/asdf-3.3.5-r1.ebuild72
-rw-r--r--dev-lisp/asdf/files/asdf-3.3.5-test-utilities.patch27
-rw-r--r--dev-lisp/asdf/files/gentoo-init.lisp12
-rw-r--r--dev-lisp/asdf/files/source-registry.conf5
-rw-r--r--dev-lisp/asdf/metadata.xml9
-rw-r--r--dev-lisp/c2ffi/Manifest1
-rw-r--r--dev-lisp/c2ffi/c2ffi-21.1.0.20260104.ebuild31
-rw-r--r--dev-lisp/c2ffi/metadata.xml13
-rw-r--r--dev-lisp/cl-ppcre-unicode/Manifest2
-rw-r--r--dev-lisp/cl-ppcre-unicode/cl-ppcre-unicode-2.1.0-r1.ebuild25
-rw-r--r--dev-lisp/cl-ppcre-unicode/cl-ppcre-unicode-2.1.2.ebuild25
-rw-r--r--dev-lisp/cl-ppcre-unicode/metadata.xml20
-rw-r--r--dev-lisp/cl-ppcre/Manifest2
-rw-r--r--dev-lisp/cl-ppcre/cl-ppcre-2.1.0-r1.ebuild30
-rw-r--r--dev-lisp/cl-ppcre/cl-ppcre-2.1.2.ebuild30
-rw-r--r--dev-lisp/cl-ppcre/metadata.xml31
-rw-r--r--dev-lisp/cl-unicode/Manifest1
-rw-r--r--dev-lisp/cl-unicode/cl-unicode-0.1.5-r1.ebuild40
-rw-r--r--dev-lisp/cl-unicode/metadata.xml27
-rw-r--r--dev-lisp/clisp/Manifest1
-rw-r--r--dev-lisp/clisp/clisp-2.49.92-r1.ebuild147
-rw-r--r--dev-lisp/clisp/clisp-2.49.92-r3.ebuild194
-rw-r--r--dev-lisp/clisp/files/clisp-2.49.92-after_glibc_cfree_bdb.patch185
-rw-r--r--dev-lisp/clisp/files/clisp-2.49.92-build-Build-genclx-without-gnulib.patch52
-rw-r--r--dev-lisp/clisp/files/clisp-2.49.92-gdbm_and_bdb5.3.patch105
-rw-r--r--dev-lisp/clisp/metadata.xml26
-rw-r--r--dev-lisp/clozurecl/Manifest5
-rw-r--r--dev-lisp/clozurecl/clozurecl-1.12.2.ebuild81
-rw-r--r--dev-lisp/clozurecl/clozurecl-1.13.ebuild81
-rw-r--r--dev-lisp/clozurecl/metadata.xml9
-rw-r--r--dev-lisp/clx/Manifest1
-rw-r--r--dev-lisp/clx/clx-0.7.5-r1.ebuild35
-rw-r--r--dev-lisp/clx/metadata.xml23
-rw-r--r--dev-lisp/cmucl/Manifest2
-rw-r--r--dev-lisp/cmucl/cmucl-21e.ebuild106
-rw-r--r--dev-lisp/cmucl/files/cmucl-21c-execstack-fixes.patch118
-rw-r--r--dev-lisp/cmucl/files/cmucl-21e-version.patch9
-rw-r--r--dev-lisp/cmucl/files/cmuclrc9
-rw-r--r--dev-lisp/cmucl/files/site-init.lisp.in56
-rw-r--r--dev-lisp/cmucl/metadata.xml38
-rw-r--r--dev-lisp/ecl/Manifest3
-rw-r--r--dev-lisp/ecl/ecl-24.5.10-r1.ebuild94
-rw-r--r--dev-lisp/ecl/ecl-24.5.10.ebuild89
-rw-r--r--dev-lisp/ecl/ecl-26.3.27.ebuild89
-rw-r--r--dev-lisp/ecl/ecl-26.5.5.ebuild89
-rw-r--r--dev-lisp/ecl/files/README.gentoo13
-rw-r--r--dev-lisp/ecl/files/ecl-16.1.3-build.patch10
-rw-r--r--dev-lisp/ecl/files/ecl-16.1.3-headers-gentoo.patch15
-rw-r--r--dev-lisp/ecl/files/ecl-21.2.1-donotcompressinfo.patch35
-rw-r--r--dev-lisp/ecl/files/ecl-24.5.10-gcc15.patch229
-rw-r--r--dev-lisp/ecl/metadata.xml20
-rw-r--r--dev-lisp/flexi-streams/Manifest1
-rw-r--r--dev-lisp/flexi-streams/flexi-streams-1.0.19.ebuild42
-rw-r--r--dev-lisp/flexi-streams/metadata.xml25
-rw-r--r--dev-lisp/gcl/Manifest3
-rw-r--r--dev-lisp/gcl/files/64gcl-gentoo.el4
-rw-r--r--dev-lisp/gcl/files/bootstrap-gcl7
-rw-r--r--dev-lisp/gcl/files/gcl-2.6.15-riscv.patch67
-rw-r--r--dev-lisp/gcl/gcl-2.6.14.ebuild106
-rw-r--r--dev-lisp/gcl/gcl-2.6.15_pre3.ebuild110
-rw-r--r--dev-lisp/gcl/metadata.xml19
-rw-r--r--dev-lisp/hyperspec/Manifest1
-rw-r--r--dev-lisp/hyperspec/hyperspec-7.0-r3.ebuild35
-rw-r--r--dev-lisp/hyperspec/metadata.xml10
-rw-r--r--dev-lisp/metadata.xml39
-rw-r--r--dev-lisp/roswell/Manifest3
-rw-r--r--dev-lisp/roswell/files/roswell-21.10.14.111.patch27
-rw-r--r--dev-lisp/roswell/metadata.xml18
-rw-r--r--dev-lisp/roswell/roswell-21.10.14.111.ebuild34
-rw-r--r--dev-lisp/roswell/roswell-22.12.14.113.ebuild34
-rw-r--r--dev-lisp/roswell/roswell-23.10.14.114.ebuild36
-rw-r--r--dev-lisp/sbcl/Manifest19
-rw-r--r--dev-lisp/sbcl/files/build-id-2.4.3.patch12
-rw-r--r--dev-lisp/sbcl/files/concurrency-test-2.0.1.patch12
-rw-r--r--dev-lisp/sbcl/files/concurrency-test-2.5.10.patch12
-rw-r--r--dev-lisp/sbcl/files/etags-2.1.0.patch10
-rw-r--r--dev-lisp/sbcl/files/sb-posix-test-2.5.0.patch32
-rw-r--r--dev-lisp/sbcl/files/verbose-build-2.0.3.patch29
-rw-r--r--dev-lisp/sbcl/metadata.xml32
-rw-r--r--dev-lisp/sbcl/sbcl-2.5.11.ebuild274
-rw-r--r--dev-lisp/sbcl/sbcl-2.5.4.ebuild270
-rw-r--r--dev-lisp/sbcl/sbcl-2.6.4.ebuild271
-rw-r--r--dev-lisp/sbcl/sbcl-2.6.5.ebuild271
-rw-r--r--dev-lisp/trivial-gray-streams/Manifest1
-rw-r--r--dev-lisp/trivial-gray-streams/metadata.xml9
-rw-r--r--dev-lisp/trivial-gray-streams/trivial-gray-streams-20170830-r1.ebuild14
-rw-r--r--dev-lisp/uiop/Manifest1
-rw-r--r--dev-lisp/uiop/metadata.xml9
-rw-r--r--dev-lisp/uiop/uiop-3.3.5.ebuild16
97 files changed, 4460 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..69fa6ddee690
--- /dev/null
+++ b/dev-lisp/abcl/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/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>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</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..7885a53b3fd3
--- /dev/null
+++ b/dev-lisp/alexandria/metadata.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/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>
+ <origin>baldeagleos-repo</origin>
+</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..6a0ceb2983e2
--- /dev/null
+++ b/dev-lisp/asdf/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</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..9266ef85aa51
--- /dev/null
+++ b/dev-lisp/c2ffi/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/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>
+ <origin>baldeagleos-repo</origin>
+</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..e91792816927
--- /dev/null
+++ b/dev-lisp/cl-ppcre-unicode/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/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>
+ <origin>baldeagleos-repo</origin>
+</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..565aceb2a128
--- /dev/null
+++ b/dev-lisp/cl-ppcre/metadata.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/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>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/dev-lisp/cl-unicode/Manifest b/dev-lisp/cl-unicode/Manifest
new file mode 100644
index 000000000000..e73222844aa1
--- /dev/null
+++ b/dev-lisp/cl-unicode/Manifest
@@ -0,0 +1 @@
+DIST cl-unicode-0.1.5.tar.gz 485666 BLAKE2B 9db0714c24de4c5c79f3d7eeb471ac5d7a06dd29abd1c3c4b728c9ce98b175ea97ed20923c957a75ac7dee290f095a5c28c92da5ddc7e808d28ca624d84a37cd SHA512 0b66c0e711f7e37423aa638b43017adff648189a32032702b082dff140b2255847a15572a20f21e6f82a2e8cbd547f7f99bf9176e4fa464aa1d938575d8a2390
diff --git a/dev-lisp/cl-unicode/cl-unicode-0.1.5-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..71306bdd23fd
--- /dev/null
+++ b/dev-lisp/cl-unicode/metadata.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/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>
+ <origin>baldeagleos-repo</origin>
+</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..0390e8e512de
--- /dev/null
+++ b/dev-lisp/clisp/metadata.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/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>
+ <origin>baldeagleos-repo</origin>
+</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..6a0ceb2983e2
--- /dev/null
+++ b/dev-lisp/clozurecl/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/dev-lisp/clx/Manifest b/dev-lisp/clx/Manifest
new file mode 100644
index 000000000000..9b7e836335f6
--- /dev/null
+++ b/dev-lisp/clx/Manifest
@@ -0,0 +1 @@
+DIST clx-0.7.5.tar.gz 468904 BLAKE2B 30ce4de52fdbbc935bf5653f54a588537670b7d55dc038f32b4527e5f3d7b2dfe6afde3d28debf7ab5a08994155ec390f1e70dfbe45e8831fe7a977d245c9d7a SHA512 9228c37a99dcaee637c64c58183220c1ed3745e683c877f843c7de5b052d7355a3ddd50687371e8388c05bcedda062008299476b82dc8a3d26b605dde1dfa997
diff --git a/dev-lisp/clx/clx-0.7.5-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..3a92a5816594
--- /dev/null
+++ b/dev-lisp/clx/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/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>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</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..f1f922e32213
--- /dev/null
+++ b/dev-lisp/cmucl/metadata.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/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>
+ <origin>baldeagleos-repo</origin>
+</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..7fd52b9d8113
--- /dev/null
+++ b/dev-lisp/ecl/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/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>
+ <origin>baldeagleos-repo</origin>
+</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..65b02bc54f5f
--- /dev/null
+++ b/dev-lisp/flexi-streams/metadata.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/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>
+ <origin>baldeagleos-repo</origin>
+</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..93e445b86662
--- /dev/null
+++ b/dev-lisp/gcl/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+ </maintainer>
+ <longdescription>
+ GCL is the official Common Lisp for the GNU project. Its design
+ makes use of the system's C compiler to compile to native object
+ code, providing for both good performance and facile portability.
+ </longdescription>
+ <use>
+ <flag name="ansi">Build a GCL with ANSI support (else build a traditional CLtL1 image)</flag>
+ <flag name="athena">Build xgcl - an interface to <pkg>x11-libs/libXaw</pkg>
+ </flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/dev-lisp/hyperspec/Manifest b/dev-lisp/hyperspec/Manifest
new file mode 100644
index 000000000000..bcc13f2d0e01
--- /dev/null
+++ b/dev-lisp/hyperspec/Manifest
@@ -0,0 +1 @@
+DIST HyperSpec-7-0.tar.gz 2032830 BLAKE2B ec72b57fdcf669fe400dc2729191cc7c387172035d0663816fcc18450543052d3a958bd9042ef67bc70a1ccb07e74b189d32e1c790cdd1b721e8d74a6a88412d SHA512 1b9058fe1ae2e283f4a68211dc659021e04bd10373d7c2392f4fa496543e2454f96c7eb671bcb1e72c906456792f8a265a5e34bac24d01e2c0e7fb1ce359c370
diff --git a/dev-lisp/hyperspec/hyperspec-7.0-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..351e755bd1a9
--- /dev/null
+++ b/dev-lisp/hyperspec/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+ </maintainer>
+ <stabilize-allarches />
+ <origin>baldeagleos-repo</origin>
+</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..df1971691f21
--- /dev/null
+++ b/dev-lisp/roswell/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/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>
+ <origin>baldeagleos-repo</origin>
+</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..3df9fd2ec958
--- /dev/null
+++ b/dev-lisp/sbcl/metadata.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/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>
+ <origin>baldeagleos-repo</origin>
+</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..6a0ceb2983e2
--- /dev/null
+++ b/dev-lisp/trivial-gray-streams/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</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..6a0ceb2983e2
--- /dev/null
+++ b/dev-lisp/uiop/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</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}"