1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-22 08:58:47 +00:00

lang/sbcl: Restore SBCL bootstrap and missing modules

There were several issues with the revamp of sbcl.

1) The removal of the lisp contrib modules broke several ports dependent
   on them.
2) The removal of a proper SBCL bootstrap (SBCL built by SBCL) broke
   DragonFly.  Generally it is recommended that compilers build themselves,
   although it's unclear if SBCL has such a recommendation.
3) Handling of .core suffix changed by default

This revamp was itself revamped signficantly:

A) Change SBCL option from building from locally installed SBCL to building
   from a downloaded bootstrap SBCL compiler (supports FreeBSD i386 & amd64
   and DragonFly x86_64)
B) Set this as the default option and move the formerly default CCL to a
   non-default option
C) Cosmetic: comment typo fixes, options realigned
D) contributed lisp modules readded to the makefile and pkg-plist
E) PLUS_BOOTSTRAPS switch to regenerate distinfo with all bootstrap files
F) Change "RENAME_DLM" PLIST_SUB to "CORE_SUFFIX" to unbreak makeplist
G) Regenerated pkg-plist (which wasn't previously ordered)
H) Set renaming of .core files to _core by default as it has been
   previously done for years.

Approved by:	DF Support / just-fix-it [1]

[1] No immediate response from ler@, adamw@, or maintainer after
notification of issues caused by changes of major update.  Justified by
need to restore platform builds and dependent port builds.
This commit is contained in:
John Marino 2017-01-27 17:42:13 +00:00
parent 04acdd9800
commit 701275cc6a
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=432557
3 changed files with 177 additions and 28 deletions

View File

