commit:     ad066639fb2cdb22b3737674916052fc7bd370f7
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 27 12:48:33 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Mar 27 12:48:33 2019 +0000
URL:        https://gitweb.gentoo.org/repo/dev/mgorny.git/commit/?id=ad066639

dev-binpkg/pypy3: Bump to 7.1.0

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-binpkg/pypy3/Manifest           |   1 +
 dev-binpkg/pypy3/pypy3-7.1.0.ebuild | 178 ++++++++++++++++++++++++++++++++++++
 2 files changed, 179 insertions(+)

diff --git a/dev-binpkg/pypy3/Manifest b/dev-binpkg/pypy3/Manifest
index a28ef9f..bd85b76 100644
--- a/dev-binpkg/pypy3/Manifest
+++ b/dev-binpkg/pypy3/Manifest
@@ -8,3 +8,4 @@ DIST pypy3-v6.0.0-src.tar.bz2 22648140 BLAKE2B 
b8678859b0c24494788ddf6f410a3ec1a
 DIST pypy3.3-v5.2.0-alpha1-src.tar.bz2 24390595 BLAKE2B 
597c2fde68b884592f2c0fb8032a8ee6b0bfb6d3ee47dc1e64a7bb6759f329b909cadb04c99c422f6e4f756ab2787aa3f850d6e05e37f06c3f28436d98e0f805
 SHA512 
1b6bcab12a7f4dd0ac44158b8acafd64de4b9bcc277385ba4c05982381dcd577fa6ec7b2247f70d2671055f3669764b92b4447b32d51ded58c60e6ec23509595
 DIST pypy3.3-v5.5.0-alpha-src.tar.bz2 25122033 BLAKE2B 
6d0fc60fd8f5461a043f7a48dc6faaf0fd886a83a87955053e4fd9aae33e3e0a84421319916284170ade4cb663d1aa3c0db761489745cda685a4d55efc0eccb1
 SHA512 
b2cf9700e45c452293297edffe08e572dffc3c567026b4b5d9165c1ba1b4d858ffc8a6754f5f28781020016c36440e5c02d07562d075b12444c9c32ea5dd2168
 DIST pypy3.5-v7.0.0-src.tar.bz2 22730690 BLAKE2B 
312aea1f88303b225bbfa5e82a28d3c2893d9977b03a3fd12923db15c4a77f04ec3fbce947f0684c4e27073836583ef8a5eaf5be05612e564172170740c2a6e3
 SHA512 
3facac26e06e254cbf244841824b35ec211859123f6ba9f095dc980292c10d9cf1d11de62cc6372cf77e92ee1cd2358bbd794b3ff25cb7172e1b21c02c8ce6c2
+DIST pypy3.6-v7.1.0-src.tar.bz2 23167216 BLAKE2B 
12a085c2d4820289643818d8bc1c17304e4cf4f4687054452d878c6f26fd36802bbbe5baee73f0ce2f0322e126dbccbcf7b48ca6569bb7eb8d59f473bd80d4b1
 SHA512 
1a0a9e9de31c63114c0537747c4a718504a28b780a2ef1f76bff6051a1ec68b496b574989f0b729c07611cd81e199135dd268834dfa6f9664e1e119db8ae20e4

