Mercurial > hgrepos > FreeBSD > ports > PyPy
changeset 125:e11577711968
Build the new pypy2:lang/pypy2 using the new monorepo for PyPy.
BUGS: Byte-compilation not yet implemented.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Sat, 13 Jan 2024 20:40:33 +0100 |
| parents | 0696adff7664 |
| children | 1c224aaef1af |
| files | lang/pypy2/Makefile lang/pypy2/distinfo lang/pypy2/distinfo.py27 lang/pypy2/pkg-plist |
| diffstat | 4 files changed, 58 insertions(+), 173 deletions(-) [+] |
line wrap: on
line diff
--- a/lang/pypy2/Makefile Sat Jan 13 20:26:39 2024 +0100 +++ b/lang/pypy2/Makefile Sat Jan 13 20:40:33 2024 +0100 @@ -1,14 +1,15 @@ -# Created by: David Naylor <naylor.b.david@gmail.com> +# Created by: Franz Glasner <fzglas.hg@dom66.de> +# based on the port created by: David Naylor <naylor.b.david@gmail.com> -PORTNAME?= pypy -PORTREVISION?= 0 +PORTNAME= pypy2 +DISTVERSION= 7.3.14 CATEGORIES= lang python MASTER_SITES= https://downloads.python.org/pypy/ -DISTNAME?= ${PYTHON_IMPL_MINOR}-v${DISTVERSION}-src +DISTNAME= pypy${PYPY_PYTHON_IMPL_VER}-v${DISTVERSION}-src -MAINTAINER= python@FreeBSD.org +MAINTAINER= fzglas.hg@dom55.de COMMENT= Fast, compliant implementation of the Python language -WWW= http://pypy.org +WWW= https://www.pypy.org LICENSE= MIT PSFL LICENSE_COMB= multi @@ -20,70 +21,59 @@ ONLY_FOR_ARCHS?= amd64 armv6 armv7 i386 powerpc64 powerpc64le ONLY_FOR_ARCHS_REASON?= PyPy JIT only supported on these architectures -LIB_DEPENDS+= libexpat.so:textproc/expat2 \ +LIB_DEPENDS= libexpat.so:textproc/expat2 \ libffi.so:devel/libffi TEST_DEPENDS= ${LOCALBASE}/${PYPY_DIR}/lib_pypy/_gdbm_cffi.${PYPY_CFFI_VER}.so:databases/pypy-gdbm \ ${LOCALBASE}/${PYPY_DIR}/lib_pypy/_sqlite3_cffi.${PYPY_CFFI_VER}.so:databases/pypy-sqlite3 \ ${LOCALBASE}/${PYPY_DIR}/lib_pypy/_tkinter/tklib_cffi.${PYPY_CFFI_VER}.so:x11-toolkits/pypy-tkinter -USES= gettext-runtime gmake shebangfix ssl tar:bzip2 +USES= compiler:c11 gettext-runtime gmake shebangfix ssl tar:bzip2 USE_LDCONFIG= ${PREFIX}/${PYPY_DIR}/bin +OPTIONS_DEFINE= BYTECOMPILE + +OPTIONS_DEFAULT= BYTECOMPILE PYTHON + OPTIONS_SINGLE= TRANS -OPTIONS_SINGLE_TRANS= PYTHON +OPTIONS_SINGLE_TRANS= PYTHON PYPY PYPY_MINMEM + +BYTECOMPILE_DESC= Enable to build byte-compiled Python files +TRANS_DESC= Translation method PYTHON_DESC= Use Python-2.7 to translate (slowest) PYPY_DESC= Use PyPy to translate (fastest, highest memory usage) PYPY_MINMEM_DESC= Use PyPy to translate (lowest memory usage) -TRANS_DESC= Translation method + +PYTHON_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pycparser>=2.10:devel/py-pycparser@${PY_FLAVOR} +PYTHON_USES= python:2.7,build +PYPY_BUILD_DEPENDS= pypy2:lang/pypy2 +PYPY_VARS= PYTHON_CMD=${LOCALBASE}/bin/pypy +PYPY_MINMEM_BUILD_DEPENDS= pypy2:lang/pypy2 +PYPY_MINMEM_VARS= PYTHON_CMD="${SETENV} PYPY_GC_MAX_DELTA=200MB ${LOCALBASE}/bin/pypy --jit loop_longevity=300" + +PYPY_TAG= pypy +PYPY_DIR= ${PYPY_TAG}-${DISTVERSION:C|([0-9])\.([0-9]+).*|\1.\2|} -# Only allow building with pypy if it wouldn't cause a dependency loop (pypy depending on itself) -.if exists(${LOCALBASE}/bin/pypy) || ${PORTNAME} != pypy -OPTIONS_SINGLE_TRANS+= PYPY PYPY_MINMEM -. if exists(${LOCALBASE}/bin/pypy) -OPTIONS_DEFAULT= PYPY_MINMEM -. else -OPTIONS_DEFAULT= PYTHON -. endif -.else -OPTIONS_SLAVE= PYTHON -.endif +PYPY_PYTHON_IMPL_VER= 2.7 +PYPY_PYTHON_IMPL_VER_MAJOR= ${PYPY_PYTHON_IMPL_VER:C|([0-9]+)\.[0-9]+|\1|} -LOCALBASE?= /usr/local +PYPY_CFFI_VER= pypy-73 +PYPY_LDLIBRARY= libpypy-c.so +PYPY_EXECUTABLE= pypy-c + +PYPY_ARGS= + +PLIST_SUB+= PYPY_DIR=${PYPY_DIR} \ + PYPY_CFFI_VER=${PYPY_CFFI_VER} \ + PYPY_LDLIBRARY=${PYPY_LDLIBRARY} ALL_TARGET= ${PYPY_EXECUTABLE} -BUILD_WRKSRC?= ${WRKDIR}/build/usession-${PORTNAME}-0/testing_1 +BUILD_WRKSRC= ${WRKDIR}/build/usession-${PYPY_TAG}-0/testing_1 MAKE_ENV+= PYPY_LOCALBASE=${LOCALBASE} LDSHARED="${CC} -shared" -PACKAGE_ARGS?= --without-gdbm --without-sqlite3 --without-_tkinter +PACKAGE_ARGS= --without-gdbm --without-sqlite3 --without-_tkinter LLD_UNSAFE= yes -python_OLD_CMD= ${LOCALBASE}/bin/python -python_CMD= ${PREFIX}/bin/${PORTNAME} - -.if ${PORTNAME} != pypy -PYPY_BUILD_DEPENDS= pypy:lang/pypy -PYPY_MINMEM_BUILD_DEPENDS= pypy:lang/pypy -.endif -PYPY_VARS= PYTHON_CMD=${LOCALBASE}/bin/pypy -PYPY_MINMEM_VARS= PYTHON_CMD="${SETENV} PYPY_GC_MAX_DELTA=200MB ${LOCALBASE}/bin/pypy --jit loop_longevity=300" -PYTHON_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pycparser>=2.10:devel/py-pycparser@${PY_FLAVOR} -PYTHON_USES= python:2.7,build - -DESCR= ${.CURDIR}/pkg-descr -PATCHDIR= ${.CURDIR}/files - -.include "bsd.pypy.mk" -#.include <bsd.port.pre.mk> - -DISTINFO_FILE?= ${.CURDIR}/distinfo -PLIST?= ${.CURDIR}/pkg-plist - -.if ${OPSYS} == FreeBSD && ${ARCH} != i386 && ${ARCH} != amd64 -PYPY_ARGS= --withoutmod-_vmprof -.else -LIB_DEPENDS+= libunwind.so:devel/libunwind -.endif - -.if ${PORTNAME} == pypy +# shebang configuration +python_CMD= ${LOCALBASE}/bin/pypy${PYPY_PYTHON_IMPL_VER} SHEBANG_FILES= lib-python/2.7/plat-mac/appletrunner.py \ lib-python/2.7/plat-mac/bundlebuilder.py \ lib-python/2.7/keyword.py \ @@ -119,107 +109,13 @@ lib-python/2.7/smtplib.py \ lib_pypy/_cffi_ssl/tools/make_ssl_data.py +#.include "bsd.pypy.mk" +.include <bsd.port.pre.mk> + +.if ${OPSYS} == FreeBSD && ${ARCH} != i386 && ${ARCH} != amd64 +PYPY_ARGS= --withoutmod-_vmprof .else -. if ${PORT_OPTIONS:MFORPYIMPL39} -SHEBANG_FILES= \ - lib-python/3/base64.py \ - lib-python/3/cProfile.py \ - lib-python/3/cgi.py \ - lib-python/3/encodings/rot_13.py \ - lib-python/3/keyword.py \ - lib-python/3/idlelib/pyshell.py \ - lib-python/3/lib2to3/pgen2/token.py \ - lib-python/3/lib2to3/tests/data/different_encoding.py \ - lib-python/3/lib2to3/tests/data/false_encoding.py \ - lib-python/3/lib2to3/tests/pytree_idempotency.py \ - lib-python/3/pdb.py \ - lib-python/3/platform.py \ - lib-python/3/profile.py \ - lib-python/3/pydoc.py \ - lib-python/3/quopri.py \ - lib-python/3/smtpd.py \ - lib-python/3/smtplib.py \ - lib-python/3/symbol.py \ - lib-python/3/tabnanny.py \ - lib-python/3/tarfile.py \ - lib-python/3/test/bisect_cmd.py \ - lib-python/3/test/crashers/recursive_call.py \ - lib-python/3/test/curses_tests.py \ - lib-python/3/test/pystone.py \ - lib-python/3/test/re_tests.py \ - lib-python/3/test/regrtest.py \ - lib-python/3/timeit.py \ - lib-python/3/trace.py \ - lib-python/3/turtledemo/bytedesign.py \ - lib-python/3/turtledemo/clock.py \ - lib-python/3/turtledemo/forest.py \ - lib-python/3/turtledemo/fractalcurves.py \ - lib-python/3/turtledemo/lindenmayer.py \ - lib-python/3/turtledemo/minimal_hanoi.py \ - lib-python/3/turtledemo/paint.py \ - lib-python/3/turtledemo/peace.py \ - lib-python/3/turtledemo/penrose.py \ - lib-python/3/turtledemo/planet_and_moon.py \ - lib-python/3/turtledemo/sorting_animate.py \ - lib-python/3/turtledemo/tree.py \ - lib-python/3/turtledemo/yinyang.py \ - lib-python/3/turtledemo/__main__.py \ - lib-python/3/uu.py \ - lib-python/3/webbrowser.py \ - lib_pypy/_cffi_ssl/tools/make_ssl_data.py \ - lib-python/3/test/ziptestdata/header.sh \ - lib-python/3/test/ziptestdata/exe_with_z64 \ - lib-python/3/test/ziptestdata/exe_with_zip -. elif ${PORT_OPTIONS:MFORPYIMPL310} -SHEBANG_FILES= \ - lib-python/3/base64.py \ - lib-python/3/cProfile.py \ - lib-python/3/cgi.py \ - lib-python/3/encodings/rot_13.py \ - lib-python/3/keyword.py \ - lib-python/3/idlelib/pyshell.py \ - lib-python/3/lib2to3/pgen2/token.py \ - lib-python/3/lib2to3/tests/data/different_encoding.py \ - lib-python/3/lib2to3/tests/data/false_encoding.py \ - lib-python/3/lib2to3/tests/pytree_idempotency.py \ - lib-python/3/pdb.py \ - lib-python/3/platform.py \ - lib-python/3/profile.py \ - lib-python/3/pydoc.py \ - lib-python/3/quopri.py \ - lib-python/3/smtpd.py \ - lib-python/3/smtplib.py \ - lib-python/3/tabnanny.py \ - lib-python/3/tarfile.py \ - lib-python/3/test/bisect_cmd.py \ - lib-python/3/test/crashers/recursive_call.py \ - lib-python/3/test/curses_tests.py \ - lib-python/3/test/pystone.py \ - lib-python/3/test/re_tests.py \ - lib-python/3/test/regrtest.py \ - lib-python/3/timeit.py \ - lib-python/3/trace.py \ - lib-python/3/turtledemo/bytedesign.py \ - lib-python/3/turtledemo/clock.py \ - lib-python/3/turtledemo/forest.py \ - lib-python/3/turtledemo/fractalcurves.py \ - lib-python/3/turtledemo/lindenmayer.py \ - lib-python/3/turtledemo/minimal_hanoi.py \ - lib-python/3/turtledemo/paint.py \ - lib-python/3/turtledemo/peace.py \ - lib-python/3/turtledemo/penrose.py \ - lib-python/3/turtledemo/planet_and_moon.py \ - lib-python/3/turtledemo/sorting_animate.py \ - lib-python/3/turtledemo/tree.py \ - lib-python/3/turtledemo/yinyang.py \ - lib-python/3/turtledemo/__main__.py \ - lib-python/3/uu.py \ - lib-python/3/webbrowser.py \ - lib_pypy/_cffi_ssl/tools/make_ssl_data.py \ - lib-python/3/test/ziptestdata/header.sh \ - lib-python/3/test/ziptestdata/exe_with_z64 \ - lib-python/3/test/ziptestdata/exe_with_zip -. endif +LIB_DEPENDS+= libunwind.so:devel/libunwind .endif pre-build: @@ -227,7 +123,7 @@ ${RM} -r ${WRKDIR}/build; \ ${MKDIR} ${WRKDIR}/build; \ (cd ${WRKSRC}/pypy/goal; \ - ${SETENV} ${MAKE_ENV} TMPDIR=${WRKDIR}/build PYPY_USESSION_BASENAME=${PORTNAME} \ + ${SETENV} ${MAKE_ENV} TMPDIR=${WRKDIR}/build PYPY_USESSION_BASENAME=${PYPY_TAG} \ ${PYTHON_CMD} ../../rpython/bin/rpython --source --opt=jit targetpypystandalone.py ${PYPY_ARGS}); \ fi @@ -240,23 +136,10 @@ ${PYTHON_CMD} ${WRKSRC}/pypy/tool/release/package.py --builddir ${WRKDIR}/build --archive-name ${PYPY_DIR} \ ${PACKAGE_ARGS}) ${EXTRACT_CMD} -C ${STAGEDIR}${PREFIX} -xf ${WRKDIR}/build/${PYPY_DIR}.tar.bz2 - ${LN} -fs ../${PYPY_DIR}/bin/${PORTNAME} ${STAGEDIR}${PREFIX}/bin/${PORTNAME} -.if ${PORT_OPTIONS:MFORPYIMPL39} || ${PORT_OPTIONS:MFORPYIMPL310} - ${FIND} ${STAGEDIR}${PREFIX}/${PYPY_DIR}/lib/${PYTHON_IMPL_MINOR} -name '*.so' | ${XARGS} ${STRIP_CMD} -.else + ${LN} -fs ../${PYPY_DIR}/bin/${PYPY_TAG} ${STAGEDIR}${PREFIX}/bin/${PYPY_TAG} + ${LN} -fs ../${PYPY_DIR}/bin/${PYPY_TAG} ${STAGEDIR}${PREFIX}/bin/${PORTNAME} + ${LN} -fs ../${PYPY_DIR}/bin/${PYPY_TAG} ${STAGEDIR}${PREFIX}/bin/${PYPY_TAG}${PYPY_PYTHON_IMPL_VER} ${FIND} ${STAGEDIR}${PREFIX}/${PYPY_DIR}/lib_pypy/ -name '*.so' | ${XARGS} ${STRIP_CMD} -.endif -.if ${PORT_OPTIONS:MFORPYIMPL39} || ${PORT_OPTIONS:MFORPYIMPL310} -. if ${PORT_OPTIONS:MBYTECOMPILE} - @echo Byte-compile the Python standard library for optimization levels 0, 1 and 2 with invalidation mode ${COMPILEALL_INVALIDATIONMODE} - (cd ${STAGEDIR}${PREFIX}/${PYPY_DIR} && ${SETENV} LD_LIBRARY_PATH=${WRKSRC}/pypy/goal \ - ${WRKSRC}/pypy/goal/${PYPY_EXECUTABLE} -B -I -m compileall --invalidation-mode=${COMPILEALL_INVALIDATIONMODE} -q -x '/tests?/' -o 0 -o 1 -o 2 -d "${PREFIX}/${PYPY_DIR}/lib" lib) -. else - @echo Distribution of byte-compiled standard library files is deactivated -. endif -.else - @echo Byte-compilation of standard library files is not yet supported -.endif do-test: # See https://bitbucket.org/pypy/buildbot/src/default/bot2/pypybuildbot/builds.py?at=default#builds.py-386 @@ -283,7 +166,7 @@ -e 's/\(.*\/__pycache__\)\/$$/@dir \1/g' \ -e '/\/$$/d' \ ${WRKDIR}/.plist-files-gen - ${ECHO} bin/${PORTNAME} > ${WRKDIR}/pkg-plist + ${ECHO} bin/${PYPY_TAG} > ${WRKDIR}/pkg-plist ${SORT} ${WRKDIR}/.plist-files-gen | ${GREP} -v '\.orig' >> ${WRKDIR}/pkg-plist ${CP} ${WRKDIR}/pkg-plist ${.CURDIR}/pkg-plist
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lang/pypy2/distinfo Sat Jan 13 20:40:33 2024 +0100 @@ -0,0 +1,3 @@ +TIMESTAMP = 1704649912 +SHA256 (pypy2.7-v7.3.14-src.tar.bz2) = e096fe67ce2d8d4d5e7dceb84fe1ca854498f00766d31b27d32c8d8833131373 +SIZE (pypy2.7-v7.3.14-src.tar.bz2) = 19910947
