mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-25 07:08:13 -07:00
dev-python/pypy: Backport secfixes to 7.3.3 too
Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
DIST pypy2.7-gentoo-patches-7.3.3_p2.tar.xz 11184 BLAKE2B b2b9b94478609372d616c65a87cbb12a07e217928beef9fac26c428f81c662ef390db3fd85bf368ffcc8c6fa3802e506412b7bebd14bdc453009008bc3459d25 SHA512 9ab8ed99b42b36e9c212683ef93f7f1fb99caecf056293ab9a5734f8b52eedec192860702baa121630558530cb5c4652f8542300ecaaaa282377ea6456618b95
|
||||
DIST pypy2.7-gentoo-patches-7.3.3_p3.tar.xz 12936 BLAKE2B 7d00353f79d535044e4e2c9cb8ad06d637bca4707123a566989b0ab97ac2f22d9f631d1d5f4e32bf1e0d5202dbc31fffa8d39718963da2a4594f814b90aa8132 SHA512 818910bbe3c01399a0da361a48098a4e875ddd7d4fd50f23bc06501dae7ed5eb3ee773b0dd76d256d141ba190d55b5c725fa4d7ed8d7a9841e6be81babaf518b
|
||||
DIST pypy2.7-gentoo-patches-7.3.4.tar.xz 7844 BLAKE2B d06694fa085667e40ef8805c29f7ccf95b49f9de4e99e3ebfa3d69c4202a0ddcebb54c524d7d9f9ec67573a8d2ebe38fb7023d4d3ecef67afc907ecef5c16c02 SHA512 aa8ffefb5d30070ae86c1c14c55c277e39d3da66aea3a0951319158fb65e716e7fa7864e8bf5d26314d4b2a8030c766b63cad6a3663822d2875cd8cc1f3f2de5
|
||||
DIST pypy2.7-v7.3.3-src.tar.bz2 20881821 BLAKE2B ce1ecdd1fffe40574c7662da6038b84d2bca47ab168939ef0c12be2c6348317f17a94a3026e7fa53c71601edc153aefd98f770bd148e7af07ca751c0a5fc1252 SHA512 c2b6c44fdcac5f9445fab01572f859228fc286891fd09a4ddb95d283683d805276c853ec8e61fcd04cb9ee811d0e959d19bb03fdd7442c044f28a773633122e7
|
||||
DIST pypy2.7-v7.3.4-src.tar.bz2 21571561 BLAKE2B d0ac56fadec63fe7e65728c36c2aaf96fc5f54919dddbca9571a24c42a9e3e21f672f84555a18a384c4715f0489bd7aef009c0a47b635de88c472a93e2ae8d71 SHA512 4c18c2dbfbf0cc1034bea773828204df77aec7ef82119fb94e5cb762ce1783e00ad70e99d1432b4948dc132e726bdc6015f4a5bf10a5b10415bcfe99da2ecd17
|
||||
|
||||
161
dev-python/pypy/pypy-7.3.3_p3.ebuild
Normal file
161
dev-python/pypy/pypy-7.3.3_p3.ebuild
Normal file
@@ -0,0 +1,161 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit pax-utils python-utils-r1
|
||||
|
||||
PYPY_PV=${PV%_p*}
|
||||
MY_P=pypy2.7-v${PYPY_PV}
|
||||
PATCHSET="pypy2.7-gentoo-patches-${PV}"
|
||||
|
||||
DESCRIPTION="A fast, compliant alternative implementation of the Python language"
|
||||
HOMEPAGE="https://www.pypy.org/"
|
||||
SRC_URI="https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2
|
||||
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz"
|
||||
S="${WORKDIR}/${MY_P}-src"
|
||||
|
||||
LICENSE="MIT"
|
||||
# pypy -c 'import sysconfig; print sysconfig.get_config_var("SOABI")'
|
||||
SLOT="0/73"
|
||||
KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="bzip2 gdbm +jit libressl ncurses sqlite tk"
|
||||
|
||||
RDEPEND="
|
||||
|| (
|
||||
>=dev-python/pypy-exe-7.3.3_p2:${PYPY_PV}[bzip2?,ncurses?]
|
||||
>=dev-python/pypy-exe-bin-7.3.3_p2:${PYPY_PV}
|
||||
)
|
||||
!libressl? ( dev-libs/openssl:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
gdbm? ( sys-libs/gdbm:0= )
|
||||
sqlite? ( dev-db/sqlite:3= )
|
||||
tk? (
|
||||
dev-lang/tk:0=
|
||||
dev-tcltk/tix:0=
|
||||
)
|
||||
!<dev-python/pypy-bin-7.3.0:0"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
src_prepare() {
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
default
|
||||
|
||||
sed -e "s^@EPREFIX@^${EPREFIX}^" \
|
||||
-i lib-python/2.7/distutils/command/install.py || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# copy over to make sys.prefix happy
|
||||
cp -p "${BROOT}"/usr/lib/pypy2.7/pypy-c-${PYPY_PV} pypy-c || die
|
||||
cp -p "${BROOT}"/usr/lib/pypy2.7/include/${PYPY_PV}/* include/ || die
|
||||
# (not installed by pypy)
|
||||
rm pypy/module/cpyext/include/_numpypy/numpy/README || die
|
||||
mv pypy/module/cpyext/include/* include/ || die
|
||||
mv pypy/module/cpyext/parse/*.h include/ || die
|
||||
pax-mark m pypy-c
|
||||
|
||||
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 = {
|
||||
# "_ssl": "_ssl_build.py",
|
||||
# "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=( ssl audioop syslog pwdgrp resource )
|
||||
use gdbm && cffi_targets+=( gdbm )
|
||||
use ncurses && cffi_targets+=( curses )
|
||||
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() {
|
||||
# (unset)
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
local -x COLUMNS=80
|
||||
|
||||
local ignored_tests=(
|
||||
# network
|
||||
--ignore=lib-python/2.7/test/test_urllibnet.py
|
||||
--ignore=lib-python/2.7/test/test_urllib2net.py
|
||||
# lots of free space
|
||||
--ignore=lib-python/2.7/test/test_zipfile64.py
|
||||
)
|
||||
|
||||
./pypy-c ./pypy/test_all.py --pypy=./pypy-c -vv \
|
||||
"${ignored_tests[@]}" lib-python || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local dest=/usr/lib/pypy2.7
|
||||
einfo "Installing PyPy ..."
|
||||
dosym pypy-c-${PYPY_PV} "${dest}/pypy-c"
|
||||
insinto "${dest}"
|
||||
# preserve mtimes to avoid obsoleting caches
|
||||
insopts -p
|
||||
doins -r include lib_pypy lib-python
|
||||
|
||||
# replace copied headers with symlinks
|
||||
for x in "${BROOT}"/usr/lib/pypy2.7/include/${PYPY_PV}/*; do
|
||||
dosym "${PYPY_PV}/${x##*/}" "${dest}/include/${x##*/}"
|
||||
done
|
||||
|
||||
dosym ../lib/pypy2.7/pypy-c /usr/bin/pypy
|
||||
dodoc README.rst
|
||||
|
||||
if ! use gdbm; then
|
||||
rm -r "${ED}${dest}"/lib_pypy/gdbm.py \
|
||||
"${ED}${dest}"/lib-python/*2.7/test/test_gdbm.py || die
|
||||
fi
|
||||
if ! use sqlite; then
|
||||
rm -r "${ED}${dest}"/lib-python/*2.7/sqlite3 \
|
||||
"${ED}${dest}"/lib_pypy/_sqlite3.py \
|
||||
"${ED}${dest}"/lib-python/*2.7/test/test_sqlite.py || die
|
||||
fi
|
||||
if ! use tk; then
|
||||
rm -r "${ED}${dest}"/lib-python/*2.7/{idlelib,lib-tk} \
|
||||
"${ED}${dest}"/lib_pypy/_tkinter \
|
||||
"${ED}${dest}"/lib-python/*2.7/test/test_{tcl,tk,ttk*}.py || die
|
||||
fi
|
||||
|
||||
local -x EPYTHON=pypy
|
||||
local -x PYTHON=${ED}${dest}/pypy-c-${PYPY_PV}
|
||||
# temporarily copy to build tree to facilitate module builds
|
||||
cp -p "${BROOT}${dest}/pypy-c-${PYPY_PV}" "${PYTHON}" || die
|
||||
|
||||
echo "EPYTHON='${EPYTHON}'" > epython.py || die
|
||||
python_moduleinto /usr/lib/pypy2.7/site-packages
|
||||
python_domodule epython.py
|
||||
|
||||
einfo "Byte-compiling Python standard library..."
|
||||
python_optimize "${ED}${dest}"
|
||||
|
||||
# remove to avoid collisions
|
||||
rm "${PYTHON}" || die
|
||||
}
|
||||
Reference in New Issue
Block a user