Gentoo Archives: gentoo-commits

From: Andrey Grozin <grozin@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lisp/sbcl/
Date: Fri, 30 Oct 2020 15:40:09
Message-Id: 1604072397.bd5b6ca955a9a3e1a0c7375b19f3c1255275b899.grozin@gentoo
1 commit: bd5b6ca955a9a3e1a0c7375b19f3c1255275b899
2 Author: Andrey Grozin <grozin <AT> gentoo <DOT> org>
3 AuthorDate: Fri Oct 30 15:39:57 2020 +0000
4 Commit: Andrey Grozin <grozin <AT> gentoo <DOT> org>
5 CommitDate: Fri Oct 30 15:39:57 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bd5b6ca9
7
8 dev-lisp/sbcl: bump to 2.0.10
9
10 Package-Manager: Portage-3.0.8, Repoman-3.0.2
11 Signed-off-by: Andrey Grozin <grozin <AT> gentoo.org>
12
13 dev-lisp/sbcl/Manifest | 2 +
14 dev-lisp/sbcl/sbcl-2.0.10.ebuild | 245 +++++++++++++++++++++++++++++++++++++++
15 2 files changed, 247 insertions(+)
16
17 diff --git a/dev-lisp/sbcl/Manifest b/dev-lisp/sbcl/Manifest
18 index 5c98ca80fc9..de2facbdcb5 100644
19 --- a/dev-lisp/sbcl/Manifest
20 +++ b/dev-lisp/sbcl/Manifest
21 @@ -26,6 +26,8 @@ DIST sbcl-2.0.0-source.tar.bz2 6457217 BLAKE2B ae09d4d80ca7100fb412be57012691861
22 DIST sbcl-2.0.0-x86-64-linux-binary.tar.bz2 10196560 BLAKE2B 161d53df96817a50606ffc6a5ad502a94a1aa622e0a45c17c4ff4148deafb2e1db560aacd33b1198eb6fd3bc462b320e01d4925097bec3954f9d6ce564a2b1f5 SHA512 23d3974656a33ae0cfce340e2fbdd60a4e595353e7cc6e75dbab0242d7baaa30d677d1163d4440e953cd7f859fc737b073055b68fbeb2e57e3542a0133d7648f
23 DIST sbcl-2.0.1-source.tar.bz2 6466983 BLAKE2B f040fb288f5b7adb8a7f56aae60a37e38034c2fed958b1361f473096769367b0a10a76a0e45380e6dcf3b4bd2c1038957448f70eede38b04c228a14e3afc1fc2 SHA512 1d92589033e123c21377f820dbc22e27f2610a372c5545799bec7c247795ba4b8b65102c7fe739f4a15a84579ec72f63fb9f4b197db5c6da1f8d59bd35966bea
24 DIST sbcl-2.0.1-x86-64-linux-binary.tar.bz2 10151722 BLAKE2B 445fcaa5a6f1c2a7a7d80dd28d1126c33437af2a59dadd25cbbe9ca4e12488a985e78aa12095fda8e38e21dceca77a0e1bca0949133b0ac2666d4367bf881f68 SHA512 1d24981b42c5d91f6037ad6fed782786bbc75edcb2f125a6d5b793448d00c211af515f56b6dd70a68bd33ea7174fd1d96ef9ab353c96905835b6299dcb170f47
25 +DIST sbcl-2.0.10-source.tar.bz2 6522183 BLAKE2B c8717f85dfcbf3fc960e91efc884ebd3e825041c4916181c6dc690fda2704dfb92a5c46332d4b1ae4d0d304532436a444c4ee0404b4927d3fdbd77d2e5a3e86f SHA512 441418719a236853ae316c4d8a74e05fb31d5b27775e17ff4383ea1b5671786378231fc4d5a2908416d8fde3704e6d2737e58d6e76b119c19a9e0d81444f3277
26 +DIST sbcl-2.0.10-x86-64-linux-binary.tar.bz2 10179170 BLAKE2B c3fd9b5ee73db1152bf02ec6f67b7d8ad190557990bb28b32088687fc68173aaa300738f35c7a7bbdc6b5a743a30d0aa78220ea73aafd5f94948534a7be190f7 SHA512 a4d410655626a4c247e9b6505508df8f0ecae7726dd474fc19b259ed1f4507953bec0a7ff876ea97dd86150b08e8d8ad12a5d701f77a5a2cb3b367d5ae4af8f2
27 DIST sbcl-2.0.3-source.tar.bz2 6489521 BLAKE2B f610367e2fbc58e47b3c7a825cd03344e8dd288e2e2a202327c5caa652aa13f1d675c52a65626acf2d577402552ac620973278197c95d7bfaeea31c2e372a2c7 SHA512 c29c115fff0e118e5c05959dd8d73ae876458daeb5ddde67ce485b10e6d1583b1f8a9597b54b45606696ab1b1eea5392dcb09357c83fce31323f2a5a154f2dd1
28 DIST sbcl-2.0.3-x86-64-linux-binary.tar.bz2 10180812 BLAKE2B feebf6e957acd8cbe3a5549f6b9e5832d8ee6cc40e7c319a24db0be93cacbc33f5dd5cc3d187be0dfdee6997e3a114267ee0a8cf9fc7defbe63941739a3e2d44 SHA512 7d7fc106aa9c17552d5a7343a2776ebdc24613516c44523c568a4b4045baa9a5356c37480594bc7a6fe8e012c570963915dd80b18c50e4e58f273455d35a8b4d
29 DIST sbcl-2.0.4-source.tar.bz2 6512479 BLAKE2B 95e42f8d77bb914cf0d45e59bb90c8229cbcf32352cebfc4b7fe44a00205751eddae7910b8453981bfe5ea16574ea3c539a7daecbe71d9c79fb93e65aac8b5df SHA512 855e25d3a25c558cfd4a97c6d6a0130910556ad4b1d4a7df924a34b50f1d9d3cc3d4373510353548c6ddf3000b55c70285ccbd888fab59f73d137c16539df816
30
31 diff --git a/dev-lisp/sbcl/sbcl-2.0.10.ebuild b/dev-lisp/sbcl/sbcl-2.0.10.ebuild
32 new file mode 100644
33 index 00000000000..1bceec1ccda
34 --- /dev/null
35 +++ b/dev-lisp/sbcl/sbcl-2.0.10.ebuild
36 @@ -0,0 +1,245 @@
37 +# Copyright 1999-2020 Gentoo Authors
38 +# Distributed under the terms of the GNU General Public License v2
39 +
40 +EAPI=6
41 +
42 +inherit multilib eutils flag-o-matic pax-utils toolchain-funcs
43 +
44 +#same order as http://www.sbcl.org/platform-table.html
45 +BV_X86=1.4.3
46 +BV_AMD64=2.0.10
47 +BV_PPC=1.2.7
48 +BV_SPARC=1.0.28
49 +BV_ALPHA=1.0.28
50 +BV_ARM=1.4.11
51 +BV_ARM64=1.4.2
52 +BV_X86_MACOS=1.1.6
53 +BV_X64_MACOS=1.2.11
54 +BV_PPC_MACOS=1.0.47
55 +BV_X86_SOLARIS=1.2.7
56 +BV_X64_SOLARIS=1.2.7
57 +BV_SPARC_SOLARIS=1.0.23
58 +
59 +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp"
60 +HOMEPAGE="http://sbcl.sourceforge.net/"
61 +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2
62 + x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 )
63 + amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 )
64 + ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 )
65 + sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 )
66 + alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 )
67 + arm? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 )
68 + arm64? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM64}-arm64-linux-binary.tar.bz2 )
69 + x86-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_MACOS}-x86-darwin-binary.tar.bz2 )
70 + x64-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 )
71 + ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-binary.tar.bz2 )
72 + x86-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_SOLARIS}-x86-solaris-binary.tar.bz2 )
73 + x64-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 )
74 + sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-solaris-binary.tar.bz2 )"
75 +
76 +LICENSE="MIT"
77 +SLOT="0/${PV}"
78 +KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris"
79 +IUSE="debug doc source +threads +unicode pax_kernel zlib"
80 +
81 +CDEPEND=">=dev-lisp/asdf-3.3:="
82 +DEPEND="${CDEPEND}
83 + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 )
84 + pax_kernel? ( sys-apps/elfix )"
85 +RDEPEND="${CDEPEND}
86 + !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )"
87 +
88 +# Disable warnings about executable stacks, as this won't be fixed soon by upstream
89 +QA_EXECSTACK="usr/bin/sbcl"
90 +
91 +CONFIG="${S}/customize-target-features.lisp"
92 +ENVD="${T}/50sbcl"
93 +
94 +# Prevent ASDF from using the system libraries
95 +CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)"
96 +ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)"
97 +
98 +usep() {
99 + use ${1} && echo "true" || echo "false"
100 +}
101 +
102 +sbcl_feature() {
103 + echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}"
104 +}
105 +
106 +sbcl_apply_features() {
107 + sed 's/^X//' > "${CONFIG}" <<-'EOF'
108 + (lambda (list)
109 + X (flet ((enable (x) (pushnew x list))
110 + X (disable (x) (setf list (remove x list))))
111 + EOF
112 + if use x86 || use amd64; then
113 + sbcl_feature "$(usep threads)" ":sb-thread"
114 + fi
115 + sbcl_feature "true" ":sb-ldb"
116 + sbcl_feature "false" ":sb-test"
117 + sbcl_feature "$(usep unicode)" ":sb-unicode"
118 + sbcl_feature "$(usep zlib)" ":sb-core-compression"
119 + sbcl_feature "$(usep debug)" ":sb-xref-for-internals"
120 + sed 's/^X//' >> "${CONFIG}" <<-'EOF'
121 + X )
122 + X list)
123 + EOF
124 + cat "${CONFIG}"
125 +}
126 +
127 +src_unpack() {
128 + unpack ${A}
129 + mv sbcl-*-* sbcl-binary || die
130 + cd "${S}"
131 +}
132 +
133 +src_prepare() {
134 + # bug #468482
135 + eapply "${FILESDIR}"/concurrency-test-2.0.1.patch
136 + # bugs #486552, #527666, #517004
137 + eapply "${FILESDIR}"/bsd-sockets-test-2.0.5.patch
138 + # bugs #560276, #561018
139 + eapply "${FILESDIR}"/sb-posix-test-1.2.15.patch
140 +
141 + eapply "${FILESDIR}"/verbose-build-2.0.3.patch
142 +
143 + eapply_user
144 +
145 + # Make sure the *FLAGS variables are sane.
146 + # sbcl needs symbols in resulting binaries, so building with the -s linker flag will fail.
147 + strip-unsupported-flags
148 + filter-flags -fomit-frame-pointer -Wl,-s
149 + filter-ldflags -s
150 +
151 + # original bugs #526194, #620532
152 + # this broke no-pie default builds, c.f. bug #632670
153 + # Pass CFLAGS down by appending our value, to let users override
154 + # the default values.
155 + # Keep passing LDFLAGS down via the LINKFLAGS variable.
156 + sed -e "s@\(CFLAGS += -g .*\)\$@\1 ${CFLAGS}@" \
157 + -e "s@LINKFLAGS += -g\$@LINKFLAGS += ${LDFLAGS}@" \
158 + -i src/runtime/GNUmakefile || die
159 +
160 + sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \
161 + -i make-config.sh || die
162 +
163 + # Use installed ASDF version
164 + cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die
165 + # Avoid installation of ASDF info page. See bug #605752
166 + sed '/INFOFILES/s/asdf.info//' -i doc/manual/Makefile || die
167 +
168 + use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk
169 +
170 + # Some shells(such as dash) don't have "time" as builtin
171 + # and we don't want to DEPEND on sys-process/time
172 + sed "s,^time ,," -i make.sh || die
173 + sed "s,/lib,/$(get_libdir),g" -i install.sh || die
174 + # #define SBCL_HOME ...
175 + sed "s,/usr/local/lib,${EPREFIX}/usr/$(get_libdir),g" -i src/runtime/runtime.c || die
176 + # change location of /etc/sbclrc ...
177 + sed "s,/etc/sbclrc,${EPREFIX}/etc/sbclrc,g" -i src/code/toplevel.lisp || die
178 +
179 + find . -type f -name .cvsignore -delete
180 +}
181 +
182 +src_configure() {
183 + # customizing SBCL version as per
184 + # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup
185 + echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr
186 +
187 + # applying customizations
188 + sbcl_apply_features
189 +}
190 +
191 +src_compile() {
192 + local bindir="${WORKDIR}"/sbcl-binary
193 +
194 + if use pax_kernel ; then
195 + # To disable PaX on hardened systems
196 + pax-mark -mr "${bindir}"/src/runtime/sbcl
197 +
198 + # Hack to disable PaX on second GENESIS stage
199 + sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \
200 + "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime"
201 + fi
202 +
203 + # clear the environment to get rid of non-ASCII strings, see bug #174702
204 + # set HOME for paludis
205 + env - HOME="${T}" PATH="${PATH}" \
206 + CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \
207 + CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \
208 + GNUMAKE=make ./make.sh \
209 + "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \
210 + || die "make failed"
211 +
212 + # need to set HOME because libpango(used by graphviz) complains about it
213 + if use doc; then
214 + env - HOME="${T}" PATH="${PATH}" \
215 + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \
216 + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \
217 + make -C doc/manual info html || die "Cannot build manual"
218 + env - HOME="${T}" PATH="${PATH}" \
219 + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \
220 + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \
221 + make -C doc/internals info html || die "Cannot build internal docs"
222 + fi
223 +}
224 +
225 +src_test() {
226 + ewarn "Unfortunately, it is known that some tests fail eg."
227 + ewarn "run-program.impure.lisp. This is an issue of the upstream's"
228 + ewarn "development and not of Gentoo's side. Please, before filing"
229 + ewarn "any bug(s) search for older submissions. Thank you."
230 + time ( cd tests && sh run-tests.sh )
231 +}
232 +
233 +src_install() {
234 + # install system-wide initfile
235 + dodir /etc/
236 + sed 's/^X//' > "${ED}"/etc/sbclrc <<-EOF
237 + ;;; The following is required if you want source location functions to
238 + ;;; work in SLIME, for example.
239 + X
240 + (setf (logical-pathname-translations "SYS")
241 + X '(("SYS:SRC;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/src/**/*.*")
242 + X ("SYS:CONTRIB;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/**/*.*")))
243 + X
244 + ;;; Setup ASDF2
245 + (load "${EPREFIX}/etc/common-lisp/gentoo-init.lisp")
246 + EOF
247 +
248 + # Install documentation
249 + unset SBCL_HOME
250 + INSTALL_ROOT="${ED}/usr" LIB_DIR="${EPREFIX}/usr/$(get_libdir)" DOC_DIR="${ED}/usr/share/doc/${PF}" \
251 + sh install.sh || die "install.sh failed"
252 +
253 + # bug #517008
254 + pax-mark -mr "${D}"/usr/bin/sbcl
255 +
256 + # rm empty directories lest paludis complain about this
257 + find "${ED}" -empty -type d -exec rmdir -v {} +
258 +
259 + if use doc; then
260 + dodoc -r doc/internals/sbcl-internals
261 +
262 + doinfo doc/manual/*.info*
263 + doinfo doc/internals/sbcl-internals.info
264 +
265 + docinto internals-notes
266 + dodoc doc/internals-notes/*
267 + else
268 + rm -Rv "${ED}/usr/share/doc/${PF}" || die
269 + fi
270 +
271 + # install the SBCL source
272 + if use source; then
273 + ./clean.sh
274 + cp -av src "${ED}/usr/$(get_libdir)/sbcl/" || die
275 + fi
276 +
277 + # necessary for running newly-saved images
278 + echo "SBCL_HOME=${EPREFIX}/usr/$(get_libdir)/${PN}" > "${ENVD}"
279 + echo "SBCL_SOURCE_ROOT=${EPREFIX}/usr/$(get_libdir)/${PN}/src" >> "${ENVD}"
280 + doenvd "${ENVD}"
281 +}