diff --git a/dev-binpkg/pypy3/pypy3-7.1.0.ebuild 
b/dev-binpkg/pypy3/pypy3-7.1.0.ebuild
new file mode 100644
index 0000000..f1e198c
--- /dev/null
+++ b/dev-binpkg/pypy3/pypy3-7.1.0.ebuild
@@ -0,0 +1,178 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+# pypy3 needs to be built using python 2
+PYTHON_COMPAT=( python2_7 pypy )
+inherit check-reqs pax-utils python-any-r1 toolchain-funcs
+
+MY_P=pypy3.6-v${PV}
+
+DESCRIPTION="A fast, compliant alternative implementation of the Python (3.6) 
language"
+HOMEPAGE="http://pypy.org/";
+SRC_URI="https://bitbucket.org/pypy/pypy/downloads/${MY_P}-src.tar.bz2";
+
+LICENSE="MIT"
+# pypy3 -c 'import sysconfig; print(sysconfig.get_config_var("SOABI"))'
+SLOT="0/71"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="bzip2 +jit libressl low-memory ncurses sandbox cpu_flags_x86_sse2"
+
+DEPEND=">=sys-libs/zlib-1.1.3:0=
+       virtual/libffi:0=
+       virtual/libintl:0=
+       dev-libs/expat:0=
+       !libressl? ( dev-libs/openssl:0=[-bindist] )
+       libressl? ( dev-libs/libressl:0= )
+       bzip2? ( app-arch/bzip2:0= )
+       ncurses? ( sys-libs/ncurses:0= )
+       app-arch/lzip
+       low-memory? ( virtual/pypy:0 )
+       !low-memory? ( ${PYTHON_DEPS} )"
+#      doc? ( dev-python/sphinx )
+
+S="${WORKDIR}/${MY_P}-src"
+
+pkg_pretend() {
+       if [[ ${MERGE_TYPE} != binary ]]; then
+               if use low-memory; then
+                       CHECKREQS_MEMORY="1750M"
+                       use amd64 && CHECKREQS_MEMORY="3500M"
+               else
+                       CHECKREQS_MEMORY="3G"
+                       use amd64 && CHECKREQS_MEMORY="6G"
+               fi
+
+               check-reqs_pkg_pretend
+       fi
+}
+
+pkg_setup() {
+       if [[ ${MERGE_TYPE} != binary ]]; then
+               pkg_pretend
+
+               # unset to allow forcing pypy below :)
+               use low-memory && local EPYTHON=
+               if python_is_installed pypy && [[ ! ${EPYTHON} || ${EPYTHON} == 
pypy ]]; then
+                       einfo "Using PyPy to perform the translation."
+                       local EPYTHON=pypy
+               else
+                       einfo "Using ${EPYTHON:-python2} to perform the 
translation. Please note that upstream"
+                       einfo "recommends using PyPy for that. If you wish to 
do so, please install"
+                       einfo "virtual/pypy and ensure that EPYTHON variable is 
unset."
+               fi
+
+               python-any-r1_pkg_setup
+
+               local cpu
+               if use amd64; then
+                       # common denominator between Intel & AMD
+                       cpu='x86-64'
+               elif use x86; then
+                       if use cpu_flags_x86_sse2; then
+                               # lowest with SSE2
+                               cpu='pentium-m'
+                       else
+                               # lowest with SSE, compat. with athlon-xp
+                               # TODO: do we want to support something older?
+                               cpu='pentium3'
+                       fi
+               else
+                       die "Unsupported arch ${ARCH}"
+               fi
+
+               export CFLAGS="-march=${cpu} -mtune=generic -O2 -pipe"
+               export CXXFLAGS=${CFLAGS}
+
+               elog "CFLAGS: ${CFLAGS}"
+       fi
+}
+
+src_prepare() {
+       eapply "${FILESDIR}"/5.9.0-shared-lib.patch     # 517002
+
+       eapply_user
+}
+
+src_configure() {
+       tc-export CC
+
+       local args=(
+               --shared
+               $(usex jit -Ojit -O2)
+               $(usex sandbox --sandbox '')
+
+               --jit-backend=auto
+
+               pypy/goal/targetpypystandalone
+       )
+
+       # Avoid linking against libraries disabled by use flags
+       local opts=(
+               bzip2:bz2
+               ncurses:_minimal_curses
+       )
+
+       local opt
+       for opt in "${opts[@]}"; do
+               local flag=${opt%:*}
+               local mod=${opt#*:}
+
+               args+=(
+                       $(usex ${flag} --withmod --withoutmod)-${mod}
+               )
+       done
+
+       local interp=( "${PYTHON}" )
+       if use low-memory; then
+               interp=( env PYPY_GC_MAX_DELTA=200MB
+                       "${PYTHON}" --jit loop_longevity=300 )
+       fi
+
+       # translate into the C sources
+       # we're going to make them ourselves since otherwise pypy does not
+       # free up the unneeded memory before spawning the compiler
+       set -- "${interp[@]}" rpython/bin/rpython --batch --source "${args[@]}"
+       echo -e "\033[1m${@}\033[0m"
+       "${@}" || die "translation failed"
+}
+
+src_compile() {
+       emake -C "${T}"/usession*-0/testing_1
+
+       # copy back to make sys.prefix happy
+       cp -p "${T}"/usession*-0/testing_1/{pypy3-c,libpypy3-c.so} . || die
+       pax-mark m pypy3-c libpypy3-c.so
+
+       #use doc && emake -C pypy/doc html
+}
+
+src_install() {
+       local flags=( bzip2 jit ncurses sandbox )
+       use x86 && flags+=( cpu_flags_x86_sse2 )
+       local f suffix="-${ARCH}"
+
+       for f in ${flags[@]}; do
+               use ${f} && suffix+="+${f#cpu_flags_x86_}"
+       done
+
+       local BIN_P=pypy3-bin-${PV}
+
+       einfo "Zipping PyPy ..."
+       mkdir "${BIN_P}${suffix}"{,/include} || die
+       mv pypy3-c libpypy3-c.so "${BIN_P}${suffix}"/ || die
+       mv include/pypy_* "${BIN_P}${suffix}"/include/ || die
+       chmod +x "${BIN_P}${suffix}"/pypy3-c || die
+
+       tar -cf "${BIN_P}${suffix}.tar" "${BIN_P}${suffix}" || die
+       lzip -v9 "${BIN_P}${suffix}.tar" || die
+}
+
+# Yup, very hacky.
+pkg_preinst() {
+       # integrity check.
+       [[ ${PYPY_BINPKG_STORE} ]] || die 'PYPY_BINPKG_STORE unset, wtf?!'
+       mkdir -p "${ROOT%/}${PYPY_BINPKG_STORE}" || die
+       mv "${S}"/*.tar.lz "${ROOT%/}${PYPY_BINPKG_STORE}" || die
+}

Reply via email to