dev-lisp/sbcl: remove old versions

Signed-off-by: Andrey Grozin <grozin@gentoo.org>
This commit is contained in:
Andrey Grozin
2026-05-04 12:05:52 +07:00
parent 2dfffdc5d1
commit 9d837aa3b2
3 changed files with 0 additions and 552 deletions
-4
View File
@@ -13,10 +13,6 @@ DIST sbcl-2.5.11-source.tar.bz2 8330163 BLAKE2B 41e5c27aca2d7d9cdc19b6b80b5f78f4
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.1-source.tar.bz2 8427751 BLAKE2B da1328ffe398ccb79b828133655b4f251499dba42842c9ba389d4b582ed861554e826e3391d350e7d9d82bbd9470a188654480f16867dfe20bf0d37c8bdb4bb0 SHA512 7e26d1ad52726eb3827f125c4afcffed8e174cf086a050f03bab26322ac0ad24930c810411b72296d0ba8bdda43b78bd6ccd9814487be82b97e0d20827e0283c
DIST sbcl-2.6.1-x86-64-linux-binary.tar.bz2 12279091 BLAKE2B 71dfffce4898a5bab4cdccbf7df681b1e4fc2eb41c278e6b85927a2e21a8b9e5e2e7ecb875b4afef4a28a1041ff6085de1f575abe941a0996e5982ae67170550 SHA512 2eac24d474df7eb34adc70ce4fddf7e0674150018dfec9af3d1d8c058d9983323a38316b70d00931983725e0dffc3f560e6821ed564b69486b1e02f2da47f599
DIST sbcl-2.6.2-source.tar.bz2 8447404 BLAKE2B 88ac838fb575a0914af4f2f2fee60be25727a21e32bfa3d5129e63bb4abdb33fa8542fdb24993d91d1afc6af1df5de523051b1ff450ed4e723a7609a87e1cfcd SHA512 471024ec06ff85ccd8b4715eee314a924861b0456e9064bb94704aaad284013ddccc0e48383570ba5833252b93fd71f6e7389baa5ae134e9b1c38d895342a269
DIST sbcl-2.6.2-x86-64-linux-binary.tar.bz2 12289529 BLAKE2B ae299c0158a0b3e5117c034d5ed2ea27d415592248025da2b52766d9ed5ca0917e299216af9219871203cdf4b3be850c9594cf7e3f58368fa0bb614c095ec607 SHA512 d01db22ce8bcaac6c787f8a92bb84481b65bd3dd960bd95a2007111aa86972a41ecc329a4ac962d509c77bcd0b148de893fbdef395b86900aaf667beb43f5b65
DIST sbcl-2.6.3-source.tar.bz2 8452288 BLAKE2B f96e01cce41c43e820dc43193e4cdf9b5e393b04cd9a3571b1cbdc5d8f493d49b2e3f831b7e029bcea50dd02fb1deb1dd85c31db62310ba82496c36847aea7e6 SHA512 be3544564f1587f97f46e1ba3b9b807c367d94304a162f3e99fdc57d4b9b67234584e12ae31380da882325d6ba83466896428fd3fe2aecc454687b469b86f981
DIST sbcl-2.6.3-x86-64-linux-binary.tar.bz2 12296294 BLAKE2B 53d9c1b2595da3a1f9b52eb90b2e6b56fd0dccb2111e2a089eceae8928628b33577234186d2aeef957e6dc76252c14f914f8b6d841c750c0f306092ab83fc2a1 SHA512 6d48ae38b2230fbfa8a71a56bc0a6b553037a601d0c682b2fbec2dcd00cb2474d2c6918c02c9cca2b6c66145c9485ea1b4e1d8e7b1a0815738ae96e8084982b2
DIST sbcl-2.6.4-source.tar.bz2 8482159 BLAKE2B 36505b28469641fd7266cb3676e852558496df4c7252606f015fb7fdb5e9ef77028740c6ce18262e43a8041f7498577a83d5eeb3e64ad1f33ec147f40eccdb24 SHA512 a3997f5dcf778202df192de1ff8888e6d81b9d1152bc4ba0c7b1b549b663d9be9cea78bdb34cea02a77395c703c6208d14a80acad9a1aae07722b87ad803c09d
-274
View File
@@ -1,274 +0,0 @@
# 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_X86=1.4.3
BV_AMD64=2.6.1
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}"
}
-274
View File
@@ -1,274 +0,0 @@
# 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_X86=1.4.3
BV_AMD64=2.6.2
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}"
}