dev-python/pypy-bin: Sync to dev-python/pypy
authorMichał Górny <mgorny@gentoo.org>
Sun, 5 Nov 2017 14:48:35 +0000 (15:48 +0100)
committerMichał Górny <mgorny@gentoo.org>
Sun, 5 Nov 2017 16:22:58 +0000 (17:22 +0100)
dev-python/pypy-bin/pypy-bin-5.9.0.ebuild

index b528c67b35dd1a2b7713d818857af22ed18fa34a..0ebeca4356ff90dc358e7420c231322d7678d1e3 100644 (file)
@@ -99,9 +99,44 @@ src_compile() {
        mv pypy/module/cpyext/include/* include/ || die
        mv pypy/module/cpyext/parse/*.h include/ || die
 
-       use doc && emake -C pypy/doc/ html
-       #needed even without jit :( also needed in both compile and install phases
        pax-mark m pypy-c libpypy-c.so
+
+       use doc && emake -C pypy/doc html
+
+       einfo "Generating caches and CFFI modules ..."
+
+       # Generate Grammar and PatternGrammar pickles.
+       ./pypy-c -c "import lib2to3.pygram, lib2to3.patcomp; lib2to3.patcomp.PatternCompiler()" \
+               || die "Generation of Grammar and PatternGrammar pickles failed"
+
+       # Generate cffi modules
+       # Please keep in sync with pypy/tool/build_cffi_imports.py!
+#cffi_build_scripts = {
+#    "sqlite3": "_sqlite3_build.py",
+#    "audioop": "_audioop_build.py",
+#    "tk": "_tkinter/tklib_build.py",
+#    "curses": "_curses_build.py" if sys.platform != "win32" else None,
+#    "syslog": "_syslog_build.py" if sys.platform != "win32" else None,
+#    "gdbm": "_gdbm_build.py"  if sys.platform != "win32" else None,
+#    "pwdgrp": "_pwdgrp_build.py" if sys.platform != "win32" else None,
+#    "resource": "_resource_build.py" if sys.platform != "win32" else None,
+       cffi_targets=( audioop curses syslog pwdgrp resource )
+       use gdbm && cffi_targets+=( gdbm )
+       use sqlite && cffi_targets+=( sqlite3 )
+       use tk && cffi_targets+=( tkinter/tklib )
+
+       local t
+       # all modules except tkinter output to .
+       # tkinter outputs to the correct dir ...
+       cd lib_pypy || die
+       for t in "${cffi_targets[@]}"; do
+               # tkinter doesn't work via -m
+               ../pypy-c "_${t}_build.py" || die "Failed to build CFFI bindings for ${t}"
+       done
+
+       # Cleanup temporary objects
+       find -name "_cffi_*.[co]" -delete || die
+       find -type d -empty -delete || die
 }
 
 src_test() {
@@ -114,10 +149,11 @@ src_test() {
 src_install() {
        local dest=/usr/$(get_libdir)/pypy
        einfo "Installing PyPy ..."
-       insinto "${dest}"
-       doins -r include lib_pypy lib-python pypy-c libpypy-c.so
-       fperms a+x ${dest}/pypy-c ${dest}/libpypy-c.so
+       exeinto "${dest}"
+       doexe pypy-c libpypy-c.so
        pax-mark m "${ED%/}${dest}/pypy-c" "${ED%/}${dest}/libpypy-c.so"
+       insinto "${dest}"
+       doins -r include lib_pypy lib-python
        dosym ../$(get_libdir)/pypy/pypy-c /usr/bin/pypy
        dodoc README.rst
 
@@ -139,10 +175,7 @@ src_install() {
        # Install docs
        use doc && dodoc -r pypy/doc/_build/html
 
-       einfo "Generating caches and byte-compiling ..."
-
        local -x PYTHON=${ED%/}${dest}/pypy-c
-       local -x LD_LIBRARY_PATH="${ED%/}${dest}"
        # we can't use eclass function since PyPy is dumb and always gives
        # paths relative to the interpreter
        local PYTHON_SITEDIR=${EPREFIX}/usr/$(get_libdir)/pypy/site-packages
@@ -151,38 +184,7 @@ src_install() {
        echo "EPYTHON='${EPYTHON}'" > epython.py || die
        python_domodule epython.py
 
-       # Generate Grammar and PatternGrammar pickles.
-       "${PYTHON}" -c "import lib2to3.pygram, lib2to3.patcomp; lib2to3.patcomp.PatternCompiler()" \
-               || die "Generation of Grammar and PatternGrammar pickles failed"
-
-       # Generate cffi modules
-       # Please keep in sync with pypy/tool/build_cffi_imports.py!
-#cffi_build_scripts = {
-#    "sqlite3": "_sqlite3_build.py",
-#    "audioop": "_audioop_build.py",
-#    "tk": "_tkinter/tklib_build.py",
-#    "curses": "_curses_build.py" if sys.platform != "win32" else None,
-#    "syslog": "_syslog_build.py" if sys.platform != "win32" else None,
-#    "gdbm": "_gdbm_build.py"  if sys.platform != "win32" else None,
-#    "pwdgrp": "_pwdgrp_build.py" if sys.platform != "win32" else None,
-#    "resource": "_resource_build.py" if sys.platform != "win32" else None,
-       cffi_targets=( audioop curses syslog pwdgrp resource )
-       use gdbm && cffi_targets+=( gdbm )
-       use sqlite && cffi_targets+=( sqlite3 )
-       use tk && cffi_targets+=( tkinter/tklib )
-
-       local t
-       # all modules except tkinter output to .
-       # tkinter outputs to the correct dir ...
-       cd "${ED%/}${dest}"/lib_pypy || die
-       for t in "${cffi_targets[@]}"; do
-               # tkinter doesn't work via -m
-               "${PYTHON}" "_${t}_build.py" || die "Failed to build CFFI bindings for ${t}"
-       done
-
-       # Cleanup temporary objects
-       find "${ED%/}${dest}" -name "_cffi_*.[co]" -delete || die
-       find "${ED%/}${dest}" -type d -empty -delete || die
+       einfo "Byte-compiling Python standard library..."
 
        # compile the installed modules
        python_optimize "${ED%/}${dest}"