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