@ -2,10 +2,13 @@
PORTNAME= sbcl
PORTVERSION= 1.3.13
PORTREVISION= 1
DISTVERSIONSUFFIX= -source
PORTEPOCH= 1
CATEGORIES= lang lisp
MASTER_SITES= SF/sbcl/sbcl/${PORTVERSION}
MASTER_SITES= SF/sbcl/sbcl/${PORTVERSION} \
LOCAL/marino:binaries
DISTFILES= sbcl-${PORTVERSION}-source.tar.bz2
MAINTAINER= pavelivolkov@gmail.com
COMMENT= Common Lisp development system derived from the CMU CL system
@ -22,7 +25,16 @@ USES= gmake makeinfo tar:bzip2
ONLY_FOR_ARCHS= i386 amd64
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
SBCL_BOOT_LIST= 1.0.31-amd64-freebsd8 \
1.0.31-i386-freebsd8 \
1.2.9-x86_64-dragonfly4
CONMODULES= asdf sb-aclrepl sb-bsd-sockets sb-cltl2 sb-concurrency \
sb-cover sb-executable sb-gmp sb-grovel sb-introspect \
sb-md5 sb-mpfr sb-posix sb-queue sb-rotate-byte sb-rt \
sb-simple-streams sb-sprof
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
MAKE_SH_ARGS?= --prefix="${PREFIX}" \
--xc-host="${XC_HOST}"
@ -35,7 +47,7 @@ MAKE_SH_ARGS+= --dynamic-space-size=${DYNAMIC_SPACE_SIZE}
# All options explained into file: ${WRKSRC}/base-target-features.lisp-expr
OPTIONS_DEFINE= DOCS QSHOW RENAME SAFEPOINT THREADS UNICODE XREF ZLIB
OPTIONS_DEFAULT=CCL UNICODE
OPTIONS_DEFAULT= RENAME SBCL UNICODE
QSHOW_DESC= C runtime with low-level debugging output
RENAME_DESC= Rename suffix .core to _core
@ -51,48 +63,69 @@ CCL_DESC= Clozure Common Lisp
CMUCL_DESC= Carnegie Mellon University Common Lisp
SBCL_DESC= Steel Bank Common Lisp
# On this moment CMUCL - don't builds sbcl correctly, ABCL - I don't tested. Welcome volunteers.
OPTIONS_EXCLUDE=ABCL CMUCL
# On this moment CMUCL doesn't builds sbcl correctly
# ABCL - I haven't tested. Welcome volunteers.
OPTIONS_EXCLUDE= ABCL CMUCL
ABCL_VARS= XC_HOST="abcl"
ABCL_VARS= XC_HOST="abcl"
ABCL_BUILD_DEPENDS= abcl:lang/abcl
CCL_VARS= XC_HOST="ccl --no-init --batch --quiet"
CCL_VARS= XC_HOST="ccl --no-init --batch --quiet"
CCL_BUILD_DEPENDS= ccl:lang/ccl
CMUCL_VARS= XC_HOST="lisp -nositeinit -noinit -batch -quiet"
CMUCL_VARS= XC_HOST="lisp -nositeinit -noinit -batch -quiet"
CMUCL_BUILD_DEPENDS= lisp:lang/cmucl
DOCS_VARS= INFO="asdf sbcl"
DOCS_VARS= INFO="asdf sbcl"
QSHOW_VARS= MAKE_SH_ARGS+="--with-sb-qshow"
QSHOW_VARS_OFF= MAKE_SH_ARGS+="--without-sb-qshow"
QSHOW_VARS= MAKE_SH_ARGS+="--with-sb-qshow"
QSHOW_VARS_OFF= MAKE_SH_ARGS+="--without-sb-qshow"
RENAME_PLIST_SUB= RENAME_DLM="_"
RENAME_PLIST_SUB_OFF= RENAME_DLM="."
RENAME_VARS= RENAME_DLM="_"
RENAME_VARS_OFF=RENAME_DLM="."
RENAME_PLIST_SUB= CORE_SUFFIX="_core"
RENAME_PLIST_SUB_OFF= CORE_SUFFIX=".core"
SAFEPOINT_VARS= MAKE_SH_ARGS+="--with-sb-safepoint --with-sb-thruption --with-sb-wtimer"
SAFEPOINT_VARS= MAKE_SH_ARGS+="--with-sb-safepoint --with-sb-thruption --with-sb-wtimer"
SAFEPOINT_VARS_OFF= MAKE_SH_ARGS+="--without-sb-safepoint --without-sb-thruption --without-sb-wtimer"
SAFEPOINT_IMPLIES= THREADS
SBCL_VARS= XC_HOST="sbcl --noinform --disable-debugger --no-sysinit --no-userinit"
SBCL_VARS= XC_HOST="${BOOT_WRKSRC}/src/runtime/sbcl --core ${BOOT_WRKSRC}/output/${CORE} --noinform --disable-debugger --no-sysinit --no-userinit"
SBCL_DISTFILES= sbcl-${SBCL_BOOT_LIST:M${ARCHOS_PATTERN}}-binary.tar.bz2:binaries
THREADS_VARS= MAKE_SH_ARGS+="--with-sb-thread --with-restore-fs-segment-register-from-tls"
THREADS_VARS= MAKE_SH_ARGS+="--with-sb-thread --with-restore-fs-segment-register-from-tls"
THREADS_VARS_OFF= MAKE_SH_ARGS+="--without-sb-thread --without-restore-fs-segment-register-from-tls"
UNICODE_VARS= MAKE_SH_ARGS+="--with-sb-unicode"
UNICODE_VARS= MAKE_SH_ARGS+="--with-sb-unicode"
UNICODE_VARS_OFF= MAKE_SH_ARGS+="--without-sb-unicode"
XREF_VARS= MAKE_SH_ARGS+="--with-sb-xref-for-internals"
XREF_VARS_OFF= MAKE_SH_ARGS+="--without-sb-xref-for-internals"
XREF_VARS= MAKE_SH_ARGS+="--with-sb-xref-for-internals"
XREF_VARS_OFF= MAKE_SH_ARGS+="--without-sb-xref-for-internals"
ZLIB_VARS= MAKE_SH_ARGS+="--with-sb-core-compression"
ZLIB_VARS_OFF= MAKE_SH_ARGS+="--without-sb-core-compression"
ZLIB_VARS= MAKE_SH_ARGS+="--with-sb-core-compression"
ZLIB_VARS_OFF= MAKE_SH_ARGS+="--without-sb-core-compression"
PORTDOCS= *
.include <bsd.port.options.mk>
ARCHOS_PATTERN= *-${ARCH}-${OPSYS:tl}*
BOOT_WRKSRC= ${WRKDIR}/sbcl-${SBCL_BOOT_LIST:M${ARCHOS_PATTERN}}
# for port maintenance, invoke "make makesum PLUS_BOOTSTRAPS=1"
.if defined (PLUS_BOOTSTRAPS)
. for B in ${SBCL_BOOT_LIST}
. if ! ${DISTFILES:Msbcl-${B}-*}
DISTFILES:= ${DISTFILES} sbcl-${B}-binary.tar.bz2:binaries
. endif
. endfor
.endif
# Old FreeBSD bootstraps feature the older core name for SBCL bootstrap
.if ${OPSYS} == FreeBSD
CORE= sbcl.core
.else
CORE= sbcl_core
.endif
post-patch-RENAME-on:
${GREP} -Frl '.core' ${WRKSRC} | ${XARGS} ${REINPLACE_CMD} -e 's|\.core|_core|g'
@ -106,6 +139,11 @@ do-install:
INFO_DIR="${STAGEDIR}${PREFIX}/${INFO_PATH}" \
DOC_DIR="${STAGEDIR}${DOCSDIR}" \
${SH} install.sh)
.for M in ${CONMODULES}
${MKDIR} ${STAGEDIR}${PREFIX}/lib/sbcl/${M}
${INSTALL_DATA} ${WRKSRC}/contrib/${M}/*.[la]* \
${STAGEDIR}${PREFIX}/lib/sbcl/${M}/
.endfor
post-build-DOCS-on:
${DO_MAKE_BUILD} -C ${WRKSRC}/doc/manual info html

View File

@ -1,3 +1,9 @@
TIMESTAMP = 1483706842
TIMESTAMP = 1485509169
SHA256 (sbcl-1.3.13-source.tar.bz2) = 4c6935e4a9022637da95f2aab04d08326762f55a35942b40cb6a4276838c76cc
SIZE (sbcl-1.3.13-source.tar.bz2) = 5783599
SHA256 (sbcl-1.0.31-amd64-freebsd8-binary.tar.bz2) = 06a1e4e3a5f5f8e012ff6037a51624d7d1f34bff0979ce45e70418a293412b4e
SIZE (sbcl-1.0.31-amd64-freebsd8-binary.tar.bz2) = 8397764
SHA256 (sbcl-1.0.31-i386-freebsd8-binary.tar.bz2) = fd2348749a2babf301a99449d246b349a1285fc0bca8b83bde0bfa7187cf3dd7
SIZE (sbcl-1.0.31-i386-freebsd8-binary.tar.bz2) = 8475244
SHA256 (sbcl-1.2.9-x86_64-dragonfly4-binary.tar.bz2) = 2e32a22ef3a528d7247c0e3a72a3ac672b8b6848ac2d35fbad52a3d1475130dc
SIZE (sbcl-1.2.9-x86_64-dragonfly4-binary.tar.bz2) = 10224580

View File

@ -1,8 +1,7 @@
bin/sbcl
lib/sbcl/sbcl%%RENAME_DLM%%core
@comment BEGIN external modules
lib/sbcl/asdf/asdf.lisp
lib/sbcl/asdf/uiop.lisp
lib/sbcl/contrib/asdf.fasl
lib/sbcl/contrib/uiop.fasl
lib/sbcl/contrib/sb-aclrepl.asd
lib/sbcl/contrib/sb-aclrepl.fasl
lib/sbcl/contrib/sb-bsd-sockets.asd
@ -37,5 +36,111 @@ lib/sbcl/contrib/sb-simple-streams.asd
lib/sbcl/contrib/sb-simple-streams.fasl
lib/sbcl/contrib/sb-sprof.asd
lib/sbcl/contrib/sb-sprof.fasl
@comment END external modules
lib/sbcl/contrib/uiop.fasl
lib/sbcl/sb-aclrepl/debug.lisp
lib/sbcl/sb-aclrepl/inspect.lisp
lib/sbcl/sb-aclrepl/repl.lisp
lib/sbcl/sb-aclrepl/sb-aclrepl.asd
lib/sbcl/sb-aclrepl/tests.lisp
lib/sbcl/sb-aclrepl/toplevel.lisp
lib/sbcl/sb-bsd-sockets/constants.lisp
lib/sbcl/sb-bsd-sockets/defpackage.lisp
lib/sbcl/sb-bsd-sockets/inet.lisp
lib/sbcl/sb-bsd-sockets/inet4.lisp
lib/sbcl/sb-bsd-sockets/inet6.lisp
lib/sbcl/sb-bsd-sockets/local.lisp
lib/sbcl/sb-bsd-sockets/misc.lisp
lib/sbcl/sb-bsd-sockets/name-service.lisp
lib/sbcl/sb-bsd-sockets/protocol.lisp
lib/sbcl/sb-bsd-sockets/sb-bsd-sockets.asd
lib/sbcl/sb-bsd-sockets/sockets.lisp
lib/sbcl/sb-bsd-sockets/sockopt.lisp
lib/sbcl/sb-bsd-sockets/tests.lisp
lib/sbcl/sb-bsd-sockets/util.lisp
lib/sbcl/sb-bsd-sockets/win32-constants.lisp
lib/sbcl/sb-bsd-sockets/win32-lib.lisp
lib/sbcl/sb-bsd-sockets/win32-sockets.lisp
lib/sbcl/sb-cltl2/compiler-let.lisp
lib/sbcl/sb-cltl2/defpackage.lisp
lib/sbcl/sb-cltl2/env.lisp
lib/sbcl/sb-cltl2/macroexpand.lisp
lib/sbcl/sb-cltl2/sb-cltl2.asd
lib/sbcl/sb-cltl2/tests.lisp
lib/sbcl/sb-concurrency/frlock.lisp
lib/sbcl/sb-concurrency/gate.lisp
lib/sbcl/sb-concurrency/mailbox.lisp
lib/sbcl/sb-concurrency/package.lisp
lib/sbcl/sb-concurrency/queue.lisp
lib/sbcl/sb-concurrency/sb-concurrency.asd
lib/sbcl/sb-cover/cover.lisp
lib/sbcl/sb-cover/sb-cover.asd
lib/sbcl/sb-cover/test-data-1.lisp
lib/sbcl/sb-cover/test-data-2.lisp
lib/sbcl/sb-cover/test-data-3.lisp
lib/sbcl/sb-cover/tests.lisp
lib/sbcl/sb-executable/sb-executable.lisp
lib/sbcl/sb-gmp/bench.lisp
lib/sbcl/sb-gmp/gmp.lisp
lib/sbcl/sb-gmp/sb-gmp.asd
lib/sbcl/sb-gmp/tests-stress.lisp
lib/sbcl/sb-gmp/tests.lisp
lib/sbcl/sb-grovel/def-to-lisp.lisp
lib/sbcl/sb-grovel/defpackage.lisp
lib/sbcl/sb-grovel/example-constants.lisp
lib/sbcl/sb-grovel/foreign-glue.lisp
lib/sbcl/sb-grovel/sb-grovel.asd
lib/sbcl/sb-introspect/introspect.lisp
lib/sbcl/sb-introspect/load-test.lisp
lib/sbcl/sb-introspect/sb-introspect.asd
lib/sbcl/sb-introspect/test-driver.lisp
lib/sbcl/sb-introspect/test.lisp
lib/sbcl/sb-introspect/xref-test-data.lisp
lib/sbcl/sb-introspect/xref-test.lisp
lib/sbcl/sb-md5/md5-tests.lisp
lib/sbcl/sb-md5/md5.lisp
lib/sbcl/sb-md5/sb-md5.asd
lib/sbcl/sb-mpfr/mpfr.lisp
lib/sbcl/sb-mpfr/sb-mpfr.asd
lib/sbcl/sb-mpfr/tests.lisp
lib/sbcl/sb-posix/constants.lisp
lib/sbcl/sb-posix/defpackage.lisp
lib/sbcl/sb-posix/designator.lisp
lib/sbcl/sb-posix/interface.lisp
lib/sbcl/sb-posix/libc-tests.lisp
lib/sbcl/sb-posix/macros.lisp
lib/sbcl/sb-posix/posix-tests.lisp
lib/sbcl/sb-posix/sb-posix.asd
lib/sbcl/sb-posix/strtod.lisp
lib/sbcl/sb-queue/package.lisp
lib/sbcl/sb-queue/sb-queue.asd
lib/sbcl/sb-rotate-byte/arm-vm.lisp
lib/sbcl/sb-rotate-byte/arm64-vm.lisp
lib/sbcl/sb-rotate-byte/compiler.lisp
lib/sbcl/sb-rotate-byte/package.lisp
lib/sbcl/sb-rotate-byte/ppc-vm.lisp
lib/sbcl/sb-rotate-byte/rotate-byte-tests.lisp
lib/sbcl/sb-rotate-byte/rotate-byte.lisp
lib/sbcl/sb-rotate-byte/sb-rotate-byte.asd
lib/sbcl/sb-rotate-byte/x86-64-vm.lisp
lib/sbcl/sb-rotate-byte/x86-vm.lisp
lib/sbcl/sb-rt/rt.lisp
lib/sbcl/sb-rt/sb-rt.asd
lib/sbcl/sb-simple-streams/classes.lisp
lib/sbcl/sb-simple-streams/direct.lisp
lib/sbcl/sb-simple-streams/file.lisp
lib/sbcl/sb-simple-streams/fndb.lisp
lib/sbcl/sb-simple-streams/impl.lisp
lib/sbcl/sb-simple-streams/internal.lisp
lib/sbcl/sb-simple-streams/iodefs.lisp
lib/sbcl/sb-simple-streams/null.lisp
lib/sbcl/sb-simple-streams/package.lisp
lib/sbcl/sb-simple-streams/sb-simple-streams.asd
lib/sbcl/sb-simple-streams/simple-stream-tests.lisp
lib/sbcl/sb-simple-streams/socket.lisp
lib/sbcl/sb-simple-streams/strategy.lisp
lib/sbcl/sb-simple-streams/string.lisp
lib/sbcl/sb-simple-streams/terminal.lisp
lib/sbcl/sb-sprof/sb-sprof.lisp
lib/sbcl/sb-sprof/test.lisp
lib/sbcl/sbcl%%CORE_SUFFIX%%
man/man1/sbcl.1.gz