public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: dev-python/pypy/files/, dev-python/pypy/
@ 2015-11-27 16:11 Michał Górny
  0 siblings, 0 replies; 16+ messages in thread
From: Michał Górny @ 2015-11-27 16:11 UTC (permalink / raw
  To: gentoo-commits

commit:     e1ac9809d47a37efdcc535cd6b6a6d41068833dc
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 27 16:09:30 2015 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Nov 27 16:11:08 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e1ac9809

dev-python/pypy: Remove old

 dev-python/pypy/Manifest                           |   2 -
 .../pypy/files/2.3-21_all_distutils_c++.patch      | 321 ---------------------
 dev-python/pypy/files/2.3.1-shared-lib.patch       |  11 -
 dev-python/pypy/pypy-2.4.0.ebuild                  | 233 ---------------
 dev-python/pypy/pypy-2.5.1.ebuild                  | 233 ---------------
 5 files changed, 800 deletions(-)

diff --git a/dev-python/pypy/Manifest b/dev-python/pypy/Manifest
index 8a06322..f5e2f43 100644
--- a/dev-python/pypy/Manifest
+++ b/dev-python/pypy/Manifest
@@ -1,5 +1,3 @@
-DIST pypy-2.4.0-src.tar.bz2 15495214 SHA256 38810007aee4885ca0703b566db6594dd7649adaaa287df7a1012f10e067740f SHA512 91b41ed80a6ff0d7b2b134a7802f098de35ffd2068dc3e477d27b0bc821c6d329eb8bcad4db4a5ff9ff429830d4abfbeb435a2a2d2d9bbc2c36f2d21af0b2e0c WHIRLPOOL affb14b805b2dcb8b579dd421bfb8276e80d3b31cea41bf57ad5dd9260e2e27d838b0303e4a3af5ca38b0b4f08ac88b142d6f1db20753bec6f8cbfdfc482099b
-DIST pypy-2.5.1-src.tar.bz2 16740876 SHA256 ddb3a580b1ee99c5a699172d74be91c36dda9a38946d4731d8c6a63120a3ba2a SHA512 ac4cab47566d7d4e1a293a680e0dffa301c99a8329c2e68f645f186c0266cbe8f045a03e392c0cc2112a16178037cd978b7867ad073bf5dd957dd19f4c818067 WHIRLPOOL 6f16c4090780081dfe1d4642186262c66d4ac1a4b3b8311e573bfa6029eb7aac0483b3e48cad5ce03879391a4e316c0186d33fac5e86d0024ff20cc6d4dc0dd3
 DIST pypy-2.6.0-src.tar.bz2 16858400 SHA256 9bf353f22d25e97a85a6d3766619966055edea1ea1b2218445d683a8ad0399d9 SHA512 82a6a44c0c551a1291215394610e5331cf83216b38ac9f1a79a3eab53ba2933b121c3154b58cead814c73a1da1fc95d895324bb0c43e8e0429438b0dea527cc4 WHIRLPOOL e536ff5d3b393c6834fd721f383318b5dcef79046f475b0f1fe737c67c56e8769cabc0a35f553da5dc475a255c5711de01bd6d42e541cabbab3b9e30f20c9a5c
 DIST pypy-4.0.0-src.tar.bz2 17244624 SHA256 acff480e44ce92acd057f2e786775af36dc3c2cd12e9efc60a1ac6a562ad7b4d SHA512 2bbdc2536a32b0aa28f7b12ec3d879ed28afe984fad38635bc3e1d950a9fe198cfbaf9b554f0fa245e7fd512ec7a76297f05a1d3e17f73fb49e8506561190f5b WHIRLPOOL e94bdf5e8ea2cbab8e25d37bb7cb36b9bae773ec051d603cfce784e0fd8e591ed16e6896f49d14d9ae094c5f613a0ba871380c8adc2a1cf0023157e3e2a51f52
 DIST python-gentoo-patches-2.7.10-0.tar.xz 12892 SHA256 c9a838bd62ae50cc385da23a837acfd05f2b74e4f086c9c76eb4d3aa5366ef6d SHA512 5f100944635e360691dc0a2b340a906646c4ae9ee558246ddffc56e8b15d389f25f1fbdc1db4cc08e7d29560d04d66b058b3904902899d58ecae8c408ebdf056 WHIRLPOOL f69e9a518bb7ee50c1b262a21e70e1e2443f859ee6d2f4fa84421120dbd054a06ce8dd6cfea8512cbc64bce806322b879c25c561d5eb05e1ba6cc15035b373a9

diff --git a/dev-python/pypy/files/2.3-21_all_distutils_c++.patch b/dev-python/pypy/files/2.3-21_all_distutils_c++.patch
deleted file mode 100644
index 2787360..0000000
--- a/dev-python/pypy/files/2.3-21_all_distutils_c++.patch
+++ /dev/null
@@ -1,321 +0,0 @@
-http://bugs.python.org/issue1222585
-
---- Lib/distutils/cygwinccompiler.py
-+++ Lib/distutils/cygwinccompiler.py
-@@ -117,8 +117,10 @@
-         # dllwrap 2.10.90 is buggy
-         if self.ld_version >= "2.10.90":
-             self.linker_dll = "gcc"
-+            self.linker_dll_cxx = "g++"
-         else:
-             self.linker_dll = "dllwrap"
-+            self.linker_dll_cxx = "dllwrap"
- 
-         # ld_version >= "2.13" support -shared so use it instead of
-         # -mdll -static
-@@ -132,9 +134,13 @@
-         self.set_executables(compiler='gcc -mcygwin -O -Wall',
-                              compiler_so='gcc -mcygwin -mdll -O -Wall',
-                              compiler_cxx='g++ -mcygwin -O -Wall',
-+                             compiler_so_cxx='g++ -mcygwin -mdll -O -Wall',
-                              linker_exe='gcc -mcygwin',
-                              linker_so=('%s -mcygwin %s' %
--                                        (self.linker_dll, shared_option)))
-+                                        (self.linker_dll, shared_option)),
-+                             linker_exe_cxx='g++ -mcygwin',
-+                             linker_so_cxx=('%s -mcygwin %s' %
-+                                            (self.linker_dll_cxx, shared_option)))
- 
-         # cygwin and mingw32 need different sets of libraries
-         if self.gcc_version == "2.91.57":
-@@ -160,8 +166,12 @@
-                 raise CompileError, msg
-         else: # for other files use the C-compiler
-             try:
--                self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
--                           extra_postargs)
-+                if self.detect_language(src) == 'c++':
-+                    self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
-+                               extra_postargs)
-+                else:
-+                    self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
-+                               extra_postargs)
-             except DistutilsExecError, msg:
-                 raise CompileError, msg
- 
-@@ -327,9 +337,14 @@
-         self.set_executables(compiler='gcc%s -O -Wall' % no_cygwin,
-                              compiler_so='gcc%s -mdll -O -Wall' % no_cygwin,
-                              compiler_cxx='g++%s -O -Wall' % no_cygwin,
-+                             compiler_so_cxx='g++%s -mdll -O -Wall' % no_cygwin,
-                              linker_exe='gcc%s' % no_cygwin,
-                              linker_so='%s%s %s %s'
-                                     % (self.linker_dll, no_cygwin,
-+                                       shared_option, entry_point),
-+                             linker_exe_cxx='g++%s' % no_cygwin,
-+                             linker_so_cxx='%s%s %s %s'
-+                                    % (self.linker_dll_cxx, no_cygwin,
-                                        shared_option, entry_point))
-         # Maybe we should also append -mthreads, but then the finished
-         # dlls need another dll (mingwm10.dll see Mingw32 docs)
---- Lib/distutils/emxccompiler.py
-+++ Lib/distutils/emxccompiler.py
-@@ -65,8 +65,12 @@
-         # XXX optimization, warnings etc. should be customizable.
-         self.set_executables(compiler='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
-                              compiler_so='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
-+                             compiler_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
-+                             compiler_so_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
-                              linker_exe='gcc -Zomf -Zmt -Zcrtdll',
--                             linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll')
-+                             linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll',
-+                             linker_exe_cxx='g++ -Zomf -Zmt -Zcrtdll',
-+                             linker_so_cxx='g++ -Zomf -Zmt -Zcrtdll -Zdll')
- 
-         # want the gcc library statically linked (so that we don't have
-         # to distribute a version dependent on the compiler we have)
-@@ -83,8 +87,12 @@
-                 raise CompileError, msg
-         else: # for other files use the C-compiler
-             try:
--                self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
--                           extra_postargs)
-+                if self.detect_language(src) == 'c++':
-+                    self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
-+                               extra_postargs)
-+                else:
-+                    self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
-+                               extra_postargs)
-             except DistutilsExecError, msg:
-                 raise CompileError, msg
- 
---- Lib/distutils/sysconfig_cpython.py
-+++ Lib/distutils/sysconfig_cpython.py
-@@ -170,10 +170,12 @@
-                 _osx_support.customize_compiler(_config_vars)
-                 _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
- 
--        (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
--            get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
--                            'CCSHARED', 'LDSHARED', 'SO', 'AR',
--                            'ARFLAGS')
-+        (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \
-+            get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED',
-+                            'SO', 'AR', 'ARFLAGS')
-+
-+        cflags = ''
-+        cxxflags = ''
- 
-         if 'CC' in os.environ:
-             newcc = os.environ['CC']
-@@ -188,19 +190,27 @@
-             cxx = os.environ['CXX']
-         if 'LDSHARED' in os.environ:
-             ldshared = os.environ['LDSHARED']
-+        if 'LDCXXSHARED' in os.environ:
-+            ldcxxshared = os.environ['LDCXXSHARED']
-         if 'CPP' in os.environ:
-             cpp = os.environ['CPP']
-         else:
-             cpp = cc + " -E"           # not always
-         if 'LDFLAGS' in os.environ:
-             ldshared = ldshared + ' ' + os.environ['LDFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
-         if 'CFLAGS' in os.environ:
--            cflags = opt + ' ' + os.environ['CFLAGS']
-+            cflags = os.environ['CFLAGS']
-             ldshared = ldshared + ' ' + os.environ['CFLAGS']
-+        if 'CXXFLAGS' in os.environ:
-+            cxxflags = os.environ['CXXFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
-         if 'CPPFLAGS' in os.environ:
-             cpp = cpp + ' ' + os.environ['CPPFLAGS']
-             cflags = cflags + ' ' + os.environ['CPPFLAGS']
-+            cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
-             ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
-         if 'AR' in os.environ:
-             ar = os.environ['AR']
-         if 'ARFLAGS' in os.environ:
-@@ -209,13 +219,17 @@
-             archiver = ar + ' ' + ar_flags
- 
-         cc_cmd = cc + ' ' + cflags
-+        cxx_cmd = cxx + ' ' + cxxflags
-         compiler.set_executables(
-             preprocessor=cpp,
-             compiler=cc_cmd,
-             compiler_so=cc_cmd + ' ' + ccshared,
--            compiler_cxx=cxx,
-+            compiler_cxx=cxx_cmd,
-+            compiler_so_cxx=cxx_cmd + ' ' + ccshared,
-             linker_so=ldshared,
-             linker_exe=cc,
-+            linker_so_cxx=ldcxxshared,
-+            linker_exe_cxx=cxx,
-             archiver=archiver)
- 
-         compiler.shared_lib_extension = so_ext
---- Lib/distutils/unixccompiler.py
-+++ Lib/distutils/unixccompiler.py
-@@ -55,14 +55,17 @@
-     # are pretty generic; they will probably have to be set by an outsider
-     # (eg. using information discovered by the sysconfig about building
-     # Python extensions).
--    executables = {'preprocessor' : None,
--                   'compiler'     : ["cc"],
--                   'compiler_so'  : ["cc"],
--                   'compiler_cxx' : ["cc"],
--                   'linker_so'    : ["cc", "-shared"],
--                   'linker_exe'   : ["cc"],
--                   'archiver'     : ["ar", "-cr"],
--                   'ranlib'       : None,
-+    executables = {'preprocessor'    : None,
-+                   'compiler'        : ["cc"],
-+                   'compiler_so'     : ["cc"],
-+                   'compiler_cxx'    : ["c++"],
-+                   'compiler_so_cxx' : ["c++"],
-+                   'linker_so'       : ["cc", "-shared"],
-+                   'linker_exe'      : ["cc"],
-+                   'linker_so_cxx'   : ["c++", "-shared"],
-+                   'linker_exe_cxx'  : ["c++"],
-+                   'archiver'        : ["ar", "-cr"],
-+                   'ranlib'          : None,
-                   }
- 
-     if sys.platform[:6] == "darwin":
-@@ -112,12 +115,19 @@
- 
-     def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
-         compiler_so = self.compiler_so
-+        compiler_so_cxx = self.compiler_so_cxx
-         if sys.platform == 'darwin':
-             compiler_so = _osx_support.compiler_fixup(compiler_so,
-                                                     cc_args + extra_postargs)
-+            compiler_so_cxx = _osx_support.compiler_fixup(compiler_so_cxx,
-+                                                    cc_args + extra_postargs)
-         try:
--            self.spawn(compiler_so + cc_args + [src, '-o', obj] +
--                       extra_postargs)
-+            if self.detect_language(src) == 'c++':
-+                self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] +
-+                           extra_postargs)
-+            else:
-+                self.spawn(compiler_so + cc_args + [src, '-o', obj] +
-+                           extra_postargs)
-         except DistutilsExecError, msg:
-             raise CompileError, msg
- 
-@@ -174,23 +184,16 @@
-                 ld_args.extend(extra_postargs)
-             self.mkpath(os.path.dirname(output_filename))
-             try:
--                if target_desc == CCompiler.EXECUTABLE:
--                    linker = self.linker_exe[:]
-+                if target_lang == "c++":
-+                    if target_desc == CCompiler.EXECUTABLE:
-+                        linker = self.linker_exe_cxx[:]
-+                    else:
-+                        linker = self.linker_so_cxx[:]
-                 else:
--                    linker = self.linker_so[:]
--                if target_lang == "c++" and self.compiler_cxx:
--                    # skip over environment variable settings if /usr/bin/env
--                    # is used to set up the linker's environment.
--                    # This is needed on OSX. Note: this assumes that the
--                    # normal and C++ compiler have the same environment
--                    # settings.
--                    i = 0
--                    if os.path.basename(linker[0]) == "env":
--                        i = 1
--                        while '=' in linker[i]:
--                            i = i + 1
--
--                    linker[i] = self.compiler_cxx[i]
-+                    if target_desc == CCompiler.EXECUTABLE:
-+                        linker = self.linker_exe[:]
-+                    else:
-+                        linker = self.linker_so[:]
- 
-                 if sys.platform == 'darwin':
-                     linker = _osx_support.compiler_fixup(linker, ld_args)
---- Lib/_osx_support.py
-+++ Lib/_osx_support.py
-@@ -14,13 +14,13 @@
- # configuration variables that may contain universal build flags,
- # like "-arch" or "-isdkroot", that may need customization for
- # the user environment
--_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS', 'BASECFLAGS',
--                            'BLDSHARED', 'LDSHARED', 'CC', 'CXX',
--                            'PY_CFLAGS', 'PY_LDFLAGS', 'PY_CPPFLAGS',
--                            'PY_CORE_CFLAGS')
-+_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CPPFLAGS',
-+                          'BASECFLAGS', 'BLDSHARED', 'LDSHARED', 'LDCXXSHARED',
-+                          'CC', 'CXX', 'PY_CFLAGS', 'PY_LDFLAGS',
-+                          'PY_CPPFLAGS', 'PY_CORE_CFLAGS')
- 
- # configuration variables that may contain compiler calls
--_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'CC', 'CXX')
-+_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'LDCXXSHARED', 'CC', 'CXX')
- 
- # prefix added to original configuration variable names
- _INITPRE = '_OSX_SUPPORT_INITIAL_'
---- a/distutils/sysconfig_pypy.py
-+++ b/distutils/sysconfig_pypy.py
-@@ -123,7 +123,55 @@
-     optional C speedup components.
-     """
-     if compiler.compiler_type == "unix":
--        compiler.compiler_so.extend(['-O2', '-fPIC', '-Wimplicit'])
-+        cc = ' '.join(compiler.compiler)
-+        cxx = ' '.join(compiler.compiler_cxx)
-+        ldshared = ' '.join(compiler.linker_so)
-+        ldcxxshared = ' '.join(compiler.linker_so_cxx)
-+
-+        cflags = ''
-+        cxxflags = ''
-+        ccshared = '-fPIC'
-+
-+        if 'CC' in os.environ:
-+            cc = os.environ['CC']
-+        if 'CXX' in os.environ:
-+            cxx = os.environ['CXX']
-+        if 'LDSHARED' in os.environ:
-+            ldshared = os.environ['LDSHARED']
-+        if 'LDCXXSHARED' in os.environ:
-+            ldcxxshared = os.environ['LDCXXSHARED']
-+        if 'CPP' in os.environ:
-+            cpp = os.environ['CPP']
-+        else:
-+            cpp = cc + " -E"           # not always
-+        if 'LDFLAGS' in os.environ:
-+            ldshared = ldshared + ' ' + os.environ['LDFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
-+        if 'CFLAGS' in os.environ:
-+            cflags = os.environ['CFLAGS']
-+            ldshared = ldshared + ' ' + os.environ['CFLAGS']
-+        if 'CXXFLAGS' in os.environ:
-+            cxxflags = os.environ['CXXFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
-+        if 'CPPFLAGS' in os.environ:
-+            cpp = cpp + ' ' + os.environ['CPPFLAGS']
-+            cflags = cflags + ' ' + os.environ['CPPFLAGS']
-+            cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
-+            ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
-+
-+        cc_cmd = cc + ' ' + cflags
-+        cxx_cmd = cxx + ' ' + cxxflags
-+        compiler.set_executables(
-+            preprocessor=cpp,
-+            compiler=cc_cmd,
-+            compiler_so=cc_cmd + ' ' + ccshared,
-+            compiler_cxx=cxx_cmd,
-+            compiler_so_cxx=cxx_cmd + ' ' + ccshared,
-+            linker_so=ldshared,
-+            linker_exe=cc,
-+            linker_so_cxx=ldcxxshared,
-+            linker_exe_cxx=cxx)
-         compiler.shared_lib_extension = get_config_var('SO')
-         if "CPPFLAGS" in os.environ:
-             cppflags = shlex.split(os.environ["CPPFLAGS"])

diff --git a/dev-python/pypy/files/2.3.1-shared-lib.patch b/dev-python/pypy/files/2.3.1-shared-lib.patch
deleted file mode 100644
index ae1139f..0000000
--- a/dev-python/pypy/files/2.3.1-shared-lib.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- rpython/translator/platform/posix.py
-+++ rpython/translator/platform/posix.py
-@@ -180,7 +180,7 @@
-                    'int main(int argc, char* argv[]) '
-                    '{ return $(PYPY_MAIN_FUNCTION)(argc, argv); }" > $@')
-             m.rule('$(DEFAULT_TARGET)', ['$(TARGET)', 'main.o'],
--                   '$(CC_LINK) $(LDFLAGS_LINK) main.o -L. -l$(SHARED_IMPORT_LIB) -o $@')
-+                   '$(CC_LINK) $(LDFLAGS_LINK) main.o -L. -l$(SHARED_IMPORT_LIB) \'-Wl,-rpath,$$ORIGIN\' -o $@')
- 
-         return m
- 

diff --git a/dev-python/pypy/pypy-2.4.0.ebuild b/dev-python/pypy/pypy-2.4.0.ebuild
deleted file mode 100644
index 9442c70..0000000
--- a/dev-python/pypy/pypy-2.4.0.ebuild
+++ /dev/null
@@ -1,233 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-PYTHON_COMPAT=( python2_7 pypy )
-inherit check-reqs eutils multilib multiprocessing pax-utils \
-	python-any-r1 toolchain-funcs versionator
-
-DESCRIPTION="A fast, compliant alternative implementation of the Python language"
-HOMEPAGE="http://pypy.org/"
-SRC_URI="https://bitbucket.org/pypy/pypy/downloads/${P}-src.tar.bz2"
-
-LICENSE="MIT"
-SLOT="0/$(get_version_component_range 1-2 ${PV})"
-KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="bzip2 doc gdbm +jit low-memory ncurses sandbox shadowstack sqlite cpu_flags_x86_sse2 tk"
-
-RDEPEND=">=sys-libs/zlib-1.1.3:0=
-	virtual/libffi:0=
-	virtual/libintl:0=
-	dev-libs/expat:0=
-	dev-libs/openssl:0=
-	bzip2? ( app-arch/bzip2:0= )
-	gdbm? ( sys-libs/gdbm:0= )
-	ncurses? ( =sys-libs/ncurses-5*:0= )
-	sqlite? ( dev-db/sqlite:3= )
-	tk? (
-		dev-lang/tk:0=
-		dev-tcltk/tix:0=
-	)
-	!dev-python/pypy-bin:0"
-DEPEND="${RDEPEND}
-	doc? ( dev-python/sphinx )
-	${PYTHON_DEPS}"
-PDEPEND="app-admin/python-updater"
-
-S="${WORKDIR}/${P}-src"
-
-pkg_pretend() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		if use low-memory; then
-			if ! python_is_installed pypy; then
-				eerror "USE=low-memory requires a (possibly old) version of dev-python/pypy"
-				eerror "or dev-python/pypy-bin being installed. Please install it using e.g.:"
-				eerror
-				eerror "  $ emerge -1v dev-python/pypy-bin"
-				eerror
-				eerror "before attempting to build dev-python/pypy[low-memory]."
-				die "dev-python/pypy-bin (or dev-python/pypy) needs to be installed for USE=low-memory"
-			fi
-
-			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
-
-		if python_is_installed pypy; then
-			if [[ ! ${EPYTHON} || ${EPYTHON} == pypy ]] || use low-memory; then
-				einfo "Using already-installed PyPy to perform the translation."
-				local EPYTHON=pypy
-			else
-				einfo "Using ${EPYTHON} to perform the translation. Please note that upstream"
-				einfo "recommends using PyPy for that. If you wish to do so, please unset"
-				einfo "the EPYTHON variable."
-			fi
-		fi
-
-		python-any-r1_pkg_setup
-	fi
-}
-
-src_prepare() {
-	epatch "${FILESDIR}/1.9-scripts-location.patch" \
-		"${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch" \
-		"${FILESDIR}"/2.3.1-shared-lib.patch	# 517002
-
-	pushd lib-python/2.7 > /dev/null || die
-	epatch "${FILESDIR}/2.3-21_all_distutils_c++.patch"
-	popd > /dev/null || die
-
-	epatch_user
-}
-
-src_compile() {
-	tc-export CC
-
-	local jit_backend
-	if use jit; then
-		jit_backend='--jit-backend='
-
-		# We only need the explicit sse2 switch for x86.
-		# On other arches we can rely on autodetection which uses
-		# compiler macros. Plus, --jit-backend= doesn't accept all
-		# the modern values...
-
-		if use x86; then
-			if use cpu_flags_x86_sse2; then
-				jit_backend+=x86
-			else
-				jit_backend+=x86-without-sse2
-			fi
-		else
-			jit_backend+=auto
-		fi
-	fi
-
-	local args=(
-		--shared
-		$(usex jit -Ojit -O2)
-		$(usex shadowstack --gcrootfinder=shadowstack '')
-		$(usex sandbox --sandbox '')
-
-		${jit_backend}
-		--make-jobs=$(makeopts_jobs)
-
-		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
-
-	set -- "${interp[@]}" rpython/bin/rpython --batch "${args[@]}"
-	echo -e "\033[1m${@}\033[0m"
-	"${@}" || die "compile error"
-
-	use doc && emake -C pypy/doc/ html
-	pax-mark m "${ED%/}${INSDESTTREE}/pypy-c"
-}
-
-src_test() {
-	# (unset)
-	local -x PYTHONDONTWRITEBYTECODE
-
-	./pypy-c ./pypy/test_all.py --pypy=./pypy-c lib-python || die
-}
-
-src_install() {
-	einfo "Installing PyPy ..."
-	insinto "/usr/$(get_libdir)/pypy"
-	doins -r include lib_pypy lib-python pypy-c libpypy-c.so
-	fperms a+x ${INSDESTTREE}/pypy-c ${INSDESTTREE}/libpypy-c.so
-	pax-mark m "${ED%/}${INSDESTTREE}/pypy-c" "${ED%/}${INSDESTTREE}/libpypy-c.so"
-	dosym ../$(get_libdir)/pypy/pypy-c /usr/bin/pypy
-	dodoc README.rst
-
-	if ! use gdbm; then
-		rm -r "${ED%/}${INSDESTTREE}"/lib_pypy/gdbm.py \
-			"${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_gdbm.py || die
-	fi
-	if ! use sqlite; then
-		rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/sqlite3 \
-			"${ED%/}${INSDESTTREE}"/lib_pypy/_sqlite3.py \
-			"${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_sqlite.py || die
-	fi
-	if ! use tk; then
-		rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/{idlelib,lib-tk} \
-			"${ED%/}${INSDESTTREE}"/lib_pypy/_tkinter \
-			"${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_{tcl,tk,ttk*}.py || die
-	fi
-
-	# Install docs
-	use doc && dohtml -r pypy/doc/_build/html/
-
-	einfo "Generating caches and byte-compiling ..."
-
-	local -x PYTHON=${ED%/}${INSDESTTREE}/pypy-c
-	local -x LD_LIBRARY_PATH="${ED%/}${INSDESTTREE}"
-	# 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
-	python_export pypy EPYTHON
-
-	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 cache
-	# Please keep in sync with pypy/tool/release/package.py!
-	"${PYTHON}" -c "import syslog" || die "Failed to import syslog (cffi)"
-	if use gdbm; then
-		"${PYTHON}" -c "import gdbm" || die "Failed to import gdbm (cffi)"
-	fi
-	if use ncurses; then
-		"${PYTHON}" -c "import _curses" || die "Failed to import _curses (cffi)"
-	fi
-	if use sqlite; then
-		"${PYTHON}" -c "import _sqlite3" || die "Failed to import _sqlite3 (cffi)"
-	fi
-	if use tk; then
-		"${PYTHON}" -c "import _tkinter" || die "Failed to import _tkinter (cffi)"
-	fi
-
-	# Cleanup temporary objects
-	find "${ED%/}${INSDESTTREE}" -name "_cffi_*.[co]" -delete || die
-	find "${ED%/}${INSDESTTREE}" -type d -empty -delete || die
-
-	# compile the installed modules
-	python_optimize "${ED%/}${INSDESTTREE}"
-}

diff --git a/dev-python/pypy/pypy-2.5.1.ebuild b/dev-python/pypy/pypy-2.5.1.ebuild
deleted file mode 100644
index d12930c..0000000
--- a/dev-python/pypy/pypy-2.5.1.ebuild
+++ /dev/null
@@ -1,233 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-PYTHON_COMPAT=( python2_7 pypy )
-inherit check-reqs eutils multilib multiprocessing pax-utils python-any-r1 toolchain-funcs versionator
-
-DESCRIPTION="A fast, compliant alternative implementation of the Python language"
-HOMEPAGE="http://pypy.org/"
-SRC_URI="https://bitbucket.org/pypy/pypy/downloads/${P}-src.tar.bz2"
-
-LICENSE="MIT"
-SLOT="0/$(get_version_component_range 1-2 ${PV})"
-KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="bzip2 doc gdbm +jit low-memory ncurses sandbox shadowstack sqlite cpu_flags_x86_sse2 test tk"
-
-RDEPEND=">=sys-libs/zlib-1.1.3:0=
-	virtual/libffi:0=
-	virtual/libintl:0=
-	dev-libs/expat:0=
-	dev-libs/openssl:0=[-bindist]
-	bzip2? ( app-arch/bzip2:0= )
-	gdbm? ( sys-libs/gdbm:0= )
-	ncurses? ( =sys-libs/ncurses-5*:0= )
-	sqlite? ( dev-db/sqlite:3= )
-	tk? (
-		dev-lang/tk:0=
-		dev-tcltk/tix:0=
-	)
-	!dev-python/pypy-bin:0"
-DEPEND="${RDEPEND}
-	doc? ( dev-python/sphinx )
-	${PYTHON_DEPS}
-	test? ( dev-python/pytest )"
-PDEPEND="app-admin/python-updater"
-
-S="${WORKDIR}/${P}-src"
-
-pkg_pretend() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		if use low-memory; then
-			if ! python_is_installed pypy; then
-				eerror "USE=low-memory requires a (possibly old) version of dev-python/pypy"
-				eerror "or dev-python/pypy-bin being installed. Please install it using e.g.:"
-				eerror
-				eerror "  $ emerge -1v dev-python/pypy-bin"
-				eerror
-				eerror "before attempting to build dev-python/pypy[low-memory]."
-				die "dev-python/pypy-bin (or dev-python/pypy) needs to be installed for USE=low-memory"
-			fi
-
-			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
-
-		if python_is_installed pypy; then
-			if [[ ! ${EPYTHON} || ${EPYTHON} == pypy ]] || use low-memory; then
-				einfo "Using already-installed PyPy to perform the translation."
-				local EPYTHON=pypy
-			else
-				einfo "Using ${EPYTHON} to perform the translation. Please note that upstream"
-				einfo "recommends using PyPy for that. If you wish to do so, please unset"
-				einfo "the EPYTHON variable."
-			fi
-		fi
-
-		python-any-r1_pkg_setup
-	fi
-}
-
-src_prepare() {
-	epatch "${FILESDIR}/1.9-scripts-location.patch" \
-		"${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch" \
-		"${FILESDIR}"/2.5.0-shared-lib.patch	# 517002
-
-	pushd lib-python/2.7 > /dev/null || die
-	epatch "${FILESDIR}"/2.5.0_all_distutils_cxx.patch
-	popd > /dev/null || die
-
-	epatch_user
-}
-
-src_compile() {
-	tc-export CC
-
-	local jit_backend
-	if use jit; then
-		jit_backend='--jit-backend='
-
-		# We only need the explicit sse2 switch for x86.
-		# On other arches we can rely on autodetection which uses
-		# compiler macros. Plus, --jit-backend= doesn't accept all
-		# the modern values...
-
-		if use x86; then
-			if use cpu_flags_x86_sse2; then
-				jit_backend+=x86
-			else
-				jit_backend+=x86-without-sse2
-			fi
-		else
-			jit_backend+=auto
-		fi
-	fi
-
-	local args=(
-		--shared
-		$(usex jit -Ojit -O2)
-		$(usex shadowstack --gcrootfinder=shadowstack '')
-		$(usex sandbox --sandbox '')
-
-		${jit_backend}
-		--make-jobs=$(makeopts_jobs)
-
-		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
-
-	set -- "${interp[@]}" rpython/bin/rpython --batch "${args[@]}"
-	echo -e "\033[1m${@}\033[0m"
-	"${@}" || die "compile error"
-
-	use doc && emake -C pypy/doc/ html
-	pax-mark m "${ED%/}${INSDESTTREE}/pypy-c"
-}
-
-src_test() {
-	# (unset)
-	local -x PYTHONDONTWRITEBYTECODE
-
-	./pypy-c ./pypy/test_all.py --pypy=./pypy-c lib-python || die
-}
-
-src_install() {
-	einfo "Installing PyPy ..."
-	insinto "/usr/$(get_libdir)/pypy"
-	doins -r include lib_pypy lib-python pypy-c libpypy-c.so
-	fperms a+x ${INSDESTTREE}/pypy-c ${INSDESTTREE}/libpypy-c.so
-	pax-mark m "${ED%/}${INSDESTTREE}/pypy-c" "${ED%/}${INSDESTTREE}/libpypy-c.so"
-	dosym ../$(get_libdir)/pypy/pypy-c /usr/bin/pypy
-	dodoc README.rst
-
-	if ! use gdbm; then
-		rm -r "${ED%/}${INSDESTTREE}"/lib_pypy/gdbm.py \
-			"${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_gdbm.py || die
-	fi
-	if ! use sqlite; then
-		rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/sqlite3 \
-			"${ED%/}${INSDESTTREE}"/lib_pypy/_sqlite3.py \
-			"${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_sqlite.py || die
-	fi
-	if ! use tk; then
-		rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/{idlelib,lib-tk} \
-			"${ED%/}${INSDESTTREE}"/lib_pypy/_tkinter \
-			"${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_{tcl,tk,ttk*}.py || die
-	fi
-
-	# Install docs
-	use doc && dohtml -r pypy/doc/_build/html/
-
-	einfo "Generating caches and byte-compiling ..."
-
-	local -x PYTHON=${ED%/}${INSDESTTREE}/pypy-c
-	local -x LD_LIBRARY_PATH="${ED%/}${INSDESTTREE}"
-	# 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
-	python_export pypy EPYTHON
-
-	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 cache
-	# Please keep in sync with pypy/tool/release/package.py!
-	"${PYTHON}" -c "import syslog" || die "Failed to import syslog (cffi)"
-	if use gdbm; then
-		"${PYTHON}" -c "import gdbm" || die "Failed to import gdbm (cffi)"
-	fi
-	if use ncurses; then
-		"${PYTHON}" -c "import _curses" || die "Failed to import _curses (cffi)"
-	fi
-	if use sqlite; then
-		"${PYTHON}" -c "import _sqlite3" || die "Failed to import _sqlite3 (cffi)"
-	fi
-	if use tk; then
-		"${PYTHON}" -c "import _tkinter" || die "Failed to import _tkinter (cffi)"
-	fi
-
-	# Cleanup temporary objects
-	find "${ED%/}${INSDESTTREE}" -name "_cffi_*.[co]" -delete || die
-	find "${ED%/}${INSDESTTREE}" -type d -empty -delete || die
-
-	# compile the installed modules
-	python_optimize "${ED%/}${INSDESTTREE}"
-}


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-python/pypy/files/, dev-python/pypy/
@ 2015-11-27 19:49 Michał Górny
  0 siblings, 0 replies; 16+ messages in thread
From: Michał Górny @ 2015-11-27 19:49 UTC (permalink / raw
  To: gentoo-commits

commit:     ac802704f1c23ef89035b5a817ae4314ea1b5c0c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 27 16:13:31 2015 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Nov 27 19:49:29 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ac802704

dev-python/pypy: Apply full Gentoo path set, only for Gentoo sys.prefix

Override all default distutils.command.install paths for Gentoo rather
than just scriptdir. However, do that only when install_base equals
the default prefix in which PyPy is installed system-wide.

This fixes both issues resulting from lack of prefix override (like
installing data files in /usr/lib*/pypy), and from overeager prefix
overrides (like virtualenv installing scripts in /usr/bin).

Fixes: https://bugs.gentoo.org/462306
Fixes: https://bugs.gentoo.org/465546

 dev-python/pypy/files/1.9-scripts-location.patch   | 11 -----
 dev-python/pypy/files/4.0.0-gentoo-path.patch      | 50 ++++++++++++++++++++++
 .../{pypy-2.6.0.ebuild => pypy-2.6.0-r1.ebuild}    |  6 ++-
 .../{pypy-4.0.0.ebuild => pypy-4.0.0-r1.ebuild}    |  6 ++-
 4 files changed, 60 insertions(+), 13 deletions(-)

diff --git a/dev-python/pypy/files/1.9-scripts-location.patch b/dev-python/pypy/files/1.9-scripts-location.patch
deleted file mode 100644
index 7453908..0000000
--- a/dev-python/pypy/files/1.9-scripts-location.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/lib-python/2.7/distutils/command/install.py
-+++ b/lib-python/2.7/distutils/command/install.py
-@@ -87,7 +87,7 @@
-         'purelib': '$base/site-packages',
-         'platlib': '$base/site-packages',
-         'headers': '$base/include',
--        'scripts': '$base/bin',
-+        'scripts': '/usr/bin',
-         'data'   : '$base',
-         },
-     }

diff --git a/dev-python/pypy/files/4.0.0-gentoo-path.patch b/dev-python/pypy/files/4.0.0-gentoo-path.patch
new file mode 100644
index 0000000..4d394f9
--- /dev/null
+++ b/dev-python/pypy/files/4.0.0-gentoo-path.patch
@@ -0,0 +1,50 @@
+From 165e05bbdc93e54411217c0198d0a5cbb9de4e33 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Fri, 27 Nov 2015 17:02:42 +0100
+Subject: [PATCH] Gentoo: override paths for system-wide install based on
+ sys.prefix
+
+Override all default distutils install paths to ones suitable for
+system-wide install when sys.prefix indicates we're running the Gentoo
+system-wide install of PyPy with no prefix overrides (e.g. virtualenv).
+
+Fixes: https://bugs.gentoo.org/462306
+Fixes: https://bugs.gentoo.org/465546
+---
+ lib-python/2.7/distutils/command/install.py | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/lib-python/2.7/distutils/command/install.py b/lib-python/2.7/distutils/command/install.py
+index fc43951..fed5218 100644
+--- a/lib-python/2.7/distutils/command/install.py
++++ b/lib-python/2.7/distutils/command/install.py
+@@ -90,6 +90,13 @@ INSTALL_SCHEMES = {
+         'scripts': '$base/bin',
+         'data'   : '$base',
+         },
++    'gentoo': {
++        'purelib': '$base/site-packages',
++        'platlib': '$base/site-packages',
++        'headers': '$base/include',
++        'scripts': '@EPREFIX@/usr/bin',
++        'data'   : '@EPREFIX@/usr',
++        },
+     }
+ 
+ # The keys to an installation scheme; if any new types of files are to be
+@@ -476,7 +483,11 @@ class install (Command):
+         # it's the caller's problem if they supply a bad name!
+         if (hasattr(sys, 'pypy_version_info') and
+             not name.endswith(('_user', '_home'))):
+-            name = 'pypy'
++            if self.install_base == os.path.normpath('@EPREFIX@/usr/@libdir@/pypy'):
++                # override paths for system-wide install
++                name = 'gentoo'
++            else:
++                name = 'pypy'
+         scheme = INSTALL_SCHEMES[name]
+         for key in SCHEME_KEYS:
+             attrname = 'install_' + key
+-- 
+2.6.3
+

diff --git a/dev-python/pypy/pypy-2.6.0.ebuild b/dev-python/pypy/pypy-2.6.0-r1.ebuild
similarity index 97%
rename from dev-python/pypy/pypy-2.6.0.ebuild
rename to dev-python/pypy/pypy-2.6.0-r1.ebuild
index 779b81c..4058bf0 100644
--- a/dev-python/pypy/pypy-2.6.0.ebuild
+++ b/dev-python/pypy/pypy-2.6.0-r1.ebuild
@@ -85,10 +85,14 @@ pkg_setup() {
 }
 
 src_prepare() {
-	epatch "${FILESDIR}/1.9-scripts-location.patch" \
+	epatch "${FILESDIR}/4.0.0-gentoo-path.patch" \
 		"${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch" \
 		"${FILESDIR}"/2.5.0-shared-lib.patch	# 517002
 
+	sed -e "s^@EPREFIX@^${EPREFIX}^" \
+		-e "s^@libdir@^$(get_libdir)^" \
+		-i lib-python/2.7/distutils/command/install.py || die
+
 	# apply CPython stdlib patches
 	pushd lib-python/2.7 > /dev/null || die
 	epatch "${FILESDIR}"/2.5.0_all_distutils_cxx.patch \

diff --git a/dev-python/pypy/pypy-4.0.0.ebuild b/dev-python/pypy/pypy-4.0.0-r1.ebuild
similarity index 97%
rename from dev-python/pypy/pypy-4.0.0.ebuild
rename to dev-python/pypy/pypy-4.0.0-r1.ebuild
index 0bf61ef..19988bf 100644
--- a/dev-python/pypy/pypy-4.0.0.ebuild
+++ b/dev-python/pypy/pypy-4.0.0-r1.ebuild
@@ -85,10 +85,14 @@ pkg_setup() {
 }
 
 src_prepare() {
-	epatch "${FILESDIR}/1.9-scripts-location.patch" \
+	epatch "${FILESDIR}/4.0.0-gentoo-path.patch" \
 		"${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch" \
 		"${FILESDIR}"/2.5.0-shared-lib.patch	# 517002
 
+	sed -e "s^@EPREFIX@^${EPREFIX}^" \
+		-e "s^@libdir@^$(get_libdir)^" \
+		-i lib-python/2.7/distutils/command/install.py || die
+
 	# apply CPython stdlib patches
 	pushd lib-python/2.7 > /dev/null || die
 	epatch "${FILESDIR}"/2.5.0_all_distutils_cxx.patch \


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-python/pypy/files/, dev-python/pypy/
@ 2016-12-09 18:10 Michał Górny
  0 siblings, 0 replies; 16+ messages in thread
From: Michał Górny @ 2016-12-09 18:10 UTC (permalink / raw
  To: gentoo-commits

commit:     821aaac711cc96499f4483b6ce88cebfba239c9f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Dec  8 21:06:33 2016 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Dec  9 18:10:12 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=821aaac7

dev-python/pypy: Bump to 5.6.0, #599918

Bump to 5.6.0 release. Includes an updated C/C++ compiler support patch
by Jan Ziak.

 dev-python/pypy/Manifest                           |   1 +
 .../pypy/files/5.6.0_all_distutils_cxx.patch       | 340 +++++++++++++++++++++
 dev-python/pypy/pypy-5.6.0.ebuild                  | 256 ++++++++++++++++
 3 files changed, 597 insertions(+)

diff --git a/dev-python/pypy/Manifest b/dev-python/pypy/Manifest
index 918ddca..3b75954 100644
--- a/dev-python/pypy/Manifest
+++ b/dev-python/pypy/Manifest
@@ -5,5 +5,6 @@ DIST pypy2-v5.3.0-src.tar.bz2 17361429 SHA256 4142eb8f403810bc88a4911792bb5a502e
 DIST pypy2-v5.3.1-src.tar.bz2 17361760 SHA256 31a52bab584abf3a0f0defd1bf9a29131dab08df43885e7eeddfc7dc9b71836e SHA512 3138dde3cb1a155e389a2be615601e22f468d2bc77dd219a35b310052fa06f68f80c3ff62fa4d0a9179eae014ace18620d0a076a0528cb155b1c33cc94d6b397 WHIRLPOOL 518b73ec649673fb1fc333b5d0e7669f06e9569624e2f8b55dbbf24b5f109a3b9680ed1d45c6401eb62ee8761043ec9c38a33e6d396c39c3f2fb5ba30f15e93a
 DIST pypy2-v5.4.0-src.tar.bz2 17414795 SHA256 d9568ebe9a14d0eaefde887d78f3cba63d665e95c0d234bb583932341f55a655 SHA512 a989393f75ff45d6a8b8b2597c0a208559b3188ffdf65205ad491332f1836a86bbb419a3dfba67f80e5ab8d075aa97f44c63316f805a51d7ce1481e81b461373 WHIRLPOOL 623bbaed02214cbc2092abd163e102c11405f12b73dd2ace8098e08a415bd43a0bf13809913b56c378a8a688ff6ff561dc9a90bcd479de85bb301aa67c670d26
 DIST pypy2-v5.4.1-src.tar.bz2 17412285 SHA256 45dbc50c81498f6f1067201b8fc887074b43b84ee32cc47f15e7db17571e9352 SHA512 a366457f5d1fc06dfb256256350b5f2e8e107fe9bc587acc291500ae8b03083788128681ebd5ae272a87b5b7c95abda0210ed7b5594e15f8f0a96a9ff4953375 WHIRLPOOL 1b84ed9a5df88f4ec7beebf75f86d02ddab2349e34c5516bf4ea21e0374dbb5520ca0c6c429b83262c63e6bc452a3270a4d79fec6b2caff7bc884d8103989acc
+DIST pypy2-v5.6.0-src.tar.bz2 18388539 SHA256 7411448045f77eb9e087afdce66fe7eafda1876c9e17aad88cf891f762b608b0 SHA512 a92ef611ae2417aaa202b9f5c75dd86e82fc2549e53bab3164cccff37d131542bc71cbce6aaedf428d3dfc7d59a2d3b3a5ed03e3a3439628f29d43c4d30a64de WHIRLPOOL 896894225407f8cd462b094d77723880f6a423d60a79e5d3cf4e0804737fdd0337fc668b05573902fe81f826798b2046cb115c8d230f0810ec0ad2508590ee4a
 DIST python-gentoo-patches-2.7.10-0.tar.xz 12892 SHA256 c9a838bd62ae50cc385da23a837acfd05f2b74e4f086c9c76eb4d3aa5366ef6d SHA512 5f100944635e360691dc0a2b340a906646c4ae9ee558246ddffc56e8b15d389f25f1fbdc1db4cc08e7d29560d04d66b058b3904902899d58ecae8c408ebdf056 WHIRLPOOL f69e9a518bb7ee50c1b262a21e70e1e2443f859ee6d2f4fa84421120dbd054a06ce8dd6cfea8512cbc64bce806322b879c25c561d5eb05e1ba6cc15035b373a9
 DIST python-gentoo-patches-2.7.11-0.tar.xz 12916 SHA256 e14b47bb1fd64d366d7dfb8339cc2cbf4a53fc288b11dd83f575eb36a8a6408d SHA512 f0447bb699a163afc08df39b111394377539935546ae23732d7239e78d2bff0c04bc94949f86aef0c1be83736127dbd25c2c531e49befed2d638c3cd4940ac52 WHIRLPOOL 305992849d9d244da1e308e739c9bf62a3ef5c74eb65c765bdc666fb5767eb16c7a609f7c442c17da17f76c3ab81e4b09fa8c21e43f89366539a6a9d656bea77

diff --git a/dev-python/pypy/files/5.6.0_all_distutils_cxx.patch b/dev-python/pypy/files/5.6.0_all_distutils_cxx.patch
new file mode 100644
index 00000000..5d9c2cd
--- /dev/null
+++ b/dev-python/pypy/files/5.6.0_all_distutils_cxx.patch
@@ -0,0 +1,340 @@
+http://bugs.python.org/issue1222585
+http://bugs.gentoo.org/show_bug.cgi?id=599918
+
+diff -Naur pypy2-v5.6.0-src/lib-python/2.7/_osx_support.py pypy2-v5.6.0-src-patched/lib-python/2.7/_osx_support.py
+--- pypy2-v5.6.0-src/lib-python/2.7/_osx_support.py	2016-11-08 09:52:16.000000000 +0100
++++ pypy2-v5.6.0-src-patched/lib-python/2.7/_osx_support.py	2016-12-08 16:59:26.213690338 +0100
+@@ -14,13 +14,13 @@
+ # configuration variables that may contain universal build flags,
+ # like "-arch" or "-isdkroot", that may need customization for
+ # the user environment
+-_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS', 'BASECFLAGS',
+-                            'BLDSHARED', 'LDSHARED', 'CC', 'CXX',
+-                            'PY_CFLAGS', 'PY_LDFLAGS', 'PY_CPPFLAGS',
+-                            'PY_CORE_CFLAGS')
++_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CPPFLAGS',
++                          'BASECFLAGS', 'BLDSHARED', 'LDSHARED', 'LDCXXSHARED',
++                          'CC', 'CXX', 'PY_CFLAGS', 'PY_LDFLAGS',
++                          'PY_CPPFLAGS', 'PY_CORE_CFLAGS')
+ 
+ # configuration variables that may contain compiler calls
+-_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'CC', 'CXX')
++_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'LDCXXSHARED', 'CC', 'CXX')
+ 
+ # prefix added to original configuration variable names
+ _INITPRE = '_OSX_SUPPORT_INITIAL_'
+diff -Naur pypy2-v5.6.0-src/lib-python/2.7/distutils/sysconfig_pypy.py pypy2-v5.6.0-src-patched/lib-python/2.7/distutils/sysconfig_pypy.py
+--- pypy2-v5.6.0-src/lib-python/2.7/distutils/sysconfig_pypy.py	2016-11-08 09:52:16.000000000 +0100
++++ pypy2-v5.6.0-src-patched/lib-python/2.7/distutils/sysconfig_pypy.py	2016-12-08 17:01:33.594553801 +0100
+@@ -126,19 +126,56 @@
+         setattr(compiler, executable, command)
+ 
+     if compiler.compiler_type == "unix":
+-        compiler.compiler_so.extend(['-O2', '-fPIC', '-Wimplicit'])
++        cc = ' '.join(compiler.compiler)
++        cxx = ' '.join(compiler.compiler_cxx)
++        ldshared = ' '.join(compiler.linker_so)
++        ldcxxshared = ' '.join(compiler.linker_so_cxx)
++
++        cflags = ''
++        cxxflags = ''
++        ccshared = '-fPIC'
++
++        if 'CC' in os.environ:
++            cc = os.environ['CC']
++        if 'CXX' in os.environ:
++            cxx = os.environ['CXX']
++        if 'LDSHARED' in os.environ:
++            ldshared = os.environ['LDSHARED']
++        if 'LDCXXSHARED' in os.environ:
++            ldcxxshared = os.environ['LDCXXSHARED']
++        if 'CPP' in os.environ:
++            cpp = os.environ['CPP']
++        else:
++            cpp = cc + " -E"           # not always
++        if 'CPPFLAGS' in os.environ:
++            cpp = cpp + ' ' + os.environ['CPPFLAGS']
++            cflags = cflags + ' ' + os.environ['CPPFLAGS']
++            cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
++            ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
++        if 'CFLAGS' in os.environ:
++            cflags = os.environ['CFLAGS']
++            ldshared = ldshared + ' ' + os.environ['CFLAGS']
++        if 'CXXFLAGS' in os.environ:
++            cxxflags = os.environ['CXXFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
++        if 'LDFLAGS' in os.environ:
++            ldshared = ldshared + ' ' + os.environ['LDFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
++
++        cc_cmd = cc + ' ' + cflags
++        cxx_cmd = cxx + ' ' + cxxflags
++        compiler.set_executables(
++            preprocessor=cpp,
++            compiler=cc_cmd,
++            compiler_so=cc_cmd + ' ' + ccshared,
++            compiler_cxx=cxx_cmd,
++            compiler_so_cxx=cxx_cmd + ' ' + ccshared,
++            linker_so=ldshared,
++            linker_exe=cc,
++            linker_so_cxx=ldcxxshared,
++            linker_exe_cxx=cxx)
+         compiler.shared_lib_extension = get_config_var('SO')
+-        if "CPPFLAGS" in os.environ:
+-            cppflags = shlex.split(os.environ["CPPFLAGS"])
+-            for executable in ('compiler', 'compiler_so', 'linker_so'):
+-                customize(executable, cppflags)
+-        if "CFLAGS" in os.environ:
+-            cflags = shlex.split(os.environ["CFLAGS"])
+-            for executable in ('compiler', 'compiler_so', 'linker_so'):
+-                customize(executable, cflags)
+-        if "LDFLAGS" in os.environ:
+-            ldflags = shlex.split(os.environ["LDFLAGS"])
+-            customize('linker_so', ldflags)
+ 
+ 
+ from sysconfig_cpython import (
+diff -Naur pypy2-v5.6.0-src/lib-python/2.7/distutils/cygwinccompiler.py pypy2-v5.6.0-src-patched/lib-python/2.7/distutils/cygwinccompiler.py
+--- pypy2-v5.6.0-src/lib-python/2.7/distutils/cygwinccompiler.py	2016-11-08 09:52:16.000000000 +0100
++++ pypy2-v5.6.0-src-patched/lib-python/2.7/distutils/cygwinccompiler.py	2016-12-08 16:59:26.213690338 +0100
+@@ -120,8 +120,10 @@
+         # dllwrap 2.10.90 is buggy
+         if self.ld_version >= "2.10.90":
+             self.linker_dll = "gcc"
++            self.linker_dll_cxx = "g++"
+         else:
+             self.linker_dll = "dllwrap"
++            self.linker_dll_cxx = "dllwrap"
+ 
+         # ld_version >= "2.13" support -shared so use it instead of
+         # -mdll -static
+@@ -135,9 +137,13 @@
+         self.set_executables(compiler='gcc -mcygwin -O -Wall',
+                              compiler_so='gcc -mcygwin -mdll -O -Wall',
+                              compiler_cxx='g++ -mcygwin -O -Wall',
++                             compiler_so_cxx='g++ -mcygwin -mdll -O -Wall',
+                              linker_exe='gcc -mcygwin',
+                              linker_so=('%s -mcygwin %s' %
+-                                        (self.linker_dll, shared_option)))
++                                        (self.linker_dll, shared_option)),
++                             linker_exe_cxx='g++ -mcygwin',
++                             linker_so_cxx=('%s -mcygwin %s' %
++                                            (self.linker_dll_cxx, shared_option)))
+ 
+         # cygwin and mingw32 need different sets of libraries
+         if self.gcc_version == "2.91.57":
+@@ -163,8 +169,12 @@
+                 raise CompileError, msg
+         else: # for other files use the C-compiler
+             try:
+-                self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
+-                           extra_postargs)
++                if self.detect_language(src) == 'c++':
++                    self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
++                               extra_postargs)
++                else:
++                    self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
++                               extra_postargs)
+             except DistutilsExecError, msg:
+                 raise CompileError, msg
+ 
+@@ -330,9 +340,14 @@
+         self.set_executables(compiler='gcc%s -O -Wall' % no_cygwin,
+                              compiler_so='gcc%s -mdll -O -Wall' % no_cygwin,
+                              compiler_cxx='g++%s -O -Wall' % no_cygwin,
++                             compiler_so_cxx='g++%s -mdll -O -Wall' % no_cygwin,
+                              linker_exe='gcc%s' % no_cygwin,
+                              linker_so='%s%s %s %s'
+                                     % (self.linker_dll, no_cygwin,
++                                       shared_option, entry_point),
++                             linker_exe_cxx='g++%s' % no_cygwin,
++                             linker_so_cxx='%s%s %s %s'
++                                    % (self.linker_dll_cxx, no_cygwin,
+                                        shared_option, entry_point))
+         # Maybe we should also append -mthreads, but then the finished
+         # dlls need another dll (mingwm10.dll see Mingw32 docs)
+diff -Naur pypy2-v5.6.0-src/lib-python/2.7/distutils/emxccompiler.py pypy2-v5.6.0-src-patched/lib-python/2.7/distutils/emxccompiler.py
+--- pypy2-v5.6.0-src/lib-python/2.7/distutils/emxccompiler.py	2016-11-08 09:52:16.000000000 +0100
++++ pypy2-v5.6.0-src-patched/lib-python/2.7/distutils/emxccompiler.py	2016-12-08 16:59:26.213690338 +0100
+@@ -65,8 +65,12 @@
+         # XXX optimization, warnings etc. should be customizable.
+         self.set_executables(compiler='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
+                              compiler_so='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
++                             compiler_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
++                             compiler_so_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
+                              linker_exe='gcc -Zomf -Zmt -Zcrtdll',
+-                             linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll')
++                             linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll',
++                             linker_exe_cxx='g++ -Zomf -Zmt -Zcrtdll',
++                             linker_so_cxx='g++ -Zomf -Zmt -Zcrtdll -Zdll')
+ 
+         # want the gcc library statically linked (so that we don't have
+         # to distribute a version dependent on the compiler we have)
+@@ -83,8 +87,12 @@
+                 raise CompileError, msg
+         else: # for other files use the C-compiler
+             try:
+-                self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
+-                           extra_postargs)
++                if self.detect_language(src) == 'c++':
++                    self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
++                               extra_postargs)
++                else:
++                    self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
++                               extra_postargs)
+             except DistutilsExecError, msg:
+                 raise CompileError, msg
+ 
+diff -Naur pypy2-v5.6.0-src/lib-python/2.7/distutils/sysconfig_cpython.py pypy2-v5.6.0-src-patched/lib-python/2.7/distutils/sysconfig_cpython.py
+--- pypy2-v5.6.0-src/lib-python/2.7/distutils/sysconfig_cpython.py	2016-11-08 09:52:16.000000000 +0100
++++ pypy2-v5.6.0-src-patched/lib-python/2.7/distutils/sysconfig_cpython.py	2016-12-08 16:59:26.213690338 +0100
+@@ -171,10 +171,12 @@
+                 _osx_support.customize_compiler(_config_vars)
+                 _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
+ 
+-        (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
+-            get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
+-                            'CCSHARED', 'LDSHARED', 'SO', 'AR',
+-                            'ARFLAGS')
++        (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \
++            get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED',
++                            'SO', 'AR', 'ARFLAGS')
++
++        cflags = ''
++        cxxflags = ''
+ 
+         if 'CC' in os.environ:
+             newcc = os.environ['CC']
+@@ -189,19 +191,27 @@
+             cxx = os.environ['CXX']
+         if 'LDSHARED' in os.environ:
+             ldshared = os.environ['LDSHARED']
++        if 'LDCXXSHARED' in os.environ:
++            ldcxxshared = os.environ['LDCXXSHARED']
+         if 'CPP' in os.environ:
+             cpp = os.environ['CPP']
+         else:
+             cpp = cc + " -E"           # not always
+         if 'LDFLAGS' in os.environ:
+             ldshared = ldshared + ' ' + os.environ['LDFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
+         if 'CFLAGS' in os.environ:
+-            cflags = opt + ' ' + os.environ['CFLAGS']
++            cflags = os.environ['CFLAGS']
+             ldshared = ldshared + ' ' + os.environ['CFLAGS']
++        if 'CXXFLAGS' in os.environ:
++            cxxflags = os.environ['CXXFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
+         if 'CPPFLAGS' in os.environ:
+             cpp = cpp + ' ' + os.environ['CPPFLAGS']
+             cflags = cflags + ' ' + os.environ['CPPFLAGS']
++            cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
+             ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
+         if 'AR' in os.environ:
+             ar = os.environ['AR']
+         if 'ARFLAGS' in os.environ:
+@@ -210,13 +220,17 @@
+             archiver = ar + ' ' + ar_flags
+ 
+         cc_cmd = cc + ' ' + cflags
++        cxx_cmd = cxx + ' ' + cxxflags
+         compiler.set_executables(
+             preprocessor=cpp,
+             compiler=cc_cmd,
+             compiler_so=cc_cmd + ' ' + ccshared,
+-            compiler_cxx=cxx,
++            compiler_cxx=cxx_cmd,
++            compiler_so_cxx=cxx_cmd + ' ' + ccshared,
+             linker_so=ldshared,
+             linker_exe=cc,
++            linker_so_cxx=ldcxxshared,
++            linker_exe_cxx=cxx,
+             archiver=archiver)
+ 
+         compiler.shared_lib_extension = so_ext
+diff -Naur pypy2-v5.6.0-src/lib-python/2.7/distutils/unixccompiler.py pypy2-v5.6.0-src-patched/lib-python/2.7/distutils/unixccompiler.py
+--- pypy2-v5.6.0-src/lib-python/2.7/distutils/unixccompiler.py	2016-11-08 09:52:16.000000000 +0100
++++ pypy2-v5.6.0-src-patched/lib-python/2.7/distutils/unixccompiler.py	2016-12-08 16:59:26.213690338 +0100
+@@ -55,14 +55,17 @@
+     # are pretty generic; they will probably have to be set by an outsider
+     # (eg. using information discovered by the sysconfig about building
+     # Python extensions).
+-    executables = {'preprocessor' : None,
+-                   'compiler'     : ["cc"],
+-                   'compiler_so'  : ["cc"],
+-                   'compiler_cxx' : ["c++"],  # pypy: changed, 'cc' is bogus
+-                   'linker_so'    : ["cc", "-shared"],
+-                   'linker_exe'   : ["cc"],
+-                   'archiver'     : ["ar", "-cr"],
+-                   'ranlib'       : None,
++    executables = {'preprocessor'    : None,
++                   'compiler'        : ["cc"],
++                   'compiler_so'     : ["cc"],
++                   'compiler_cxx'    : ["c++"],
++                   'compiler_so_cxx' : ["c++"],
++                   'linker_so'       : ["cc", "-shared"],
++                   'linker_exe'      : ["cc"],
++                   'linker_so_cxx'   : ["c++", "-shared"],
++                   'linker_exe_cxx'  : ["c++"],
++                   'archiver'        : ["ar", "-cr"],
++                   'ranlib'          : None,
+                   }
+ 
+     if sys.platform[:6] == "darwin":
+@@ -129,12 +132,19 @@
+ 
+     def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
+         compiler_so = self.compiler_so
++        compiler_so_cxx = self.compiler_so_cxx
+         if sys.platform == 'darwin':
+             compiler_so = _osx_support.compiler_fixup(compiler_so,
+                                                     cc_args + extra_postargs)
++            compiler_so_cxx = _osx_support.compiler_fixup(compiler_so_cxx,
++                                                    cc_args + extra_postargs)
+         try:
+-            self.spawn(compiler_so + cc_args + [src, '-o', obj] +
+-                       extra_postargs)
++            if self.detect_language(src) == 'c++':
++                self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] +
++                           extra_postargs)
++            else:
++                self.spawn(compiler_so + cc_args + [src, '-o', obj] +
++                           extra_postargs)
+         except DistutilsExecError, msg:
+             raise CompileError, msg
+ 
+@@ -191,23 +201,16 @@
+                 ld_args.extend(extra_postargs)
+             self.mkpath(os.path.dirname(output_filename))
+             try:
+-                if target_desc == CCompiler.EXECUTABLE:
+-                    linker = self.linker_exe[:]
++                if target_lang == "c++":
++                    if target_desc == CCompiler.EXECUTABLE:
++                        linker = self.linker_exe_cxx[:]
++                    else:
++                        linker = self.linker_so_cxx[:]
+                 else:
+-                    linker = self.linker_so[:]
+-                if target_lang == "c++" and self.compiler_cxx:
+-                    # skip over environment variable settings if /usr/bin/env
+-                    # is used to set up the linker's environment.
+-                    # This is needed on OSX. Note: this assumes that the
+-                    # normal and C++ compiler have the same environment
+-                    # settings.
+-                    i = 0
+-                    if os.path.basename(linker[0]) == "env":
+-                        i = 1
+-                        while '=' in linker[i]:
+-                            i = i + 1
+-
+-                    linker[i] = self.compiler_cxx[i]
++                    if target_desc == CCompiler.EXECUTABLE:
++                        linker = self.linker_exe[:]
++                    else:
++                        linker = self.linker_so[:]
+ 
+                 if sys.platform == 'darwin':
+                     linker = _osx_support.compiler_fixup(linker, ld_args)

diff --git a/dev-python/pypy/pypy-5.6.0.ebuild b/dev-python/pypy/pypy-5.6.0.ebuild
new file mode 100644
index 00000000..8eefc74
--- /dev/null
+++ b/dev-python/pypy/pypy-5.6.0.ebuild
@@ -0,0 +1,256 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+inherit check-reqs eutils multilib multiprocessing pax-utils python-any-r1 toolchain-funcs versionator
+
+CPY_PATCHSET_VERSION="2.7.11-0"
+MY_P=pypy2-v${PV}
+
+DESCRIPTION="A fast, compliant alternative implementation of the Python language"
+HOMEPAGE="http://pypy.org/"
+SRC_URI="https://bitbucket.org/pypy/pypy/downloads/${MY_P}-src.tar.bz2
+	https://dev.gentoo.org/~djc/python-gentoo-patches-${CPY_PATCHSET_VERSION}.tar.xz"
+
+LICENSE="MIT"
+# pypy -c 'import sysconfig; print sysconfig.get_config_var("SOABI")'
+SLOT="0/41"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="bzip2 doc gdbm +jit libressl low-memory ncurses sandbox +shadowstack sqlite cpu_flags_x86_sse2 test tk"
+
+RDEPEND=">=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= )
+	gdbm? ( sys-libs/gdbm:0= )
+	ncurses? ( sys-libs/ncurses:0= )
+	sqlite? ( dev-db/sqlite:3= )
+	tk? (
+		dev-lang/tk:0=
+		dev-tcltk/tix:0=
+	)
+	!dev-python/pypy-bin:0"
+DEPEND="${RDEPEND}
+	doc? ( dev-python/sphinx )
+	${PYTHON_DEPS}
+	test? ( dev-python/pytest )"
+
+S="${WORKDIR}/${MY_P}-src"
+
+pkg_pretend() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		if use low-memory; then
+			if ! python_is_installed pypy; then
+				eerror "USE=low-memory requires a (possibly old) version of dev-python/pypy"
+				eerror "or dev-python/pypy-bin being installed. Please install it using e.g.:"
+				eerror
+				eerror "  $ emerge -1v dev-python/pypy-bin"
+				eerror
+				eerror "before attempting to build dev-python/pypy[low-memory]."
+				die "dev-python/pypy-bin (or dev-python/pypy) needs to be installed for USE=low-memory"
+			fi
+
+			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
+
+		if python_is_installed pypy; then
+			if [[ ! ${EPYTHON} || ${EPYTHON} == pypy ]] || use low-memory; then
+				einfo "Using already-installed PyPy to perform the translation."
+				local EPYTHON=pypy
+			else
+				einfo "Using ${EPYTHON} to perform the translation. Please note that upstream"
+				einfo "recommends using PyPy for that. If you wish to do so, please unset"
+				einfo "the EPYTHON variable."
+			fi
+		fi
+
+		python-any-r1_pkg_setup
+	fi
+}
+
+src_prepare() {
+	epatch "${FILESDIR}/4.0.0-gentoo-path.patch" \
+		"${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch" \
+		"${FILESDIR}"/2.5.0-shared-lib.patch	# 517002
+
+	sed -e "s^@EPREFIX@^${EPREFIX}^" \
+		-e "s^@libdir@^$(get_libdir)^" \
+		-i lib-python/2.7/distutils/command/install.py || die
+
+	# apply CPython stdlib patches
+	pushd lib-python/2.7 > /dev/null || die
+	epatch "${FILESDIR}"/5.6.0_all_distutils_cxx.patch \
+		"${WORKDIR}"/patches/22_all_turkish_locale.patch \
+		"${WORKDIR}"/patches/62_all_xml.use_pyxml.patch
+	popd > /dev/null || die
+
+	epatch_user
+}
+
+src_compile() {
+	tc-export CC
+
+	local jit_backend
+	if use jit; then
+		jit_backend='--jit-backend='
+
+		# We only need the explicit sse2 switch for x86.
+		# On other arches we can rely on autodetection which uses
+		# compiler macros. Plus, --jit-backend= doesn't accept all
+		# the modern values...
+
+		if use x86; then
+			if use cpu_flags_x86_sse2; then
+				jit_backend+=x86
+			else
+				jit_backend+=x86-without-sse2
+			fi
+		else
+			jit_backend+=auto
+		fi
+	fi
+
+	local args=(
+		--shared
+		$(usex jit -Ojit -O2)
+		$(usex shadowstack --gcrootfinder=shadowstack '')
+		$(usex sandbox --sandbox '')
+
+		${jit_backend}
+		--make-jobs=$(makeopts_jobs)
+
+		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
+
+	set -- "${interp[@]}" rpython/bin/rpython --batch "${args[@]}"
+	echo -e "\033[1m${@}\033[0m"
+	"${@}" || die "compile error"
+
+	use doc && emake -C pypy/doc/ html
+	pax-mark m pypy-c libpypy-c.so
+}
+
+src_test() {
+	# (unset)
+	local -x PYTHONDONTWRITEBYTECODE
+
+	./pypy-c ./pypy/test_all.py --pypy=./pypy-c lib-python || die
+}
+
+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
+	pax-mark m "${ED%/}${dest}/pypy-c" "${ED%/}${dest}/libpypy-c.so"
+	dosym ../$(get_libdir)/pypy/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
+
+	# Install docs
+	use doc && dohtml -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
+	python_export pypy EPYTHON
+
+	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 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 "${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
+
+	# compile the installed modules
+	python_optimize "${ED%/}${dest}"
+}


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-python/pypy/files/, dev-python/pypy/
@ 2017-04-25 21:49 Michał Górny
  0 siblings, 0 replies; 16+ messages in thread
From: Michał Górny @ 2017-04-25 21:49 UTC (permalink / raw
  To: gentoo-commits

commit:     3fd6c1a1b17e9e90680e71b550d0dddc597378ee
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Apr 24 17:12:08 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Apr 25 21:49:11 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3fd6c1a1

dev-python/pypy: Update the distutils-cxx patch for upcoming 5.7.1

 .../pypy/files/5.7.1_all_distutils_cxx.patch       | 388 +++++++++++++++++++++
 dev-python/pypy/pypy-9999.ebuild                   |   2 +-
 2 files changed, 389 insertions(+), 1 deletion(-)

diff --git a/dev-python/pypy/files/5.7.1_all_distutils_cxx.patch b/dev-python/pypy/files/5.7.1_all_distutils_cxx.patch
new file mode 100644
index 00000000000..8249fbc91db
--- /dev/null
+++ b/dev-python/pypy/files/5.7.1_all_distutils_cxx.patch
@@ -0,0 +1,388 @@
+From 9bf4611231faa0dc9ae64c6a7a8b55a3290a3ca2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Tue, 25 Apr 2017 07:14:11 +0200
+Subject: [PATCH] Fancy patch for distutils C++ support, rebased for pypy5.7
+
+http://bugs.python.org/issue1222585
+http://bugs.gentoo.org/show_bug.cgi?id=599918
+---
+ _osx_support.py                | 10 ++---
+ distutils/cygwinccompiler.py   | 21 ++++++++--
+ distutils/emxccompiler.py      | 14 +++++--
+ distutils/sysconfig_cpython.py | 26 ++++++++++---
+ distutils/sysconfig_pypy.py    | 37 ++++++++++++++----
+ distutils/unixccompiler.py     | 55 ++++++++++++++-------------
+ 6 files changed, 112 insertions(+), 51 deletions(-)
+
+diff --git a/_osx_support.py b/_osx_support.py
+index d2aaae7..8bcdb05 100644
+--- a/_osx_support.py
++++ b/_osx_support.py
+@@ -14,13 +14,13 @@ __all__ = [
+ # configuration variables that may contain universal build flags,
+ # like "-arch" or "-isdkroot", that may need customization for
+ # the user environment
+-_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS', 'BASECFLAGS',
+-                            'BLDSHARED', 'LDSHARED', 'CC', 'CXX',
+-                            'PY_CFLAGS', 'PY_LDFLAGS', 'PY_CPPFLAGS',
+-                            'PY_CORE_CFLAGS')
++_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CPPFLAGS',
++                          'BASECFLAGS', 'BLDSHARED', 'LDSHARED', 'LDCXXSHARED',
++                          'CC', 'CXX', 'PY_CFLAGS', 'PY_LDFLAGS',
++                          'PY_CPPFLAGS', 'PY_CORE_CFLAGS')
+ 
+ # configuration variables that may contain compiler calls
+-_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'CC', 'CXX')
++_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'LDCXXSHARED', 'CC', 'CXX')
+ 
+ # prefix added to original configuration variable names
+ _INITPRE = '_OSX_SUPPORT_INITIAL_'
+diff --git a/distutils/cygwinccompiler.py b/distutils/cygwinccompiler.py
+index 767400c..7133097 100644
+--- a/distutils/cygwinccompiler.py
++++ b/distutils/cygwinccompiler.py
+@@ -120,8 +120,10 @@ class CygwinCCompiler (UnixCCompiler):
+         # dllwrap 2.10.90 is buggy
+         if self.ld_version >= "2.10.90":
+             self.linker_dll = "gcc"
++            self.linker_dll_cxx = "g++"
+         else:
+             self.linker_dll = "dllwrap"
++            self.linker_dll_cxx = "dllwrap"
+ 
+         # ld_version >= "2.13" support -shared so use it instead of
+         # -mdll -static
+@@ -135,9 +137,13 @@ class CygwinCCompiler (UnixCCompiler):
+         self.set_executables(compiler='gcc -mcygwin -O -Wall',
+                              compiler_so='gcc -mcygwin -mdll -O -Wall',
+                              compiler_cxx='g++ -mcygwin -O -Wall',
++                             compiler_so_cxx='g++ -mcygwin -mdll -O -Wall',
+                              linker_exe='gcc -mcygwin',
+                              linker_so=('%s -mcygwin %s' %
+-                                        (self.linker_dll, shared_option)))
++                                        (self.linker_dll, shared_option)),
++                             linker_exe_cxx='g++ -mcygwin',
++                             linker_so_cxx=('%s -mcygwin %s' %
++                                            (self.linker_dll_cxx, shared_option)))
+ 
+         # cygwin and mingw32 need different sets of libraries
+         if self.gcc_version == "2.91.57":
+@@ -163,8 +169,12 @@ class CygwinCCompiler (UnixCCompiler):
+                 raise CompileError, msg
+         else: # for other files use the C-compiler
+             try:
+-                self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
+-                           extra_postargs)
++                if self.detect_language(src) == 'c++':
++                    self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
++                               extra_postargs)
++                else:
++                    self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
++                               extra_postargs)
+             except DistutilsExecError, msg:
+                 raise CompileError, msg
+ 
+@@ -330,9 +340,14 @@ class Mingw32CCompiler (CygwinCCompiler):
+         self.set_executables(compiler='gcc%s -O -Wall' % no_cygwin,
+                              compiler_so='gcc%s -mdll -O -Wall' % no_cygwin,
+                              compiler_cxx='g++%s -O -Wall' % no_cygwin,
++                             compiler_so_cxx='g++%s -mdll -O -Wall' % no_cygwin,
+                              linker_exe='gcc%s' % no_cygwin,
+                              linker_so='%s%s %s %s'
+                                     % (self.linker_dll, no_cygwin,
++                                       shared_option, entry_point),
++                             linker_exe_cxx='g++%s' % no_cygwin,
++                             linker_so_cxx='%s%s %s %s'
++                                    % (self.linker_dll_cxx, no_cygwin,
+                                        shared_option, entry_point))
+         # Maybe we should also append -mthreads, but then the finished
+         # dlls need another dll (mingwm10.dll see Mingw32 docs)
+diff --git a/distutils/emxccompiler.py b/distutils/emxccompiler.py
+index a017205..bdc532c 100644
+--- a/distutils/emxccompiler.py
++++ b/distutils/emxccompiler.py
+@@ -65,8 +65,12 @@ class EMXCCompiler (UnixCCompiler):
+         # XXX optimization, warnings etc. should be customizable.
+         self.set_executables(compiler='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
+                              compiler_so='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
++                             compiler_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
++                             compiler_so_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
+                              linker_exe='gcc -Zomf -Zmt -Zcrtdll',
+-                             linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll')
++                             linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll',
++                             linker_exe_cxx='g++ -Zomf -Zmt -Zcrtdll',
++                             linker_so_cxx='g++ -Zomf -Zmt -Zcrtdll -Zdll')
+ 
+         # want the gcc library statically linked (so that we don't have
+         # to distribute a version dependent on the compiler we have)
+@@ -83,8 +87,12 @@ class EMXCCompiler (UnixCCompiler):
+                 raise CompileError, msg
+         else: # for other files use the C-compiler
+             try:
+-                self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
+-                           extra_postargs)
++                if self.detect_language(src) == 'c++':
++                    self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
++                               extra_postargs)
++                else:
++                    self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
++                               extra_postargs)
+             except DistutilsExecError, msg:
+                 raise CompileError, msg
+ 
+diff --git a/distutils/sysconfig_cpython.py b/distutils/sysconfig_cpython.py
+index 35f39e4..8dd032d 100644
+--- a/distutils/sysconfig_cpython.py
++++ b/distutils/sysconfig_cpython.py
+@@ -171,10 +171,12 @@ def customize_compiler(compiler):
+                 _osx_support.customize_compiler(_config_vars)
+                 _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
+ 
+-        (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
+-            get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
+-                            'CCSHARED', 'LDSHARED', 'SO', 'AR',
+-                            'ARFLAGS')
++        (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \
++            get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED',
++                            'SO', 'AR', 'ARFLAGS')
++
++        cflags = ''
++        cxxflags = ''
+ 
+         if 'CC' in os.environ:
+             newcc = os.environ['CC']
+@@ -189,19 +191,27 @@ def customize_compiler(compiler):
+             cxx = os.environ['CXX']
+         if 'LDSHARED' in os.environ:
+             ldshared = os.environ['LDSHARED']
++        if 'LDCXXSHARED' in os.environ:
++            ldcxxshared = os.environ['LDCXXSHARED']
+         if 'CPP' in os.environ:
+             cpp = os.environ['CPP']
+         else:
+             cpp = cc + " -E"           # not always
+         if 'LDFLAGS' in os.environ:
+             ldshared = ldshared + ' ' + os.environ['LDFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
+         if 'CFLAGS' in os.environ:
+-            cflags = opt + ' ' + os.environ['CFLAGS']
++            cflags = os.environ['CFLAGS']
+             ldshared = ldshared + ' ' + os.environ['CFLAGS']
++        if 'CXXFLAGS' in os.environ:
++            cxxflags = os.environ['CXXFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
+         if 'CPPFLAGS' in os.environ:
+             cpp = cpp + ' ' + os.environ['CPPFLAGS']
+             cflags = cflags + ' ' + os.environ['CPPFLAGS']
++            cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
+             ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
+         if 'AR' in os.environ:
+             ar = os.environ['AR']
+         if 'ARFLAGS' in os.environ:
+@@ -210,13 +220,17 @@ def customize_compiler(compiler):
+             archiver = ar + ' ' + ar_flags
+ 
+         cc_cmd = cc + ' ' + cflags
++        cxx_cmd = cxx + ' ' + cxxflags
+         compiler.set_executables(
+             preprocessor=cpp,
+             compiler=cc_cmd,
+             compiler_so=cc_cmd + ' ' + ccshared,
+-            compiler_cxx=cxx,
++            compiler_cxx=cxx_cmd,
++            compiler_so_cxx=cxx_cmd + ' ' + ccshared,
+             linker_so=ldshared,
+             linker_exe=cc,
++            linker_so_cxx=ldcxxshared,
++            linker_exe_cxx=cxx,
+             archiver=archiver)
+ 
+         compiler.shared_lib_extension = so_ext
+diff --git a/distutils/sysconfig_pypy.py b/distutils/sysconfig_pypy.py
+index 368f232..4fe1f08 100644
+--- a/distutils/sysconfig_pypy.py
++++ b/distutils/sysconfig_pypy.py
+@@ -67,6 +67,7 @@ def _init_posix():
+     g['CFLAGS'] = "-DNDEBUG -O2"
+     g['CCSHARED'] = "-fPIC"
+     g['LDSHARED'] = "gcc -pthread -shared"
++    g['LDCXXSHARED'] = "g++ -pthread -shared"
+     g['SO'] = [s[0] for s in imp.get_suffixes() if s[2] == imp.C_EXTENSION][0]
+     g['AR'] = "ar"
+     g['ARFLAGS'] = "rc"
+@@ -85,6 +86,7 @@ def _init_posix():
+             # just a guess
+             arch = platform.machine()
+         g['LDSHARED'] += ' -undefined dynamic_lookup'
++        g['LDCXXSHARED'] += ' -undefined dynamic_lookup'
+         g['CC'] += ' -arch %s' % (arch,)
+ 
+     global _config_vars
+@@ -168,37 +170,52 @@ def customize_compiler(compiler):
+                 _osx_support.customize_compiler(_config_vars)
+                 _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
+ 
+-        (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
+-            get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
+-                            'CCSHARED', 'LDSHARED', 'SO', 'AR',
+-                            'ARFLAGS')
++        (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \
++            get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED',
++                            'SO', 'AR', 'ARFLAGS')
++
++        cflags = ''
++        cxxflags = ''
+ 
+         if 'CC' in os.environ:
+             newcc = os.environ['CC']
+-            if (sys.platform == 'darwin'
++            if (True
+                     and 'LDSHARED' not in os.environ
+                     and ldshared.startswith(cc)):
+                 # On OS X, if CC is overridden, use that as the default
+                 #       command for LDSHARED as well
++                # Gentoo: s/OS X/every system/
+                 ldshared = newcc + ldshared[len(cc):]
+             cc = newcc
+         if 'CXX' in os.environ:
+-            cxx = os.environ['CXX']
++            newcxx = os.environ['CXX']
++            if ('LDCXXSHARED' not in os.environ
++                    and ldcxxshared.startswith(cxx)):
++                ldcxxshared = newcxx + ldcxxshared[len(cxx):]
++            cxx = newcxx
+         if 'LDSHARED' in os.environ:
+             ldshared = os.environ['LDSHARED']
++        if 'LDCXXSHARED' in os.environ:
++            ldcxxshared = os.environ['LDCXXSHARED']
+         if 'CPP' in os.environ:
+             cpp = os.environ['CPP']
+         else:
+             cpp = cc + " -E"           # not always
+         if 'LDFLAGS' in os.environ:
+             ldshared = ldshared + ' ' + os.environ['LDFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
+         if 'CFLAGS' in os.environ:
+-            cflags = opt + ' ' + os.environ['CFLAGS']
++            cflags = os.environ['CFLAGS']
+             ldshared = ldshared + ' ' + os.environ['CFLAGS']
++        if 'CXXFLAGS' in os.environ:
++            cxxflags = os.environ['CXXFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
+         if 'CPPFLAGS' in os.environ:
+             cpp = cpp + ' ' + os.environ['CPPFLAGS']
+             cflags = cflags + ' ' + os.environ['CPPFLAGS']
++            cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
+             ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
+         if 'AR' in os.environ:
+             ar = os.environ['AR']
+         if 'ARFLAGS' in os.environ:
+@@ -207,13 +224,17 @@ def customize_compiler(compiler):
+             archiver = ar + ' ' + ar_flags
+ 
+         cc_cmd = cc + ' ' + cflags
++        cxx_cmd = cxx + ' ' + cxxflags
+         compiler.set_executables(
+             preprocessor=cpp,
+             compiler=cc_cmd,
+             compiler_so=cc_cmd + ' ' + ccshared,
+-            compiler_cxx=cxx,
++            compiler_cxx=cxx_cmd,
++            compiler_so_cxx=cxx_cmd + ' ' + ccshared,
+             linker_so=ldshared,
+             linker_exe=cc,
++            linker_so_cxx=ldcxxshared,
++            linker_exe_cxx=cxx,
+             archiver=archiver)
+ 
+         compiler.shared_lib_extension = so_ext
+diff --git a/distutils/unixccompiler.py b/distutils/unixccompiler.py
+index dee88a5..558b568 100644
+--- a/distutils/unixccompiler.py
++++ b/distutils/unixccompiler.py
+@@ -55,14 +55,17 @@ class UnixCCompiler(CCompiler):
+     # are pretty generic; they will probably have to be set by an outsider
+     # (eg. using information discovered by the sysconfig about building
+     # Python extensions).
+-    executables = {'preprocessor' : None,
+-                   'compiler'     : ["cc"],
+-                   'compiler_so'  : ["cc"],
+-                   'compiler_cxx' : ["c++"],  # pypy: changed, 'cc' is bogus
+-                   'linker_so'    : ["cc", "-shared"],
+-                   'linker_exe'   : ["cc"],
+-                   'archiver'     : ["ar", "-cr"],
+-                   'ranlib'       : None,
++    executables = {'preprocessor'    : None,
++                   'compiler'        : ["cc"],
++                   'compiler_so'     : ["cc"],
++                   'compiler_cxx'    : ["c++"],
++                   'compiler_so_cxx' : ["c++"],
++                   'linker_so'       : ["cc", "-shared"],
++                   'linker_exe'      : ["cc"],
++                   'linker_so_cxx'   : ["c++", "-shared"],
++                   'linker_exe_cxx'  : ["c++"],
++                   'archiver'        : ["ar", "-cr"],
++                   'ranlib'          : None,
+                   }
+ 
+     if sys.platform[:6] == "darwin":
+@@ -129,12 +132,19 @@ class UnixCCompiler(CCompiler):
+ 
+     def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
+         compiler_so = self.compiler_so
++        compiler_so_cxx = self.compiler_so_cxx
+         if sys.platform == 'darwin':
+             compiler_so = _osx_support.compiler_fixup(compiler_so,
+                                                     cc_args + extra_postargs)
++            compiler_so_cxx = _osx_support.compiler_fixup(compiler_so_cxx,
++                                                    cc_args + extra_postargs)
+         try:
+-            self.spawn(compiler_so + cc_args + [src, '-o', obj] +
+-                       extra_postargs)
++            if self.detect_language(src) == 'c++':
++                self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] +
++                           extra_postargs)
++            else:
++                self.spawn(compiler_so + cc_args + [src, '-o', obj] +
++                           extra_postargs)
+         except DistutilsExecError, msg:
+             raise CompileError, msg
+ 
+@@ -191,23 +201,16 @@ class UnixCCompiler(CCompiler):
+                 ld_args.extend(extra_postargs)
+             self.mkpath(os.path.dirname(output_filename))
+             try:
+-                if target_desc == CCompiler.EXECUTABLE:
+-                    linker = self.linker_exe[:]
++                if target_lang == "c++":
++                    if target_desc == CCompiler.EXECUTABLE:
++                        linker = self.linker_exe_cxx[:]
++                    else:
++                        linker = self.linker_so_cxx[:]
+                 else:
+-                    linker = self.linker_so[:]
+-                if target_lang == "c++" and self.compiler_cxx:
+-                    # skip over environment variable settings if /usr/bin/env
+-                    # is used to set up the linker's environment.
+-                    # This is needed on OSX. Note: this assumes that the
+-                    # normal and C++ compiler have the same environment
+-                    # settings.
+-                    i = 0
+-                    if os.path.basename(linker[0]) == "env":
+-                        i = 1
+-                        while '=' in linker[i]:
+-                            i = i + 1
+-
+-                    linker[i] = self.compiler_cxx[i]
++                    if target_desc == CCompiler.EXECUTABLE:
++                        linker = self.linker_exe[:]
++                    else:
++                        linker = self.linker_so[:]
+ 
+                 if sys.platform == 'darwin':
+                     linker = _osx_support.compiler_fixup(linker, ld_args)
+-- 
+2.12.2
+

diff --git a/dev-python/pypy/pypy-9999.ebuild b/dev-python/pypy/pypy-9999.ebuild
index 4cda2cf09a0..c6a8bd08960 100644
--- a/dev-python/pypy/pypy-9999.ebuild
+++ b/dev-python/pypy/pypy-9999.ebuild
@@ -105,7 +105,7 @@ src_prepare() {
 	pushd lib-python/2.7 > /dev/null || die
 	# TODO: cpy turkish locale patch now fixes C code
 	# probably needs better port to pypy, if it is broken there
-	epatch "${FILESDIR}"/5.6.0_all_distutils_cxx.patch \
+	epatch "${FILESDIR}"/5.7.1_all_distutils_cxx.patch \
 		"${WORKDIR}"/patches/62_all_xml.use_pyxml.patch
 	popd > /dev/null || die
 


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-python/pypy/files/, dev-python/pypy/
@ 2017-04-25 21:49 Michał Górny
  0 siblings, 0 replies; 16+ messages in thread
From: Michał Górny @ 2017-04-25 21:49 UTC (permalink / raw
  To: gentoo-commits

commit:     63581c519419c7ef888b7e51f557af0afa99a922
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 25 15:05:24 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Apr 25 21:49:12 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=63581c51

dev-python/pypy: Disarm implicit -flto (in 9999)

 dev-python/pypy/files/5.7.1-kill-flto.patch | 27 +++++++++++++++++++++++++++
 dev-python/pypy/pypy-9999.ebuild            |  2 ++
 2 files changed, 29 insertions(+)

diff --git a/dev-python/pypy/files/5.7.1-kill-flto.patch b/dev-python/pypy/files/5.7.1-kill-flto.patch
new file mode 100644
index 00000000000..92395bdb6ca
--- /dev/null
+++ b/dev-python/pypy/files/5.7.1-kill-flto.patch
@@ -0,0 +1,27 @@
+From 261f9280d9736965a8626c2d6a6fadd4254b2b89 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Tue, 25 Apr 2017 17:03:46 +0200
+Subject: [PATCH] Kill -flto
+
+---
+ rpython/translator/platform/posix.py | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/rpython/translator/platform/posix.py b/rpython/translator/platform/posix.py
+index a8d4768..20a2934 100644
+--- a/rpython/translator/platform/posix.py
++++ b/rpython/translator/platform/posix.py
+@@ -130,10 +130,6 @@ class BasePosix(Platform):
+         else:
+             cflags = tuple(self.cflags) + tuple(self.standalone_only)
+ 
+-        # xxx check which compilers accept this option or not
+-        if not config or config.translation.gcrootfinder != 'asmgcc':
+-            cflags = ('-flto',) + cflags
+-
+         m = GnuMakefile(path)
+         m.exe_name = path.join(exe_name.basename)
+         m.eci = eci
+-- 
+2.12.2
+

diff --git a/dev-python/pypy/pypy-9999.ebuild b/dev-python/pypy/pypy-9999.ebuild
index c4d67f9bbc1..4e672b8cf6b 100644
--- a/dev-python/pypy/pypy-9999.ebuild
+++ b/dev-python/pypy/pypy-9999.ebuild
@@ -96,6 +96,8 @@ src_prepare() {
 	eapply "${FILESDIR}/4.0.0-gentoo-path.patch"
 	eapply "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
 	eapply "${FILESDIR}"/2.5.0-shared-lib.patch	# 517002
+	# disarm implicit -flto
+	eapply "${FILESDIR}"/5.7.1-kill-flto.patch
 
 	sed -e "s^@EPREFIX@^${EPREFIX}^" \
 		-e "s^@libdir@^$(get_libdir)^" \


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-python/pypy/files/, dev-python/pypy/
@ 2017-04-25 21:49 Michał Górny
  0 siblings, 0 replies; 16+ messages in thread
From: Michał Górny @ 2017-04-25 21:49 UTC (permalink / raw
  To: gentoo-commits

commit:     d97c60b5c1273e8e6b9899d54522ef5dbdd3866b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Apr 24 17:20:47 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Apr 25 21:49:12 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d97c60b5

dev-python/pypy: Bump 9999 to EAPI 6

 dev-python/pypy/files/2.5.0-shared-lib.patch |  4 ++--
 dev-python/pypy/pypy-9999.ebuild             | 18 +++++++++---------
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/dev-python/pypy/files/2.5.0-shared-lib.patch b/dev-python/pypy/files/2.5.0-shared-lib.patch
index ddd74730f3d..b5c877bd58b 100644
--- a/dev-python/pypy/files/2.5.0-shared-lib.patch
+++ b/dev-python/pypy/files/2.5.0-shared-lib.patch
@@ -1,6 +1,6 @@
 diff -ur pypy-2.5.0-src.orig/rpython/translator/platform/posix.py pypy-2.5.0-src/rpython/translator/platform/posix.py
---- rpython/translator/platform/posix.py	2015-02-03 05:12:49.000000000 +0800
-+++ rpython/translator/platform/posix.py	2015-03-22 07:36:01.420116684 +0800
+--- a/rpython/translator/platform/posix.py	2015-02-03 05:12:49.000000000 +0800
++++ b/rpython/translator/platform/posix.py	2015-03-22 07:36:01.420116684 +0800
 @@ -183,7 +183,7 @@
                     'int main(int argc, char* argv[]) '
                     '{ return $(PYPY_MAIN_FUNCTION)(argc, argv); }" > $@')

diff --git a/dev-python/pypy/pypy-9999.ebuild b/dev-python/pypy/pypy-9999.ebuild
index c6a8bd08960..c4d67f9bbc1 100644
--- a/dev-python/pypy/pypy-9999.ebuild
+++ b/dev-python/pypy/pypy-9999.ebuild
@@ -1,11 +1,11 @@
 # Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=5
+EAPI=6
 
 PYTHON_COMPAT=( python2_7 pypy )
 EHG_REPO_URI="https://bitbucket.org/pypy/pypy"
-inherit check-reqs eutils mercurial multilib multiprocessing pax-utils python-any-r1 toolchain-funcs versionator
+inherit check-reqs mercurial multiprocessing pax-utils python-any-r1 toolchain-funcs versionator
 
 # note: remember to update this to newest dev-lang/python:2.7 on bump
 CPY_PATCHSET_VERSION="2.7.13-0"
@@ -93,9 +93,9 @@ src_unpack() {
 }
 
 src_prepare() {
-	epatch "${FILESDIR}/4.0.0-gentoo-path.patch" \
-		"${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch" \
-		"${FILESDIR}"/2.5.0-shared-lib.patch	# 517002
+	eapply "${FILESDIR}/4.0.0-gentoo-path.patch"
+	eapply "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
+	eapply "${FILESDIR}"/2.5.0-shared-lib.patch	# 517002
 
 	sed -e "s^@EPREFIX@^${EPREFIX}^" \
 		-e "s^@libdir@^$(get_libdir)^" \
@@ -105,11 +105,11 @@ src_prepare() {
 	pushd lib-python/2.7 > /dev/null || die
 	# TODO: cpy turkish locale patch now fixes C code
 	# probably needs better port to pypy, if it is broken there
-	epatch "${FILESDIR}"/5.7.1_all_distutils_cxx.patch \
-		"${WORKDIR}"/patches/62_all_xml.use_pyxml.patch
+	eapply "${FILESDIR}"/5.7.1_all_distutils_cxx.patch
+	eapply "${WORKDIR}"/patches/62_all_xml.use_pyxml.patch
 	popd > /dev/null || die
 
-	epatch_user
+	eapply_user
 }
 
 src_configure() {
@@ -220,7 +220,7 @@ src_install() {
 	fi
 
 	# Install docs
-	use doc && dohtml -r pypy/doc/_build/html/
+	use doc && dodoc -r pypy/doc/_build/html
 
 	einfo "Generating caches and byte-compiling ..."
 


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-python/pypy/files/, dev-python/pypy/
@ 2017-10-09 18:58 Michał Górny
  0 siblings, 0 replies; 16+ messages in thread
From: Michał Górny @ 2017-10-09 18:58 UTC (permalink / raw
  To: gentoo-commits

commit:     ccc170f64e0040984d5306106a1c395f330bebed
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Oct  5 17:40:25 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Oct  9 18:58:14 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ccc170f6

dev-python/pypy: Bump to 5.9.0

 dev-python/pypy/Manifest                                |  2 ++
 dev-python/pypy/files/5.9.0-shared-lib.patch            | 12 ++++++++++++
 dev-python/pypy/{pypy-9999.ebuild => pypy-5.9.0.ebuild} | 16 +++++-----------
 dev-python/pypy/pypy-9999.ebuild                        |  4 ++--
 4 files changed, 21 insertions(+), 13 deletions(-)

diff --git a/dev-python/pypy/Manifest b/dev-python/pypy/Manifest
index e454f08ba6b..6a21a59a297 100644
--- a/dev-python/pypy/Manifest
+++ b/dev-python/pypy/Manifest
@@ -1,5 +1,7 @@
 DIST pypy2-v5.6.0-src.tar.bz2 18388539 SHA256 7411448045f77eb9e087afdce66fe7eafda1876c9e17aad88cf891f762b608b0 SHA512 a92ef611ae2417aaa202b9f5c75dd86e82fc2549e53bab3164cccff37d131542bc71cbce6aaedf428d3dfc7d59a2d3b3a5ed03e3a3439628f29d43c4d30a64de WHIRLPOOL 896894225407f8cd462b094d77723880f6a423d60a79e5d3cf4e0804737fdd0337fc668b05573902fe81f826798b2046cb115c8d230f0810ec0ad2508590ee4a
 DIST pypy2-v5.7.1-src.tar.bz2 18940413 SHA256 d01bee43c6df79f7bbc1149bb3e85f489491fb2358a6a1f9a7f0d6e07715832f SHA512 1ad2dddb40c28d2d3e95a9f0730e765d981dee6e2d0664cf1274eb7c1021690a848c3485c846eac8a8b64425b44946b5b2d223058ec4699155a2122ee7d38b75 WHIRLPOOL e0223d889a26f8a5bc5097561dbe617ff9b11972590f3a8d717d572798a2d685540bc6059e4ce4ff73ce0db9d2476a4274f17dad1f825fb780726d6ecd78a4c8
 DIST pypy2-v5.8.0-src.tar.bz2 19163498 SHA256 504c2d522595baf8775ae1045a217a2b120732537861d31b889d47c340b58bd5 SHA512 222c6ce11b00830e310b766df4c145b7f554f23b87fc6146f214d758d7a6159c5c00af475aa7fa630ef4c37b52cdf2fd73049b6ec3610715b6abc0a925fe1365 WHIRLPOOL 775fbe656996e80fce9cb9a4d4f44fe1b87f0b22f18f74940d5824143337773bb5e3a4d23564bfdc22d010693010f31689026432134a8a2e30ddee670dba1b6d
+DIST pypy2-v5.9.0-src.tar.bz2 19175394 SHA256 de4bf05df47f1349dbac97233d9277bbaf1ef3331663ea2557fd5da3dbcfd0a7 SHA512 3170747e81088043c6a4885bd0bc92e911556420b6c2539a4ed7e62956f1c741651f772def0fb00d8826a1bef9d6f4e79a13682a4456a31d987f7c9bd8608a4d WHIRLPOOL 5cbfc6922469450fdd55cda79afbd41e5750446eb09396ea53a65d6fbe099905103f14ab08665ecd76bf4da44f11d2c4609d8df97999a41d03f2985d6fae32fa
 DIST python-gentoo-patches-2.7.11-0.tar.xz 12916 SHA256 e14b47bb1fd64d366d7dfb8339cc2cbf4a53fc288b11dd83f575eb36a8a6408d SHA512 f0447bb699a163afc08df39b111394377539935546ae23732d7239e78d2bff0c04bc94949f86aef0c1be83736127dbd25c2c531e49befed2d638c3cd4940ac52 WHIRLPOOL 305992849d9d244da1e308e739c9bf62a3ef5c74eb65c765bdc666fb5767eb16c7a609f7c442c17da17f76c3ab81e4b09fa8c21e43f89366539a6a9d656bea77
 DIST python-gentoo-patches-2.7.13-0.tar.xz 13292 SHA256 271835eb36125d09cc5e904ef23a5263acd8e5f513202a8d4f8a9a0f64fc80a8 SHA512 d70f6baba1a465a752c515e33dfdee2a5cc75400fadfb8ea0bd1e82d50089abdf02d7726c697850dc47de2054aa494bbdc08de2673c260b54e609f29dab259ad WHIRLPOOL 6a6d8b099fa814839bf5b3455b3889205c649ef522b35c3a501831d63d0e916d7747b83ac9b8991f8f8c34b328478d84cf7a12a32161ce0fec37204f9c019e2d
+DIST python-gentoo-patches-2.7.14-0.tar.xz 13428 SHA256 3567feeb8f0c66161efaea1922bbfe4e71f6051533ef5f54a74b6ccf9e0359b6 SHA512 6da5b52065752b54e9215d0f0809c75167dc3690d0e94fa21dd7595626925bc5c1dd065d31b3bd696d7087f3986de145d3a335a29eb7bd77442637a7ec2863c1 WHIRLPOOL ab77023ac66def132d1dce72f98add3108fd7be303ef5b167a2374df3a94949c75f089dcfdd84ed05a5eb813d6c22cfecd0de03b5819817a20b04f30030f5f6d

diff --git a/dev-python/pypy/files/5.9.0-shared-lib.patch b/dev-python/pypy/files/5.9.0-shared-lib.patch
new file mode 100644
index 00000000000..5d89d3b15a3
--- /dev/null
+++ b/dev-python/pypy/files/5.9.0-shared-lib.patch
@@ -0,0 +1,12 @@
+diff -dupr a/rpython/translator/platform/posix.py b/rpython/translator/platform/posix.py
+--- a/rpython/translator/platform/posix.py	2017-10-05 20:17:25.009954656 +0200
++++ b/rpython/translator/platform/posix.py	2017-10-05 20:17:31.115666386 +0200
+@@ -227,7 +227,7 @@ class BasePosix(Platform):
+                    'int main(int argc, char* argv[]) '
+                    '{ return $(PYPY_MAIN_FUNCTION)(argc, argv); }" > $@')
+             m.rule('$(DEFAULT_TARGET)', ['$(TARGET)', 'main.o'],
+-                   ['$(CC_LINK) $(LDFLAGS_LINK) main.o -L. -l$(SHARED_IMPORT_LIB) -o $@ $(RPATH_FLAGS)', '$(MAKE) postcompile BIN=$(DEFAULT_TARGET)'])
++                   ['$(CC_LINK) $(LDFLAGS_LINK) main.o -L. -l$(SHARED_IMPORT_LIB) \'-Wl,-rpath,$$ORIGIN\' -o $@', '$(MAKE) postcompile BIN=$(DEFAULT_TARGET)'])
+ 
+         return m
+ 

diff --git a/dev-python/pypy/pypy-9999.ebuild b/dev-python/pypy/pypy-5.9.0.ebuild
similarity index 96%
copy from dev-python/pypy/pypy-9999.ebuild
copy to dev-python/pypy/pypy-5.9.0.ebuild
index eaf3b675ad2..0ac7919c6ef 100644
--- a/dev-python/pypy/pypy-9999.ebuild
+++ b/dev-python/pypy/pypy-5.9.0.ebuild
@@ -4,22 +4,21 @@
 EAPI=6
 
 PYTHON_COMPAT=( python2_7 pypy )
-EHG_REPO_URI="https://bitbucket.org/pypy/pypy"
-inherit check-reqs mercurial pax-utils python-any-r1 toolchain-funcs versionator
+inherit check-reqs pax-utils python-any-r1 toolchain-funcs versionator
 
 # note: remember to update this to newest dev-lang/python:2.7 on bump
-CPY_PATCHSET_VERSION="2.7.13-0"
+CPY_PATCHSET_VERSION="2.7.14-0"
 MY_P=pypy2-v${PV}
 
 DESCRIPTION="A fast, compliant alternative implementation of the Python language"
 HOMEPAGE="http://pypy.org/"
-SRC_URI="
+SRC_URI="https://bitbucket.org/pypy/pypy/downloads/${MY_P}-src.tar.bz2
 	https://dev.gentoo.org/~floppym/python/python-gentoo-patches-${CPY_PATCHSET_VERSION}.tar.xz"
 
 LICENSE="MIT"
 # pypy -c 'import sysconfig; print sysconfig.get_config_var("SOABI")'
 SLOT="0/41"
-KEYWORDS=""
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
 IUSE="bzip2 doc gdbm +jit libressl low-memory ncurses sandbox sqlite cpu_flags_x86_sse2 test tk"
 
 RDEPEND=">=sys-libs/zlib-1.1.3:0=
@@ -87,15 +86,10 @@ pkg_setup() {
 	fi
 }
 
-src_unpack() {
-	default
-	mercurial_src_unpack
-}
-
 src_prepare() {
 	eapply "${FILESDIR}/4.0.0-gentoo-path.patch"
 	eapply "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
-	eapply "${FILESDIR}"/2.5.0-shared-lib.patch	# 517002
+	eapply "${FILESDIR}"/5.9.0-shared-lib.patch	# 517002
 
 	sed -e "s^@EPREFIX@^${EPREFIX}^" \
 		-e "s^@libdir@^$(get_libdir)^" \

diff --git a/dev-python/pypy/pypy-9999.ebuild b/dev-python/pypy/pypy-9999.ebuild
index eaf3b675ad2..f028a5b6e80 100644
--- a/dev-python/pypy/pypy-9999.ebuild
+++ b/dev-python/pypy/pypy-9999.ebuild
@@ -8,7 +8,7 @@ EHG_REPO_URI="https://bitbucket.org/pypy/pypy"
 inherit check-reqs mercurial pax-utils python-any-r1 toolchain-funcs versionator
 
 # note: remember to update this to newest dev-lang/python:2.7 on bump
-CPY_PATCHSET_VERSION="2.7.13-0"
+CPY_PATCHSET_VERSION="2.7.14-0"
 MY_P=pypy2-v${PV}
 
 DESCRIPTION="A fast, compliant alternative implementation of the Python language"
@@ -95,7 +95,7 @@ src_unpack() {
 src_prepare() {
 	eapply "${FILESDIR}/4.0.0-gentoo-path.patch"
 	eapply "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
-	eapply "${FILESDIR}"/2.5.0-shared-lib.patch	# 517002
+	eapply "${FILESDIR}"/5.9.0-shared-lib.patch	# 517002
 
 	sed -e "s^@EPREFIX@^${EPREFIX}^" \
 		-e "s^@libdir@^$(get_libdir)^" \


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-python/pypy/files/, dev-python/pypy/
@ 2017-10-15  9:38 Michał Górny
  0 siblings, 0 replies; 16+ messages in thread
From: Michał Górny @ 2017-10-15  9:38 UTC (permalink / raw
  To: gentoo-commits

commit:     a2fa03f1dbd6cad2321215a91b29e1acf1b66505
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 15 09:29:17 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Oct 15 09:38:11 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a2fa03f1

dev-python/pypy: Drop old

 dev-python/pypy/Manifest                           |   3 -
 .../pypy/files/5.6.0_all_distutils_cxx.patch       | 340 ------------------
 dev-python/pypy/files/5.7.1-kill-flto.patch        |  27 --
 .../pypy/files/5.7.1_all_distutils_cxx.patch       | 388 ---------------------
 dev-python/pypy/metadata.xml                       |   1 -
 dev-python/pypy/pypy-5.6.0.ebuild                  | 267 --------------
 dev-python/pypy/pypy-5.7.1.ebuild                  | 268 --------------
 7 files changed, 1294 deletions(-)

diff --git a/dev-python/pypy/Manifest b/dev-python/pypy/Manifest
index 6a21a59a297..3dd018ddb29 100644
--- a/dev-python/pypy/Manifest
+++ b/dev-python/pypy/Manifest
@@ -1,7 +1,4 @@
-DIST pypy2-v5.6.0-src.tar.bz2 18388539 SHA256 7411448045f77eb9e087afdce66fe7eafda1876c9e17aad88cf891f762b608b0 SHA512 a92ef611ae2417aaa202b9f5c75dd86e82fc2549e53bab3164cccff37d131542bc71cbce6aaedf428d3dfc7d59a2d3b3a5ed03e3a3439628f29d43c4d30a64de WHIRLPOOL 896894225407f8cd462b094d77723880f6a423d60a79e5d3cf4e0804737fdd0337fc668b05573902fe81f826798b2046cb115c8d230f0810ec0ad2508590ee4a
-DIST pypy2-v5.7.1-src.tar.bz2 18940413 SHA256 d01bee43c6df79f7bbc1149bb3e85f489491fb2358a6a1f9a7f0d6e07715832f SHA512 1ad2dddb40c28d2d3e95a9f0730e765d981dee6e2d0664cf1274eb7c1021690a848c3485c846eac8a8b64425b44946b5b2d223058ec4699155a2122ee7d38b75 WHIRLPOOL e0223d889a26f8a5bc5097561dbe617ff9b11972590f3a8d717d572798a2d685540bc6059e4ce4ff73ce0db9d2476a4274f17dad1f825fb780726d6ecd78a4c8
 DIST pypy2-v5.8.0-src.tar.bz2 19163498 SHA256 504c2d522595baf8775ae1045a217a2b120732537861d31b889d47c340b58bd5 SHA512 222c6ce11b00830e310b766df4c145b7f554f23b87fc6146f214d758d7a6159c5c00af475aa7fa630ef4c37b52cdf2fd73049b6ec3610715b6abc0a925fe1365 WHIRLPOOL 775fbe656996e80fce9cb9a4d4f44fe1b87f0b22f18f74940d5824143337773bb5e3a4d23564bfdc22d010693010f31689026432134a8a2e30ddee670dba1b6d
 DIST pypy2-v5.9.0-src.tar.bz2 19175394 SHA256 de4bf05df47f1349dbac97233d9277bbaf1ef3331663ea2557fd5da3dbcfd0a7 SHA512 3170747e81088043c6a4885bd0bc92e911556420b6c2539a4ed7e62956f1c741651f772def0fb00d8826a1bef9d6f4e79a13682a4456a31d987f7c9bd8608a4d WHIRLPOOL 5cbfc6922469450fdd55cda79afbd41e5750446eb09396ea53a65d6fbe099905103f14ab08665ecd76bf4da44f11d2c4609d8df97999a41d03f2985d6fae32fa
-DIST python-gentoo-patches-2.7.11-0.tar.xz 12916 SHA256 e14b47bb1fd64d366d7dfb8339cc2cbf4a53fc288b11dd83f575eb36a8a6408d SHA512 f0447bb699a163afc08df39b111394377539935546ae23732d7239e78d2bff0c04bc94949f86aef0c1be83736127dbd25c2c531e49befed2d638c3cd4940ac52 WHIRLPOOL 305992849d9d244da1e308e739c9bf62a3ef5c74eb65c765bdc666fb5767eb16c7a609f7c442c17da17f76c3ab81e4b09fa8c21e43f89366539a6a9d656bea77
 DIST python-gentoo-patches-2.7.13-0.tar.xz 13292 SHA256 271835eb36125d09cc5e904ef23a5263acd8e5f513202a8d4f8a9a0f64fc80a8 SHA512 d70f6baba1a465a752c515e33dfdee2a5cc75400fadfb8ea0bd1e82d50089abdf02d7726c697850dc47de2054aa494bbdc08de2673c260b54e609f29dab259ad WHIRLPOOL 6a6d8b099fa814839bf5b3455b3889205c649ef522b35c3a501831d63d0e916d7747b83ac9b8991f8f8c34b328478d84cf7a12a32161ce0fec37204f9c019e2d
 DIST python-gentoo-patches-2.7.14-0.tar.xz 13428 SHA256 3567feeb8f0c66161efaea1922bbfe4e71f6051533ef5f54a74b6ccf9e0359b6 SHA512 6da5b52065752b54e9215d0f0809c75167dc3690d0e94fa21dd7595626925bc5c1dd065d31b3bd696d7087f3986de145d3a335a29eb7bd77442637a7ec2863c1 WHIRLPOOL ab77023ac66def132d1dce72f98add3108fd7be303ef5b167a2374df3a94949c75f089dcfdd84ed05a5eb813d6c22cfecd0de03b5819817a20b04f30030f5f6d

diff --git a/dev-python/pypy/files/5.6.0_all_distutils_cxx.patch b/dev-python/pypy/files/5.6.0_all_distutils_cxx.patch
deleted file mode 100644
index 5d9c2cd1a5a..00000000000
--- a/dev-python/pypy/files/5.6.0_all_distutils_cxx.patch
+++ /dev/null
@@ -1,340 +0,0 @@
-http://bugs.python.org/issue1222585
-http://bugs.gentoo.org/show_bug.cgi?id=599918
-
-diff -Naur pypy2-v5.6.0-src/lib-python/2.7/_osx_support.py pypy2-v5.6.0-src-patched/lib-python/2.7/_osx_support.py
---- pypy2-v5.6.0-src/lib-python/2.7/_osx_support.py	2016-11-08 09:52:16.000000000 +0100
-+++ pypy2-v5.6.0-src-patched/lib-python/2.7/_osx_support.py	2016-12-08 16:59:26.213690338 +0100
-@@ -14,13 +14,13 @@
- # configuration variables that may contain universal build flags,
- # like "-arch" or "-isdkroot", that may need customization for
- # the user environment
--_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS', 'BASECFLAGS',
--                            'BLDSHARED', 'LDSHARED', 'CC', 'CXX',
--                            'PY_CFLAGS', 'PY_LDFLAGS', 'PY_CPPFLAGS',
--                            'PY_CORE_CFLAGS')
-+_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CPPFLAGS',
-+                          'BASECFLAGS', 'BLDSHARED', 'LDSHARED', 'LDCXXSHARED',
-+                          'CC', 'CXX', 'PY_CFLAGS', 'PY_LDFLAGS',
-+                          'PY_CPPFLAGS', 'PY_CORE_CFLAGS')
- 
- # configuration variables that may contain compiler calls
--_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'CC', 'CXX')
-+_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'LDCXXSHARED', 'CC', 'CXX')
- 
- # prefix added to original configuration variable names
- _INITPRE = '_OSX_SUPPORT_INITIAL_'
-diff -Naur pypy2-v5.6.0-src/lib-python/2.7/distutils/sysconfig_pypy.py pypy2-v5.6.0-src-patched/lib-python/2.7/distutils/sysconfig_pypy.py
---- pypy2-v5.6.0-src/lib-python/2.7/distutils/sysconfig_pypy.py	2016-11-08 09:52:16.000000000 +0100
-+++ pypy2-v5.6.0-src-patched/lib-python/2.7/distutils/sysconfig_pypy.py	2016-12-08 17:01:33.594553801 +0100
-@@ -126,19 +126,56 @@
-         setattr(compiler, executable, command)
- 
-     if compiler.compiler_type == "unix":
--        compiler.compiler_so.extend(['-O2', '-fPIC', '-Wimplicit'])
-+        cc = ' '.join(compiler.compiler)
-+        cxx = ' '.join(compiler.compiler_cxx)
-+        ldshared = ' '.join(compiler.linker_so)
-+        ldcxxshared = ' '.join(compiler.linker_so_cxx)
-+
-+        cflags = ''
-+        cxxflags = ''
-+        ccshared = '-fPIC'
-+
-+        if 'CC' in os.environ:
-+            cc = os.environ['CC']
-+        if 'CXX' in os.environ:
-+            cxx = os.environ['CXX']
-+        if 'LDSHARED' in os.environ:
-+            ldshared = os.environ['LDSHARED']
-+        if 'LDCXXSHARED' in os.environ:
-+            ldcxxshared = os.environ['LDCXXSHARED']
-+        if 'CPP' in os.environ:
-+            cpp = os.environ['CPP']
-+        else:
-+            cpp = cc + " -E"           # not always
-+        if 'CPPFLAGS' in os.environ:
-+            cpp = cpp + ' ' + os.environ['CPPFLAGS']
-+            cflags = cflags + ' ' + os.environ['CPPFLAGS']
-+            cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
-+            ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
-+        if 'CFLAGS' in os.environ:
-+            cflags = os.environ['CFLAGS']
-+            ldshared = ldshared + ' ' + os.environ['CFLAGS']
-+        if 'CXXFLAGS' in os.environ:
-+            cxxflags = os.environ['CXXFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
-+        if 'LDFLAGS' in os.environ:
-+            ldshared = ldshared + ' ' + os.environ['LDFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
-+
-+        cc_cmd = cc + ' ' + cflags
-+        cxx_cmd = cxx + ' ' + cxxflags
-+        compiler.set_executables(
-+            preprocessor=cpp,
-+            compiler=cc_cmd,
-+            compiler_so=cc_cmd + ' ' + ccshared,
-+            compiler_cxx=cxx_cmd,
-+            compiler_so_cxx=cxx_cmd + ' ' + ccshared,
-+            linker_so=ldshared,
-+            linker_exe=cc,
-+            linker_so_cxx=ldcxxshared,
-+            linker_exe_cxx=cxx)
-         compiler.shared_lib_extension = get_config_var('SO')
--        if "CPPFLAGS" in os.environ:
--            cppflags = shlex.split(os.environ["CPPFLAGS"])
--            for executable in ('compiler', 'compiler_so', 'linker_so'):
--                customize(executable, cppflags)
--        if "CFLAGS" in os.environ:
--            cflags = shlex.split(os.environ["CFLAGS"])
--            for executable in ('compiler', 'compiler_so', 'linker_so'):
--                customize(executable, cflags)
--        if "LDFLAGS" in os.environ:
--            ldflags = shlex.split(os.environ["LDFLAGS"])
--            customize('linker_so', ldflags)
- 
- 
- from sysconfig_cpython import (
-diff -Naur pypy2-v5.6.0-src/lib-python/2.7/distutils/cygwinccompiler.py pypy2-v5.6.0-src-patched/lib-python/2.7/distutils/cygwinccompiler.py
---- pypy2-v5.6.0-src/lib-python/2.7/distutils/cygwinccompiler.py	2016-11-08 09:52:16.000000000 +0100
-+++ pypy2-v5.6.0-src-patched/lib-python/2.7/distutils/cygwinccompiler.py	2016-12-08 16:59:26.213690338 +0100
-@@ -120,8 +120,10 @@
-         # dllwrap 2.10.90 is buggy
-         if self.ld_version >= "2.10.90":
-             self.linker_dll = "gcc"
-+            self.linker_dll_cxx = "g++"
-         else:
-             self.linker_dll = "dllwrap"
-+            self.linker_dll_cxx = "dllwrap"
- 
-         # ld_version >= "2.13" support -shared so use it instead of
-         # -mdll -static
-@@ -135,9 +137,13 @@
-         self.set_executables(compiler='gcc -mcygwin -O -Wall',
-                              compiler_so='gcc -mcygwin -mdll -O -Wall',
-                              compiler_cxx='g++ -mcygwin -O -Wall',
-+                             compiler_so_cxx='g++ -mcygwin -mdll -O -Wall',
-                              linker_exe='gcc -mcygwin',
-                              linker_so=('%s -mcygwin %s' %
--                                        (self.linker_dll, shared_option)))
-+                                        (self.linker_dll, shared_option)),
-+                             linker_exe_cxx='g++ -mcygwin',
-+                             linker_so_cxx=('%s -mcygwin %s' %
-+                                            (self.linker_dll_cxx, shared_option)))
- 
-         # cygwin and mingw32 need different sets of libraries
-         if self.gcc_version == "2.91.57":
-@@ -163,8 +169,12 @@
-                 raise CompileError, msg
-         else: # for other files use the C-compiler
-             try:
--                self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
--                           extra_postargs)
-+                if self.detect_language(src) == 'c++':
-+                    self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
-+                               extra_postargs)
-+                else:
-+                    self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
-+                               extra_postargs)
-             except DistutilsExecError, msg:
-                 raise CompileError, msg
- 
-@@ -330,9 +340,14 @@
-         self.set_executables(compiler='gcc%s -O -Wall' % no_cygwin,
-                              compiler_so='gcc%s -mdll -O -Wall' % no_cygwin,
-                              compiler_cxx='g++%s -O -Wall' % no_cygwin,
-+                             compiler_so_cxx='g++%s -mdll -O -Wall' % no_cygwin,
-                              linker_exe='gcc%s' % no_cygwin,
-                              linker_so='%s%s %s %s'
-                                     % (self.linker_dll, no_cygwin,
-+                                       shared_option, entry_point),
-+                             linker_exe_cxx='g++%s' % no_cygwin,
-+                             linker_so_cxx='%s%s %s %s'
-+                                    % (self.linker_dll_cxx, no_cygwin,
-                                        shared_option, entry_point))
-         # Maybe we should also append -mthreads, but then the finished
-         # dlls need another dll (mingwm10.dll see Mingw32 docs)
-diff -Naur pypy2-v5.6.0-src/lib-python/2.7/distutils/emxccompiler.py pypy2-v5.6.0-src-patched/lib-python/2.7/distutils/emxccompiler.py
---- pypy2-v5.6.0-src/lib-python/2.7/distutils/emxccompiler.py	2016-11-08 09:52:16.000000000 +0100
-+++ pypy2-v5.6.0-src-patched/lib-python/2.7/distutils/emxccompiler.py	2016-12-08 16:59:26.213690338 +0100
-@@ -65,8 +65,12 @@
-         # XXX optimization, warnings etc. should be customizable.
-         self.set_executables(compiler='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
-                              compiler_so='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
-+                             compiler_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
-+                             compiler_so_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
-                              linker_exe='gcc -Zomf -Zmt -Zcrtdll',
--                             linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll')
-+                             linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll',
-+                             linker_exe_cxx='g++ -Zomf -Zmt -Zcrtdll',
-+                             linker_so_cxx='g++ -Zomf -Zmt -Zcrtdll -Zdll')
- 
-         # want the gcc library statically linked (so that we don't have
-         # to distribute a version dependent on the compiler we have)
-@@ -83,8 +87,12 @@
-                 raise CompileError, msg
-         else: # for other files use the C-compiler
-             try:
--                self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
--                           extra_postargs)
-+                if self.detect_language(src) == 'c++':
-+                    self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
-+                               extra_postargs)
-+                else:
-+                    self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
-+                               extra_postargs)
-             except DistutilsExecError, msg:
-                 raise CompileError, msg
- 
-diff -Naur pypy2-v5.6.0-src/lib-python/2.7/distutils/sysconfig_cpython.py pypy2-v5.6.0-src-patched/lib-python/2.7/distutils/sysconfig_cpython.py
---- pypy2-v5.6.0-src/lib-python/2.7/distutils/sysconfig_cpython.py	2016-11-08 09:52:16.000000000 +0100
-+++ pypy2-v5.6.0-src-patched/lib-python/2.7/distutils/sysconfig_cpython.py	2016-12-08 16:59:26.213690338 +0100
-@@ -171,10 +171,12 @@
-                 _osx_support.customize_compiler(_config_vars)
-                 _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
- 
--        (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
--            get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
--                            'CCSHARED', 'LDSHARED', 'SO', 'AR',
--                            'ARFLAGS')
-+        (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \
-+            get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED',
-+                            'SO', 'AR', 'ARFLAGS')
-+
-+        cflags = ''
-+        cxxflags = ''
- 
-         if 'CC' in os.environ:
-             newcc = os.environ['CC']
-@@ -189,19 +191,27 @@
-             cxx = os.environ['CXX']
-         if 'LDSHARED' in os.environ:
-             ldshared = os.environ['LDSHARED']
-+        if 'LDCXXSHARED' in os.environ:
-+            ldcxxshared = os.environ['LDCXXSHARED']
-         if 'CPP' in os.environ:
-             cpp = os.environ['CPP']
-         else:
-             cpp = cc + " -E"           # not always
-         if 'LDFLAGS' in os.environ:
-             ldshared = ldshared + ' ' + os.environ['LDFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
-         if 'CFLAGS' in os.environ:
--            cflags = opt + ' ' + os.environ['CFLAGS']
-+            cflags = os.environ['CFLAGS']
-             ldshared = ldshared + ' ' + os.environ['CFLAGS']
-+        if 'CXXFLAGS' in os.environ:
-+            cxxflags = os.environ['CXXFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
-         if 'CPPFLAGS' in os.environ:
-             cpp = cpp + ' ' + os.environ['CPPFLAGS']
-             cflags = cflags + ' ' + os.environ['CPPFLAGS']
-+            cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
-             ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
-         if 'AR' in os.environ:
-             ar = os.environ['AR']
-         if 'ARFLAGS' in os.environ:
-@@ -210,13 +220,17 @@
-             archiver = ar + ' ' + ar_flags
- 
-         cc_cmd = cc + ' ' + cflags
-+        cxx_cmd = cxx + ' ' + cxxflags
-         compiler.set_executables(
-             preprocessor=cpp,
-             compiler=cc_cmd,
-             compiler_so=cc_cmd + ' ' + ccshared,
--            compiler_cxx=cxx,
-+            compiler_cxx=cxx_cmd,
-+            compiler_so_cxx=cxx_cmd + ' ' + ccshared,
-             linker_so=ldshared,
-             linker_exe=cc,
-+            linker_so_cxx=ldcxxshared,
-+            linker_exe_cxx=cxx,
-             archiver=archiver)
- 
-         compiler.shared_lib_extension = so_ext
-diff -Naur pypy2-v5.6.0-src/lib-python/2.7/distutils/unixccompiler.py pypy2-v5.6.0-src-patched/lib-python/2.7/distutils/unixccompiler.py
---- pypy2-v5.6.0-src/lib-python/2.7/distutils/unixccompiler.py	2016-11-08 09:52:16.000000000 +0100
-+++ pypy2-v5.6.0-src-patched/lib-python/2.7/distutils/unixccompiler.py	2016-12-08 16:59:26.213690338 +0100
-@@ -55,14 +55,17 @@
-     # are pretty generic; they will probably have to be set by an outsider
-     # (eg. using information discovered by the sysconfig about building
-     # Python extensions).
--    executables = {'preprocessor' : None,
--                   'compiler'     : ["cc"],
--                   'compiler_so'  : ["cc"],
--                   'compiler_cxx' : ["c++"],  # pypy: changed, 'cc' is bogus
--                   'linker_so'    : ["cc", "-shared"],
--                   'linker_exe'   : ["cc"],
--                   'archiver'     : ["ar", "-cr"],
--                   'ranlib'       : None,
-+    executables = {'preprocessor'    : None,
-+                   'compiler'        : ["cc"],
-+                   'compiler_so'     : ["cc"],
-+                   'compiler_cxx'    : ["c++"],
-+                   'compiler_so_cxx' : ["c++"],
-+                   'linker_so'       : ["cc", "-shared"],
-+                   'linker_exe'      : ["cc"],
-+                   'linker_so_cxx'   : ["c++", "-shared"],
-+                   'linker_exe_cxx'  : ["c++"],
-+                   'archiver'        : ["ar", "-cr"],
-+                   'ranlib'          : None,
-                   }
- 
-     if sys.platform[:6] == "darwin":
-@@ -129,12 +132,19 @@
- 
-     def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
-         compiler_so = self.compiler_so
-+        compiler_so_cxx = self.compiler_so_cxx
-         if sys.platform == 'darwin':
-             compiler_so = _osx_support.compiler_fixup(compiler_so,
-                                                     cc_args + extra_postargs)
-+            compiler_so_cxx = _osx_support.compiler_fixup(compiler_so_cxx,
-+                                                    cc_args + extra_postargs)
-         try:
--            self.spawn(compiler_so + cc_args + [src, '-o', obj] +
--                       extra_postargs)
-+            if self.detect_language(src) == 'c++':
-+                self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] +
-+                           extra_postargs)
-+            else:
-+                self.spawn(compiler_so + cc_args + [src, '-o', obj] +
-+                           extra_postargs)
-         except DistutilsExecError, msg:
-             raise CompileError, msg
- 
-@@ -191,23 +201,16 @@
-                 ld_args.extend(extra_postargs)
-             self.mkpath(os.path.dirname(output_filename))
-             try:
--                if target_desc == CCompiler.EXECUTABLE:
--                    linker = self.linker_exe[:]
-+                if target_lang == "c++":
-+                    if target_desc == CCompiler.EXECUTABLE:
-+                        linker = self.linker_exe_cxx[:]
-+                    else:
-+                        linker = self.linker_so_cxx[:]
-                 else:
--                    linker = self.linker_so[:]
--                if target_lang == "c++" and self.compiler_cxx:
--                    # skip over environment variable settings if /usr/bin/env
--                    # is used to set up the linker's environment.
--                    # This is needed on OSX. Note: this assumes that the
--                    # normal and C++ compiler have the same environment
--                    # settings.
--                    i = 0
--                    if os.path.basename(linker[0]) == "env":
--                        i = 1
--                        while '=' in linker[i]:
--                            i = i + 1
--
--                    linker[i] = self.compiler_cxx[i]
-+                    if target_desc == CCompiler.EXECUTABLE:
-+                        linker = self.linker_exe[:]
-+                    else:
-+                        linker = self.linker_so[:]
- 
-                 if sys.platform == 'darwin':
-                     linker = _osx_support.compiler_fixup(linker, ld_args)

diff --git a/dev-python/pypy/files/5.7.1-kill-flto.patch b/dev-python/pypy/files/5.7.1-kill-flto.patch
deleted file mode 100644
index 92395bdb6ca..00000000000
--- a/dev-python/pypy/files/5.7.1-kill-flto.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 261f9280d9736965a8626c2d6a6fadd4254b2b89 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
-Date: Tue, 25 Apr 2017 17:03:46 +0200
-Subject: [PATCH] Kill -flto
-
----
- rpython/translator/platform/posix.py | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/rpython/translator/platform/posix.py b/rpython/translator/platform/posix.py
-index a8d4768..20a2934 100644
---- a/rpython/translator/platform/posix.py
-+++ b/rpython/translator/platform/posix.py
-@@ -130,10 +130,6 @@ class BasePosix(Platform):
-         else:
-             cflags = tuple(self.cflags) + tuple(self.standalone_only)
- 
--        # xxx check which compilers accept this option or not
--        if not config or config.translation.gcrootfinder != 'asmgcc':
--            cflags = ('-flto',) + cflags
--
-         m = GnuMakefile(path)
-         m.exe_name = path.join(exe_name.basename)
-         m.eci = eci
--- 
-2.12.2
-

diff --git a/dev-python/pypy/files/5.7.1_all_distutils_cxx.patch b/dev-python/pypy/files/5.7.1_all_distutils_cxx.patch
deleted file mode 100644
index 8249fbc91db..00000000000
--- a/dev-python/pypy/files/5.7.1_all_distutils_cxx.patch
+++ /dev/null
@@ -1,388 +0,0 @@
-From 9bf4611231faa0dc9ae64c6a7a8b55a3290a3ca2 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
-Date: Tue, 25 Apr 2017 07:14:11 +0200
-Subject: [PATCH] Fancy patch for distutils C++ support, rebased for pypy5.7
-
-http://bugs.python.org/issue1222585
-http://bugs.gentoo.org/show_bug.cgi?id=599918
----
- _osx_support.py                | 10 ++---
- distutils/cygwinccompiler.py   | 21 ++++++++--
- distutils/emxccompiler.py      | 14 +++++--
- distutils/sysconfig_cpython.py | 26 ++++++++++---
- distutils/sysconfig_pypy.py    | 37 ++++++++++++++----
- distutils/unixccompiler.py     | 55 ++++++++++++++-------------
- 6 files changed, 112 insertions(+), 51 deletions(-)
-
-diff --git a/_osx_support.py b/_osx_support.py
-index d2aaae7..8bcdb05 100644
---- a/_osx_support.py
-+++ b/_osx_support.py
-@@ -14,13 +14,13 @@ __all__ = [
- # configuration variables that may contain universal build flags,
- # like "-arch" or "-isdkroot", that may need customization for
- # the user environment
--_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS', 'BASECFLAGS',
--                            'BLDSHARED', 'LDSHARED', 'CC', 'CXX',
--                            'PY_CFLAGS', 'PY_LDFLAGS', 'PY_CPPFLAGS',
--                            'PY_CORE_CFLAGS')
-+_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CPPFLAGS',
-+                          'BASECFLAGS', 'BLDSHARED', 'LDSHARED', 'LDCXXSHARED',
-+                          'CC', 'CXX', 'PY_CFLAGS', 'PY_LDFLAGS',
-+                          'PY_CPPFLAGS', 'PY_CORE_CFLAGS')
- 
- # configuration variables that may contain compiler calls
--_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'CC', 'CXX')
-+_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'LDCXXSHARED', 'CC', 'CXX')
- 
- # prefix added to original configuration variable names
- _INITPRE = '_OSX_SUPPORT_INITIAL_'
-diff --git a/distutils/cygwinccompiler.py b/distutils/cygwinccompiler.py
-index 767400c..7133097 100644
---- a/distutils/cygwinccompiler.py
-+++ b/distutils/cygwinccompiler.py
-@@ -120,8 +120,10 @@ class CygwinCCompiler (UnixCCompiler):
-         # dllwrap 2.10.90 is buggy
-         if self.ld_version >= "2.10.90":
-             self.linker_dll = "gcc"
-+            self.linker_dll_cxx = "g++"
-         else:
-             self.linker_dll = "dllwrap"
-+            self.linker_dll_cxx = "dllwrap"
- 
-         # ld_version >= "2.13" support -shared so use it instead of
-         # -mdll -static
-@@ -135,9 +137,13 @@ class CygwinCCompiler (UnixCCompiler):
-         self.set_executables(compiler='gcc -mcygwin -O -Wall',
-                              compiler_so='gcc -mcygwin -mdll -O -Wall',
-                              compiler_cxx='g++ -mcygwin -O -Wall',
-+                             compiler_so_cxx='g++ -mcygwin -mdll -O -Wall',
-                              linker_exe='gcc -mcygwin',
-                              linker_so=('%s -mcygwin %s' %
--                                        (self.linker_dll, shared_option)))
-+                                        (self.linker_dll, shared_option)),
-+                             linker_exe_cxx='g++ -mcygwin',
-+                             linker_so_cxx=('%s -mcygwin %s' %
-+                                            (self.linker_dll_cxx, shared_option)))
- 
-         # cygwin and mingw32 need different sets of libraries
-         if self.gcc_version == "2.91.57":
-@@ -163,8 +169,12 @@ class CygwinCCompiler (UnixCCompiler):
-                 raise CompileError, msg
-         else: # for other files use the C-compiler
-             try:
--                self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
--                           extra_postargs)
-+                if self.detect_language(src) == 'c++':
-+                    self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
-+                               extra_postargs)
-+                else:
-+                    self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
-+                               extra_postargs)
-             except DistutilsExecError, msg:
-                 raise CompileError, msg
- 
-@@ -330,9 +340,14 @@ class Mingw32CCompiler (CygwinCCompiler):
-         self.set_executables(compiler='gcc%s -O -Wall' % no_cygwin,
-                              compiler_so='gcc%s -mdll -O -Wall' % no_cygwin,
-                              compiler_cxx='g++%s -O -Wall' % no_cygwin,
-+                             compiler_so_cxx='g++%s -mdll -O -Wall' % no_cygwin,
-                              linker_exe='gcc%s' % no_cygwin,
-                              linker_so='%s%s %s %s'
-                                     % (self.linker_dll, no_cygwin,
-+                                       shared_option, entry_point),
-+                             linker_exe_cxx='g++%s' % no_cygwin,
-+                             linker_so_cxx='%s%s %s %s'
-+                                    % (self.linker_dll_cxx, no_cygwin,
-                                        shared_option, entry_point))
-         # Maybe we should also append -mthreads, but then the finished
-         # dlls need another dll (mingwm10.dll see Mingw32 docs)
-diff --git a/distutils/emxccompiler.py b/distutils/emxccompiler.py
-index a017205..bdc532c 100644
---- a/distutils/emxccompiler.py
-+++ b/distutils/emxccompiler.py
-@@ -65,8 +65,12 @@ class EMXCCompiler (UnixCCompiler):
-         # XXX optimization, warnings etc. should be customizable.
-         self.set_executables(compiler='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
-                              compiler_so='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
-+                             compiler_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
-+                             compiler_so_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
-                              linker_exe='gcc -Zomf -Zmt -Zcrtdll',
--                             linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll')
-+                             linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll',
-+                             linker_exe_cxx='g++ -Zomf -Zmt -Zcrtdll',
-+                             linker_so_cxx='g++ -Zomf -Zmt -Zcrtdll -Zdll')
- 
-         # want the gcc library statically linked (so that we don't have
-         # to distribute a version dependent on the compiler we have)
-@@ -83,8 +87,12 @@ class EMXCCompiler (UnixCCompiler):
-                 raise CompileError, msg
-         else: # for other files use the C-compiler
-             try:
--                self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
--                           extra_postargs)
-+                if self.detect_language(src) == 'c++':
-+                    self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
-+                               extra_postargs)
-+                else:
-+                    self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
-+                               extra_postargs)
-             except DistutilsExecError, msg:
-                 raise CompileError, msg
- 
-diff --git a/distutils/sysconfig_cpython.py b/distutils/sysconfig_cpython.py
-index 35f39e4..8dd032d 100644
---- a/distutils/sysconfig_cpython.py
-+++ b/distutils/sysconfig_cpython.py
-@@ -171,10 +171,12 @@ def customize_compiler(compiler):
-                 _osx_support.customize_compiler(_config_vars)
-                 _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
- 
--        (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
--            get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
--                            'CCSHARED', 'LDSHARED', 'SO', 'AR',
--                            'ARFLAGS')
-+        (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \
-+            get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED',
-+                            'SO', 'AR', 'ARFLAGS')
-+
-+        cflags = ''
-+        cxxflags = ''
- 
-         if 'CC' in os.environ:
-             newcc = os.environ['CC']
-@@ -189,19 +191,27 @@ def customize_compiler(compiler):
-             cxx = os.environ['CXX']
-         if 'LDSHARED' in os.environ:
-             ldshared = os.environ['LDSHARED']
-+        if 'LDCXXSHARED' in os.environ:
-+            ldcxxshared = os.environ['LDCXXSHARED']
-         if 'CPP' in os.environ:
-             cpp = os.environ['CPP']
-         else:
-             cpp = cc + " -E"           # not always
-         if 'LDFLAGS' in os.environ:
-             ldshared = ldshared + ' ' + os.environ['LDFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
-         if 'CFLAGS' in os.environ:
--            cflags = opt + ' ' + os.environ['CFLAGS']
-+            cflags = os.environ['CFLAGS']
-             ldshared = ldshared + ' ' + os.environ['CFLAGS']
-+        if 'CXXFLAGS' in os.environ:
-+            cxxflags = os.environ['CXXFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
-         if 'CPPFLAGS' in os.environ:
-             cpp = cpp + ' ' + os.environ['CPPFLAGS']
-             cflags = cflags + ' ' + os.environ['CPPFLAGS']
-+            cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
-             ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
-         if 'AR' in os.environ:
-             ar = os.environ['AR']
-         if 'ARFLAGS' in os.environ:
-@@ -210,13 +220,17 @@ def customize_compiler(compiler):
-             archiver = ar + ' ' + ar_flags
- 
-         cc_cmd = cc + ' ' + cflags
-+        cxx_cmd = cxx + ' ' + cxxflags
-         compiler.set_executables(
-             preprocessor=cpp,
-             compiler=cc_cmd,
-             compiler_so=cc_cmd + ' ' + ccshared,
--            compiler_cxx=cxx,
-+            compiler_cxx=cxx_cmd,
-+            compiler_so_cxx=cxx_cmd + ' ' + ccshared,
-             linker_so=ldshared,
-             linker_exe=cc,
-+            linker_so_cxx=ldcxxshared,
-+            linker_exe_cxx=cxx,
-             archiver=archiver)
- 
-         compiler.shared_lib_extension = so_ext
-diff --git a/distutils/sysconfig_pypy.py b/distutils/sysconfig_pypy.py
-index 368f232..4fe1f08 100644
---- a/distutils/sysconfig_pypy.py
-+++ b/distutils/sysconfig_pypy.py
-@@ -67,6 +67,7 @@ def _init_posix():
-     g['CFLAGS'] = "-DNDEBUG -O2"
-     g['CCSHARED'] = "-fPIC"
-     g['LDSHARED'] = "gcc -pthread -shared"
-+    g['LDCXXSHARED'] = "g++ -pthread -shared"
-     g['SO'] = [s[0] for s in imp.get_suffixes() if s[2] == imp.C_EXTENSION][0]
-     g['AR'] = "ar"
-     g['ARFLAGS'] = "rc"
-@@ -85,6 +86,7 @@ def _init_posix():
-             # just a guess
-             arch = platform.machine()
-         g['LDSHARED'] += ' -undefined dynamic_lookup'
-+        g['LDCXXSHARED'] += ' -undefined dynamic_lookup'
-         g['CC'] += ' -arch %s' % (arch,)
- 
-     global _config_vars
-@@ -168,37 +170,52 @@ def customize_compiler(compiler):
-                 _osx_support.customize_compiler(_config_vars)
-                 _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
- 
--        (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
--            get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
--                            'CCSHARED', 'LDSHARED', 'SO', 'AR',
--                            'ARFLAGS')
-+        (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \
-+            get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED',
-+                            'SO', 'AR', 'ARFLAGS')
-+
-+        cflags = ''
-+        cxxflags = ''
- 
-         if 'CC' in os.environ:
-             newcc = os.environ['CC']
--            if (sys.platform == 'darwin'
-+            if (True
-                     and 'LDSHARED' not in os.environ
-                     and ldshared.startswith(cc)):
-                 # On OS X, if CC is overridden, use that as the default
-                 #       command for LDSHARED as well
-+                # Gentoo: s/OS X/every system/
-                 ldshared = newcc + ldshared[len(cc):]
-             cc = newcc
-         if 'CXX' in os.environ:
--            cxx = os.environ['CXX']
-+            newcxx = os.environ['CXX']
-+            if ('LDCXXSHARED' not in os.environ
-+                    and ldcxxshared.startswith(cxx)):
-+                ldcxxshared = newcxx + ldcxxshared[len(cxx):]
-+            cxx = newcxx
-         if 'LDSHARED' in os.environ:
-             ldshared = os.environ['LDSHARED']
-+        if 'LDCXXSHARED' in os.environ:
-+            ldcxxshared = os.environ['LDCXXSHARED']
-         if 'CPP' in os.environ:
-             cpp = os.environ['CPP']
-         else:
-             cpp = cc + " -E"           # not always
-         if 'LDFLAGS' in os.environ:
-             ldshared = ldshared + ' ' + os.environ['LDFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
-         if 'CFLAGS' in os.environ:
--            cflags = opt + ' ' + os.environ['CFLAGS']
-+            cflags = os.environ['CFLAGS']
-             ldshared = ldshared + ' ' + os.environ['CFLAGS']
-+        if 'CXXFLAGS' in os.environ:
-+            cxxflags = os.environ['CXXFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
-         if 'CPPFLAGS' in os.environ:
-             cpp = cpp + ' ' + os.environ['CPPFLAGS']
-             cflags = cflags + ' ' + os.environ['CPPFLAGS']
-+            cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
-             ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
-         if 'AR' in os.environ:
-             ar = os.environ['AR']
-         if 'ARFLAGS' in os.environ:
-@@ -207,13 +224,17 @@ def customize_compiler(compiler):
-             archiver = ar + ' ' + ar_flags
- 
-         cc_cmd = cc + ' ' + cflags
-+        cxx_cmd = cxx + ' ' + cxxflags
-         compiler.set_executables(
-             preprocessor=cpp,
-             compiler=cc_cmd,
-             compiler_so=cc_cmd + ' ' + ccshared,
--            compiler_cxx=cxx,
-+            compiler_cxx=cxx_cmd,
-+            compiler_so_cxx=cxx_cmd + ' ' + ccshared,
-             linker_so=ldshared,
-             linker_exe=cc,
-+            linker_so_cxx=ldcxxshared,
-+            linker_exe_cxx=cxx,
-             archiver=archiver)
- 
-         compiler.shared_lib_extension = so_ext
-diff --git a/distutils/unixccompiler.py b/distutils/unixccompiler.py
-index dee88a5..558b568 100644
---- a/distutils/unixccompiler.py
-+++ b/distutils/unixccompiler.py
-@@ -55,14 +55,17 @@ class UnixCCompiler(CCompiler):
-     # are pretty generic; they will probably have to be set by an outsider
-     # (eg. using information discovered by the sysconfig about building
-     # Python extensions).
--    executables = {'preprocessor' : None,
--                   'compiler'     : ["cc"],
--                   'compiler_so'  : ["cc"],
--                   'compiler_cxx' : ["c++"],  # pypy: changed, 'cc' is bogus
--                   'linker_so'    : ["cc", "-shared"],
--                   'linker_exe'   : ["cc"],
--                   'archiver'     : ["ar", "-cr"],
--                   'ranlib'       : None,
-+    executables = {'preprocessor'    : None,
-+                   'compiler'        : ["cc"],
-+                   'compiler_so'     : ["cc"],
-+                   'compiler_cxx'    : ["c++"],
-+                   'compiler_so_cxx' : ["c++"],
-+                   'linker_so'       : ["cc", "-shared"],
-+                   'linker_exe'      : ["cc"],
-+                   'linker_so_cxx'   : ["c++", "-shared"],
-+                   'linker_exe_cxx'  : ["c++"],
-+                   'archiver'        : ["ar", "-cr"],
-+                   'ranlib'          : None,
-                   }
- 
-     if sys.platform[:6] == "darwin":
-@@ -129,12 +132,19 @@ class UnixCCompiler(CCompiler):
- 
-     def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
-         compiler_so = self.compiler_so
-+        compiler_so_cxx = self.compiler_so_cxx
-         if sys.platform == 'darwin':
-             compiler_so = _osx_support.compiler_fixup(compiler_so,
-                                                     cc_args + extra_postargs)
-+            compiler_so_cxx = _osx_support.compiler_fixup(compiler_so_cxx,
-+                                                    cc_args + extra_postargs)
-         try:
--            self.spawn(compiler_so + cc_args + [src, '-o', obj] +
--                       extra_postargs)
-+            if self.detect_language(src) == 'c++':
-+                self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] +
-+                           extra_postargs)
-+            else:
-+                self.spawn(compiler_so + cc_args + [src, '-o', obj] +
-+                           extra_postargs)
-         except DistutilsExecError, msg:
-             raise CompileError, msg
- 
-@@ -191,23 +201,16 @@ class UnixCCompiler(CCompiler):
-                 ld_args.extend(extra_postargs)
-             self.mkpath(os.path.dirname(output_filename))
-             try:
--                if target_desc == CCompiler.EXECUTABLE:
--                    linker = self.linker_exe[:]
-+                if target_lang == "c++":
-+                    if target_desc == CCompiler.EXECUTABLE:
-+                        linker = self.linker_exe_cxx[:]
-+                    else:
-+                        linker = self.linker_so_cxx[:]
-                 else:
--                    linker = self.linker_so[:]
--                if target_lang == "c++" and self.compiler_cxx:
--                    # skip over environment variable settings if /usr/bin/env
--                    # is used to set up the linker's environment.
--                    # This is needed on OSX. Note: this assumes that the
--                    # normal and C++ compiler have the same environment
--                    # settings.
--                    i = 0
--                    if os.path.basename(linker[0]) == "env":
--                        i = 1
--                        while '=' in linker[i]:
--                            i = i + 1
--
--                    linker[i] = self.compiler_cxx[i]
-+                    if target_desc == CCompiler.EXECUTABLE:
-+                        linker = self.linker_exe[:]
-+                    else:
-+                        linker = self.linker_so[:]
- 
-                 if sys.platform == 'darwin':
-                     linker = _osx_support.compiler_fixup(linker, ld_args)
--- 
-2.12.2
-

diff --git a/dev-python/pypy/metadata.xml b/dev-python/pypy/metadata.xml
index 8114c70878c..89f86a0b2be 100644
--- a/dev-python/pypy/metadata.xml
+++ b/dev-python/pypy/metadata.xml
@@ -10,7 +10,6 @@
 			This makes it possible to build PyPy using ~3.5G of RAM on amd64 and ~half of that on x86,
 			at the cost of lengthened build time.</flag>
 		<flag name="sandbox">Enable sandboxing functionality</flag>
-		<flag name="shadowstack">Use a shadow stack for finding GC roots</flag>
 	</use>
 	<upstream>
 		<remote-id type="bitbucket">pypy/pypy</remote-id>

diff --git a/dev-python/pypy/pypy-5.6.0.ebuild b/dev-python/pypy/pypy-5.6.0.ebuild
deleted file mode 100644
index a6b8dc6a26e..00000000000
--- a/dev-python/pypy/pypy-5.6.0.ebuild
+++ /dev/null
@@ -1,267 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-PYTHON_COMPAT=( python2_7 pypy )
-inherit check-reqs eutils multilib multiprocessing pax-utils python-any-r1 toolchain-funcs versionator
-
-# note: remember to update this to newest dev-lang/python:2.7 on bump
-CPY_PATCHSET_VERSION="2.7.11-0"
-MY_P=pypy2-v${PV}
-
-DESCRIPTION="A fast, compliant alternative implementation of the Python language"
-HOMEPAGE="http://pypy.org/"
-SRC_URI="https://bitbucket.org/pypy/pypy/downloads/${MY_P}-src.tar.bz2
-	https://dev.gentoo.org/~djc/python-gentoo-patches-${CPY_PATCHSET_VERSION}.tar.xz"
-
-LICENSE="MIT"
-# pypy -c 'import sysconfig; print sysconfig.get_config_var("SOABI")'
-SLOT="0/41"
-KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="bzip2 doc gdbm +jit libressl low-memory ncurses sandbox +shadowstack sqlite cpu_flags_x86_sse2 test tk"
-
-RDEPEND=">=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= )
-	gdbm? ( sys-libs/gdbm:0= )
-	ncurses? ( sys-libs/ncurses:0= )
-	sqlite? ( dev-db/sqlite:3= )
-	tk? (
-		dev-lang/tk:0=
-		dev-tcltk/tix:0=
-	)
-	!dev-python/pypy-bin:0"
-DEPEND="${RDEPEND}
-	doc? ( dev-python/sphinx )
-	${PYTHON_DEPS}
-	test? ( dev-python/pytest )"
-
-S="${WORKDIR}/${MY_P}-src"
-
-pkg_pretend() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		if use low-memory; then
-			if ! python_is_installed pypy; then
-				eerror "USE=low-memory requires a (possibly old) version of dev-python/pypy"
-				eerror "or dev-python/pypy-bin being installed. Please install it using e.g.:"
-				eerror
-				eerror "  $ emerge -1v dev-python/pypy-bin"
-				eerror
-				eerror "before attempting to build dev-python/pypy[low-memory]."
-				die "dev-python/pypy-bin (or dev-python/pypy) needs to be installed for USE=low-memory"
-			fi
-
-			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
-
-		if python_is_installed pypy; then
-			if [[ ! ${EPYTHON} || ${EPYTHON} == pypy ]] || use low-memory; then
-				einfo "Using already-installed PyPy to perform the translation."
-				local EPYTHON=pypy
-			else
-				einfo "Using ${EPYTHON} to perform the translation. Please note that upstream"
-				einfo "recommends using PyPy for that. If you wish to do so, please unset"
-				einfo "the EPYTHON variable."
-			fi
-		fi
-
-		python-any-r1_pkg_setup
-	fi
-}
-
-src_prepare() {
-	epatch "${FILESDIR}/4.0.0-gentoo-path.patch" \
-		"${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch" \
-		"${FILESDIR}"/2.5.0-shared-lib.patch	# 517002
-
-	sed -e "s^@EPREFIX@^${EPREFIX}^" \
-		-e "s^@libdir@^$(get_libdir)^" \
-		-i lib-python/2.7/distutils/command/install.py || die
-
-	# apply CPython stdlib patches
-	pushd lib-python/2.7 > /dev/null || die
-	epatch "${FILESDIR}"/5.6.0_all_distutils_cxx.patch \
-		"${WORKDIR}"/patches/22_all_turkish_locale.patch \
-		"${WORKDIR}"/patches/62_all_xml.use_pyxml.patch
-	popd > /dev/null || die
-
-	epatch_user
-}
-
-src_configure() {
-	tc-export CC
-
-	local jit_backend
-	if use jit; then
-		jit_backend='--jit-backend='
-
-		# We only need the explicit sse2 switch for x86.
-		# On other arches we can rely on autodetection which uses
-		# compiler macros. Plus, --jit-backend= doesn't accept all
-		# the modern values...
-
-		if use x86; then
-			if use cpu_flags_x86_sse2; then
-				jit_backend+=x86
-			else
-				jit_backend+=x86-without-sse2
-			fi
-		else
-			jit_backend+=auto
-		fi
-	fi
-
-	local args=(
-		--shared
-		$(usex jit -Ojit -O2)
-		$(usex shadowstack --gcrootfinder=shadowstack '')
-		$(usex sandbox --sandbox '')
-
-		${jit_backend}
-		--make-jobs=$(makeopts_jobs)
-
-		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/{pypy-c,libpypy-c.so} . || die
-	pax-mark m pypy-c libpypy-c.so
-
-	use doc && emake -C pypy/doc html
-}
-
-src_test() {
-	# (unset)
-	local -x PYTHONDONTWRITEBYTECODE
-
-	./pypy-c ./pypy/test_all.py --pypy=./pypy-c lib-python || die
-}
-
-src_install() {
-	local dest=/usr/$(get_libdir)/pypy
-	einfo "Installing PyPy ..."
-	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
-
-	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
-
-	# Install docs
-	use doc && dohtml -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
-	python_export pypy EPYTHON
-
-	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 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 "${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
-
-	# compile the installed modules
-	python_optimize "${ED%/}${dest}"
-}

diff --git a/dev-python/pypy/pypy-5.7.1.ebuild b/dev-python/pypy/pypy-5.7.1.ebuild
deleted file mode 100644
index be54da7a981..00000000000
--- a/dev-python/pypy/pypy-5.7.1.ebuild
+++ /dev/null
@@ -1,268 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 pypy )
-inherit check-reqs pax-utils python-any-r1 toolchain-funcs versionator
-
-# note: remember to update this to newest dev-lang/python:2.7 on bump
-CPY_PATCHSET_VERSION="2.7.13-0"
-MY_P=pypy2-v${PV}
-
-DESCRIPTION="A fast, compliant alternative implementation of the Python language"
-HOMEPAGE="http://pypy.org/"
-SRC_URI="https://bitbucket.org/pypy/pypy/downloads/${MY_P}-src.tar.bz2
-	https://dev.gentoo.org/~floppym/python/python-gentoo-patches-${CPY_PATCHSET_VERSION}.tar.xz"
-
-LICENSE="MIT"
-# pypy -c 'import sysconfig; print sysconfig.get_config_var("SOABI")'
-SLOT="0/41"
-KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="bzip2 doc gdbm +jit libressl low-memory ncurses sandbox sqlite cpu_flags_x86_sse2 test tk"
-
-RDEPEND=">=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= )
-	gdbm? ( sys-libs/gdbm:0= )
-	ncurses? ( sys-libs/ncurses:0= )
-	sqlite? ( dev-db/sqlite:3= )
-	tk? (
-		dev-lang/tk:0=
-		dev-tcltk/tix:0=
-	)
-	!dev-python/pypy-bin:0"
-DEPEND="${RDEPEND}
-	doc? ( dev-python/sphinx )
-	${PYTHON_DEPS}
-	test? ( dev-python/pytest )"
-
-S="${WORKDIR}/${MY_P}-src"
-
-pkg_pretend() {
-	if [[ ${MERGE_TYPE} != binary ]]; then
-		if use low-memory; then
-			if ! python_is_installed pypy; then
-				eerror "USE=low-memory requires a (possibly old) version of dev-python/pypy"
-				eerror "or dev-python/pypy-bin being installed. Please install it using e.g.:"
-				eerror
-				eerror "  $ emerge -1v dev-python/pypy-bin"
-				eerror
-				eerror "before attempting to build dev-python/pypy[low-memory]."
-				die "dev-python/pypy-bin (or dev-python/pypy) needs to be installed for USE=low-memory"
-			fi
-
-			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
-
-		if python_is_installed pypy; then
-			if [[ ! ${EPYTHON} || ${EPYTHON} == pypy ]] || use low-memory; then
-				einfo "Using already-installed PyPy to perform the translation."
-				local EPYTHON=pypy
-			else
-				einfo "Using ${EPYTHON} to perform the translation. Please note that upstream"
-				einfo "recommends using PyPy for that. If you wish to do so, please unset"
-				einfo "the EPYTHON variable."
-			fi
-		fi
-
-		python-any-r1_pkg_setup
-	fi
-}
-
-src_prepare() {
-	eapply "${FILESDIR}/4.0.0-gentoo-path.patch"
-	eapply "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
-	eapply "${FILESDIR}"/2.5.0-shared-lib.patch	# 517002
-	# disarm implicit -flto
-	eapply "${FILESDIR}"/5.7.1-kill-flto.patch
-
-	sed -e "s^@EPREFIX@^${EPREFIX}^" \
-		-e "s^@libdir@^$(get_libdir)^" \
-		-i lib-python/2.7/distutils/command/install.py || die
-
-	# apply CPython stdlib patches
-	pushd lib-python/2.7 > /dev/null || die
-	# TODO: cpy turkish locale patch now fixes C code
-	# probably needs better port to pypy, if it is broken there
-	eapply "${FILESDIR}"/5.7.1_all_distutils_cxx.patch
-	eapply "${WORKDIR}"/patches/62_all_xml.use_pyxml.patch
-	popd > /dev/null || die
-
-	eapply_user
-}
-
-src_configure() {
-	tc-export CC
-
-	local jit_backend
-	if use jit; then
-		jit_backend='--jit-backend='
-
-		# We only need the explicit sse2 switch for x86.
-		# On other arches we can rely on autodetection which uses
-		# compiler macros. Plus, --jit-backend= doesn't accept all
-		# the modern values...
-
-		if use x86; then
-			if use cpu_flags_x86_sse2; then
-				jit_backend+=x86
-			else
-				jit_backend+=x86-without-sse2
-			fi
-		else
-			jit_backend+=auto
-		fi
-	fi
-
-	local args=(
-		--shared
-		$(usex jit -Ojit -O2)
-		$(usex sandbox --sandbox '')
-
-		${jit_backend}
-
-		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/{pypy-c,libpypy-c.so} . || die
-	pax-mark m pypy-c libpypy-c.so
-
-	use doc && emake -C pypy/doc html
-}
-
-src_test() {
-	# (unset)
-	local -x PYTHONDONTWRITEBYTECODE
-
-	./pypy-c ./pypy/test_all.py --pypy=./pypy-c lib-python || die
-}
-
-src_install() {
-	local dest=/usr/$(get_libdir)/pypy
-	einfo "Installing PyPy ..."
-	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
-
-	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
-
-	# 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
-	python_export pypy EPYTHON
-
-	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 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 "${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
-
-	# compile the installed modules
-	python_optimize "${ED%/}${dest}"
-}


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-python/pypy/files/, dev-python/pypy/
@ 2019-02-16 15:08 Michał Górny
  0 siblings, 0 replies; 16+ messages in thread
From: Michał Górny @ 2019-02-16 15:08 UTC (permalink / raw
  To: gentoo-commits

commit:     4c0261d9ad80c7ffbb7c3cd82b06cbed86f5eb33
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 16 14:33:31 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Feb 16 15:08:21 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4c0261d9

dev-python/pypy: Restore Gentoo path patch

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

 dev-python/pypy/files/7.0.0-gentoo-path.patch      | 52 ++++++++++++++++++++++
 .../{pypy-7.0.0.ebuild => pypy-7.0.0-r1.ebuild}    |  4 ++
 dev-python/pypy/pypy-9999.ebuild                   |  4 ++
 3 files changed, 60 insertions(+)

diff --git a/dev-python/pypy/files/7.0.0-gentoo-path.patch b/dev-python/pypy/files/7.0.0-gentoo-path.patch
new file mode 100644
index 00000000000..9be52cd0b75
--- /dev/null
+++ b/dev-python/pypy/files/7.0.0-gentoo-path.patch
@@ -0,0 +1,52 @@
+From 959e2aafbe6cabd4e6860f842bce9b8644f627ca Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Fri, 27 Nov 2015 17:02:42 +0100
+Subject: [PATCH] Gentoo: override paths for system-wide install based on
+ sys.prefix
+
+Override all default distutils install paths to ones suitable for
+system-wide install when sys.prefix indicates we're running the Gentoo
+system-wide install of PyPy with no prefix overrides (e.g. virtualenv).
+
+Fixes: https://bugs.gentoo.org/462306
+Fixes: https://bugs.gentoo.org/465546
+
+[updated for 7.0.0]
+---
+ lib-python/2.7/distutils/command/install.py | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/lib-python/2.7/distutils/command/install.py b/lib-python/2.7/distutils/command/install.py
+index fc43951da0..c2564188cb 100644
+--- a/lib-python/2.7/distutils/command/install.py
++++ b/lib-python/2.7/distutils/command/install.py
+@@ -90,6 +90,13 @@ INSTALL_SCHEMES = {
+         'scripts': '$base/bin',
+         'data'   : '$base',
+         },
++    'gentoo': {
++        'purelib': '$base/site-packages',
++        'platlib': '$base/site-packages',
++        'headers': '$base/include',
++        'scripts': '@EPREFIX@/usr/bin',
++        'data'   : '@EPREFIX@/usr',
++        },
+     }
+ 
+ # The keys to an installation scheme; if any new types of files are to be
+@@ -476,7 +483,11 @@ class install (Command):
+         # it's the caller's problem if they supply a bad name!
+         if (hasattr(sys, 'pypy_version_info') and
+             not name.endswith(('_user', '_home'))):
+-            name = 'pypy'
++            if self.install_base == os.path.normpath('@EPREFIX@/usr/lib/pypy2.7'):
++                # override paths for system-wide install
++                name = 'gentoo'
++            else:
++                name = 'pypy'
+         scheme = INSTALL_SCHEMES[name]
+         for key in SCHEME_KEYS:
+             attrname = 'install_' + key
+-- 
+2.21.0.rc1
+

diff --git a/dev-python/pypy/pypy-7.0.0.ebuild b/dev-python/pypy/pypy-7.0.0-r1.ebuild
similarity index 98%
rename from dev-python/pypy/pypy-7.0.0.ebuild
rename to dev-python/pypy/pypy-7.0.0-r1.ebuild
index b3575616959..7a956b9f4a0 100644
--- a/dev-python/pypy/pypy-7.0.0.ebuild
+++ b/dev-python/pypy/pypy-7.0.0-r1.ebuild
@@ -99,9 +99,13 @@ pkg_setup() {
 }
 
 src_prepare() {
+	eapply "${FILESDIR}/7.0.0-gentoo-path.patch"
 	eapply "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
 	eapply "${FILESDIR}"/5.9.0-shared-lib.patch	# 517002
 
+	sed -e "s^@EPREFIX@^${EPREFIX}^" \
+		-i lib-python/2.7/distutils/command/install.py || die
+
 	# apply CPython stdlib patches
 	pushd lib-python/2.7 > /dev/null || die
 	# TODO: cpy turkish locale patch now fixes C code

diff --git a/dev-python/pypy/pypy-9999.ebuild b/dev-python/pypy/pypy-9999.ebuild
index 762e9c5e7e9..708273fc4d5 100644
--- a/dev-python/pypy/pypy-9999.ebuild
+++ b/dev-python/pypy/pypy-9999.ebuild
@@ -105,9 +105,13 @@ src_unpack() {
 }
 
 src_prepare() {
+	eapply "${FILESDIR}/7.0.0-gentoo-path.patch"
 	eapply "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
 	eapply "${FILESDIR}"/5.9.0-shared-lib.patch	# 517002
 
+	sed -e "s^@EPREFIX@^${EPREFIX}^" \
+		-i lib-python/2.7/distutils/command/install.py || die
+
 	# apply CPython stdlib patches
 	pushd lib-python/2.7 > /dev/null || die
 	# TODO: cpy turkish locale patch now fixes C code


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-python/pypy/files/, dev-python/pypy/
@ 2020-04-11  7:49 Michał Górny
  0 siblings, 0 replies; 16+ messages in thread
From: Michał Górny @ 2020-04-11  7:49 UTC (permalink / raw
  To: gentoo-commits

commit:     70ab8389753fa428ffd8c58f4d4f0f101227829c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 11 04:52:51 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Apr 11 07:49:03 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=70ab8389

dev-python/pypy: Bump to 7.3.1

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

 dev-python/pypy/Manifest                      |   1 +
 dev-python/pypy/files/7.3.1-gentoo-path.patch |  42 ++++++
 dev-python/pypy/pypy-7.3.1.ebuild             | 182 ++++++++++++++++++++++++++
 3 files changed, 225 insertions(+)

diff --git a/dev-python/pypy/Manifest b/dev-python/pypy/Manifest
index 1f70ebaafe4..213a5503a61 100644
--- a/dev-python/pypy/Manifest
+++ b/dev-python/pypy/Manifest
@@ -1,2 +1,3 @@
 DIST pypy2.7-v7.3.0-src.tar.bz2 20328540 BLAKE2B 7f71c98f436f11e8f4d248b6aeb3e2f81962cdeeaf3eb534473f1c6b5e8cd37d9abc047d7fa750a1ceeeaa63fab6eff6e5f1e60394b8104bbcd7e1fc47885c61 SHA512 05f039f090d837a72012db55f23d94da3f21c7458f18bd1e8ba632489248eb6486ced07b786d05e573abf2b3def2a68d96e7e1109e6d189d8e6c303c60ee3535
+DIST pypy2.7-v7.3.1-src.tar.bz2 21053306 BLAKE2B 071d59b7978c98e9ed9243d9a64d93d21b524351cb9a45e0f7d48828f919c84585a1164e7c38739fdd8828ab4b1eedade96dff7d64d0d9cbfe00c74d88d532bb SHA512 1bec44fa0fc4b1186e25f69303f9e332df32184be990d86fba41c40152664a93bd65eabf4dded133371271402cea9b150b60c13bce89d1004b276f0908c0b8f1
 DIST python-gentoo-patches-2.7.17-r1.tar.xz 14708 BLAKE2B f6e25236a471649de122d0f29506f7a4f34044a568ead47a68980411d9722b761fe1f9d653d5edccb6978b65c8c1eecbef55f403b94f32b37c0ad68e061505a8 SHA512 ecdde5e38c6fe5e69691fb3a68c8f4f43da7857d4abaff763d3cf6ad864ba43c769c03b186b60f2736a1ffb1e3e4c9982715d1b8a99ff3f5740096153bb8a90f

diff --git a/dev-python/pypy/files/7.3.1-gentoo-path.patch b/dev-python/pypy/files/7.3.1-gentoo-path.patch
new file mode 100644
index 00000000000..dd2c635055d
--- /dev/null
+++ b/dev-python/pypy/files/7.3.1-gentoo-path.patch
@@ -0,0 +1,42 @@
+From 6d439c6718625bb7dce32b0afdc6a3d5168a21e5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Sat, 11 Apr 2020 07:01:27 +0200
+Subject: [PATCH] Support Gentoo install scheme
+
+---
+ lib-python/2.7/distutils/command/install.py | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/lib-python/2.7/distutils/command/install.py b/lib-python/2.7/distutils/command/install.py
+index 6fe62be..a4e9f0d 100644
+--- a/lib-python/2.7/distutils/command/install.py
++++ b/lib-python/2.7/distutils/command/install.py
+@@ -97,6 +97,13 @@ INSTALL_SCHEMES = {
+         'scripts': '$base/Scripts',
+         'data'   : '$base',
+         },
++    'gentoo': {
++        'purelib': '$base/site-packages',
++        'platlib': '$base/site-packages',
++        'headers': '$base/include',
++        'scripts': '@EPREFIX@/usr/bin',
++        'data'   : '@EPREFIX@/usr',
++        },
+     }
+ 
+ # The keys to an installation scheme; if any new types of files are to be
+@@ -483,7 +490,10 @@ class install (Command):
+         # it's the caller's problem if they supply a bad name!
+         if (hasattr(sys, 'pypy_version_info') and
+                 not name.endswith(('_user', '_home'))):
+-            if os.name == 'nt':
++            if self.install_base == os.path.normpath('@EPREFIX@/usr/lib/pypy2.7'):
++                # override paths for system-wide install
++                name = 'gentoo'
++            elif os.name == 'nt':
+                 name = 'pypy_nt'
+             else:
+                 name = 'pypy'
+-- 
+2.26.0
+

diff --git a/dev-python/pypy/pypy-7.3.1.ebuild b/dev-python/pypy/pypy-7.3.1.ebuild
new file mode 100644
index 00000000000..e38b85a5caa
--- /dev/null
+++ b/dev-python/pypy/pypy-7.3.1.ebuild
@@ -0,0 +1,182 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit pax-utils python-utils-r1
+
+MY_P=pypy2.7-v${PV/_/}
+# note: remember to update this to newest dev-lang/python:2.7 on bump
+PATCHSET="python-gentoo-patches-2.7.17-r1"
+
+DESCRIPTION="A fast, compliant alternative implementation of the Python language"
+HOMEPAGE="https://pypy.org/"
+SRC_URI="https://bitbucket.org/pypy/pypy/downloads/${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 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="bzip2 gdbm +jit libressl ncurses sqlite tk"
+
+RDEPEND="
+	|| (
+		dev-python/pypy-exe:${PV}[bzip2?,ncurses?]
+		dev-python/pypy-exe-bin:${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() {
+	eapply "${FILESDIR}/7.3.1-gentoo-path.patch"
+	eapply "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
+
+	sed -e "s^@EPREFIX@^${EPREFIX}^" \
+		-i lib-python/2.7/distutils/command/install.py || die
+
+	# apply CPython stdlib patches
+	pushd lib-python/2.7 > /dev/null || die
+	# TODO: cpy turkish locale patch now fixes C code
+	# probably needs better port to pypy, if it is broken there
+	eapply "${FILESDIR}"/5.8.0_all_distutils_cxx.patch
+	eapply -p2 "${WORKDIR}/${PATCHSET}"/0010-use_pyxml.patch
+	popd > /dev/null || die
+
+	# this test relies on pypy-c hardcoding correct build time paths
+	sed -i -e 's:test_executable_without_cwd:_&:' \
+		lib-python/2.7/test/test_subprocess.py || die
+	# this one seems to rely on cpython gc handling (?)
+	sed -i -e 's:test_number_of_objects:_&:' \
+		lib-python/2.7/test/test_multiprocessing.py || die
+	# hardcoded assumptions (?)
+	sed -i -e 's:test_alpn_protocols:_&:' \
+		-e 's:test_default_ecdh_curve:_&:' \
+		lib-python/2.7/test/test_ssl.py || die
+	# requires Internet
+	sed -i -e '/class NetworkedTests/i@unittest.skip("Requires networking")' \
+		lib-python/2.7/test/test_ssl.py || die
+	# TODO: investigate (sandbox?)
+	sed -i -e 's:test__copy_to_each:_&:' \
+		lib-python/2.7/test/test_pty.py || die
+
+	eapply_user
+}
+
+src_compile() {
+	# copy over to make sys.prefix happy
+	cp -p "${BROOT}"/usr/lib/pypy2.7/pypy-c-${PV} pypy-c || die
+	cp -p "${BROOT}"/usr/lib/pypy2.7/include/${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 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
+		# no module named 'worker' -- a lot
+		--ignore=lib-python/2.7/test/test_xpickle.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-${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/${PV}/*; do
+		dosym "${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
+
+	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}"
+}


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-python/pypy/files/, dev-python/pypy/
@ 2020-06-30 18:50 Michał Górny
  0 siblings, 0 replies; 16+ messages in thread
From: Michał Górny @ 2020-06-30 18:50 UTC (permalink / raw
  To: gentoo-commits

commit:     f10ac590f28aec30526050e57b54893b1a4e4d7a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 30 16:09:07 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 30 18:50:21 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f10ac590

dev-python/pypy: fix headers install dir

Thanks to Tom Gillespie for preparing the fix for pypy3.

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

 dev-python/pypy/files/7.3.1-gentoo-path.patch               | 2 +-
 dev-python/pypy/{pypy-7.3.1.ebuild => pypy-7.3.1-r1.ebuild} | 0
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/dev-python/pypy/files/7.3.1-gentoo-path.patch b/dev-python/pypy/files/7.3.1-gentoo-path.patch
index dd2c635055d..5281781865a 100644
--- a/dev-python/pypy/files/7.3.1-gentoo-path.patch
+++ b/dev-python/pypy/files/7.3.1-gentoo-path.patch
@@ -18,7 +18,7 @@ index 6fe62be..a4e9f0d 100644
 +    'gentoo': {
 +        'purelib': '$base/site-packages',
 +        'platlib': '$base/site-packages',
-+        'headers': '$base/include',
++        'headers': '$base/include/$dist_name',
 +        'scripts': '@EPREFIX@/usr/bin',
 +        'data'   : '@EPREFIX@/usr',
 +        },

diff --git a/dev-python/pypy/pypy-7.3.1.ebuild b/dev-python/pypy/pypy-7.3.1-r1.ebuild
similarity index 100%
rename from dev-python/pypy/pypy-7.3.1.ebuild
rename to dev-python/pypy/pypy-7.3.1-r1.ebuild


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-python/pypy/files/, dev-python/pypy/
@ 2020-08-02  9:35 Michał Górny
  0 siblings, 0 replies; 16+ messages in thread
From: Michał Górny @ 2020-08-02  9:35 UTC (permalink / raw
  To: gentoo-commits

commit:     142555b7efeff4b8da9297ab20a0b91728b1ad51
Author:     Tom Gillespie <tgbugs <AT> gmail <DOT> com>
AuthorDate: Sun Aug  2 08:37:07 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Aug  2 09:34:57 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=142555b7

dev-python/pypy: fix gentoo-path.patch and rev bump

Signed-off-by: Tom Gillespie <tgbugs <AT> gmail.com>
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/pypy/files/7.3.1-gentoo-path.patch                  | 2 +-
 dev-python/pypy/{pypy-7.3.1-r1.ebuild => pypy-7.3.1-r2.ebuild} | 0
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/dev-python/pypy/files/7.3.1-gentoo-path.patch b/dev-python/pypy/files/7.3.1-gentoo-path.patch
index 5281781865a..74ca86a84ac 100644
--- a/dev-python/pypy/files/7.3.1-gentoo-path.patch
+++ b/dev-python/pypy/files/7.3.1-gentoo-path.patch
@@ -30,7 +30,7 @@ index 6fe62be..a4e9f0d 100644
          if (hasattr(sys, 'pypy_version_info') and
                  not name.endswith(('_user', '_home'))):
 -            if os.name == 'nt':
-+            if self.install_base == os.path.normpath('@EPREFIX@/usr/lib/pypy2.7'):
++            if self.install_base.startswith(os.path.normpath('@EPREFIX@/usr/lib/pypy')):
 +                # override paths for system-wide install
 +                name = 'gentoo'
 +            elif os.name == 'nt':

diff --git a/dev-python/pypy/pypy-7.3.1-r1.ebuild b/dev-python/pypy/pypy-7.3.1-r2.ebuild
similarity index 100%
rename from dev-python/pypy/pypy-7.3.1-r1.ebuild
rename to dev-python/pypy/pypy-7.3.1-r2.ebuild


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-python/pypy/files/, dev-python/pypy/
@ 2020-09-17 16:56 Michał Górny
  0 siblings, 0 replies; 16+ messages in thread
From: Michał Górny @ 2020-09-17 16:56 UTC (permalink / raw
  To: gentoo-commits

commit:     b4345cc2eb063ba1a09a0d056d2d5ae6070478b3
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Sep 17 14:00:09 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Sep 17 16:56:13 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b4345cc2

dev-python/pypy: Remove old

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

 dev-python/pypy/Manifest                      |   2 -
 dev-python/pypy/files/7.0.0-gentoo-path.patch |  52 --------
 dev-python/pypy/pypy-7.3.0.ebuild             | 182 --------------------------
 dev-python/pypy/pypy-7.3.2_rc1.ebuild         | 173 ------------------------
 4 files changed, 409 deletions(-)

diff --git a/dev-python/pypy/Manifest b/dev-python/pypy/Manifest
index 8e381e016a8..6c73fdd1956 100644
--- a/dev-python/pypy/Manifest
+++ b/dev-python/pypy/Manifest
@@ -1,6 +1,4 @@
-DIST pypy2.7-v7.3.0-src.tar.bz2 20328540 BLAKE2B 7f71c98f436f11e8f4d248b6aeb3e2f81962cdeeaf3eb534473f1c6b5e8cd37d9abc047d7fa750a1ceeeaa63fab6eff6e5f1e60394b8104bbcd7e1fc47885c61 SHA512 05f039f090d837a72012db55f23d94da3f21c7458f18bd1e8ba632489248eb6486ced07b786d05e573abf2b3def2a68d96e7e1109e6d189d8e6c303c60ee3535
 DIST pypy2.7-v7.3.1-src.tar.bz2 21053306 BLAKE2B 071d59b7978c98e9ed9243d9a64d93d21b524351cb9a45e0f7d48828f919c84585a1164e7c38739fdd8828ab4b1eedade96dff7d64d0d9cbfe00c74d88d532bb SHA512 1bec44fa0fc4b1186e25f69303f9e332df32184be990d86fba41c40152664a93bd65eabf4dded133371271402cea9b150b60c13bce89d1004b276f0908c0b8f1
-DIST pypy2.7-v7.3.2rc1-src.tar.bz2 21136151 BLAKE2B 50a2fb407624f3831095af9a1859399a39be039e54673a2f015049071cbf128302567f6fd7423bbdf757f46b9f32a09c0ba09985ce046731893f4d1563416050 SHA512 09b0aa48e5d09d87b592d6a5cfa3c7d3e2c93898b8250c31cfae99c44c79c41f05ac1d4b400d82d610e4e56dedacdd97c51b89308ea3a38f6ded8eda0779a08b
 DIST pypy2.7-v7.3.2rc2-src.tar.bz2 21145693 BLAKE2B e722111435f81d00ecb5cec83e78e17676a042703fe83c049456fa6e5debdb1c09cc3f1fd71bcd8a8469da373a7c8131c252b3f139959a442f4cfa2b7f202c6f SHA512 ba7cccdaff1616ad0090cb0942ad35eda025a758be4d6b4e978bce19fb8cb8840136297fb924127a7e99f02c09665bde7eaf714e1744b9b32612973355459ad4
 DIST python-gentoo-patches-2.7.17-r1.tar.xz 14708 BLAKE2B f6e25236a471649de122d0f29506f7a4f34044a568ead47a68980411d9722b761fe1f9d653d5edccb6978b65c8c1eecbef55f403b94f32b37c0ad68e061505a8 SHA512 ecdde5e38c6fe5e69691fb3a68c8f4f43da7857d4abaff763d3cf6ad864ba43c769c03b186b60f2736a1ffb1e3e4c9982715d1b8a99ff3f5740096153bb8a90f
 DIST python-gentoo-patches-2.7.18-r1.tar.xz 15500 BLAKE2B 7008b29827dbbd80d4ab8f010ccf9efced99c6b4b9109e4430c0ba269ce53529cb6fedd832502c8d2d3aa21938749cc3591c2545b21c0a59a6e60f8598e84ccc SHA512 e656ab07281fd932b92165674619bbf55ecf410d2937ae4ae771d490b4532540498cc731d30d19c1e8aafd1f64df8a406bbfbb46ea985b3dcd8edb89a0b7f20f

diff --git a/dev-python/pypy/files/7.0.0-gentoo-path.patch b/dev-python/pypy/files/7.0.0-gentoo-path.patch
deleted file mode 100644
index 9be52cd0b75..00000000000
--- a/dev-python/pypy/files/7.0.0-gentoo-path.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 959e2aafbe6cabd4e6860f842bce9b8644f627ca Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
-Date: Fri, 27 Nov 2015 17:02:42 +0100
-Subject: [PATCH] Gentoo: override paths for system-wide install based on
- sys.prefix
-
-Override all default distutils install paths to ones suitable for
-system-wide install when sys.prefix indicates we're running the Gentoo
-system-wide install of PyPy with no prefix overrides (e.g. virtualenv).
-
-Fixes: https://bugs.gentoo.org/462306
-Fixes: https://bugs.gentoo.org/465546
-
-[updated for 7.0.0]
----
- lib-python/2.7/distutils/command/install.py | 13 ++++++++++++-
- 1 file changed, 12 insertions(+), 1 deletion(-)
-
-diff --git a/lib-python/2.7/distutils/command/install.py b/lib-python/2.7/distutils/command/install.py
-index fc43951da0..c2564188cb 100644
---- a/lib-python/2.7/distutils/command/install.py
-+++ b/lib-python/2.7/distutils/command/install.py
-@@ -90,6 +90,13 @@ INSTALL_SCHEMES = {
-         'scripts': '$base/bin',
-         'data'   : '$base',
-         },
-+    'gentoo': {
-+        'purelib': '$base/site-packages',
-+        'platlib': '$base/site-packages',
-+        'headers': '$base/include',
-+        'scripts': '@EPREFIX@/usr/bin',
-+        'data'   : '@EPREFIX@/usr',
-+        },
-     }
- 
- # The keys to an installation scheme; if any new types of files are to be
-@@ -476,7 +483,11 @@ class install (Command):
-         # it's the caller's problem if they supply a bad name!
-         if (hasattr(sys, 'pypy_version_info') and
-             not name.endswith(('_user', '_home'))):
--            name = 'pypy'
-+            if self.install_base == os.path.normpath('@EPREFIX@/usr/lib/pypy2.7'):
-+                # override paths for system-wide install
-+                name = 'gentoo'
-+            else:
-+                name = 'pypy'
-         scheme = INSTALL_SCHEMES[name]
-         for key in SCHEME_KEYS:
-             attrname = 'install_' + key
--- 
-2.21.0.rc1
-

diff --git a/dev-python/pypy/pypy-7.3.0.ebuild b/dev-python/pypy/pypy-7.3.0.ebuild
deleted file mode 100644
index d39cd6b286b..00000000000
--- a/dev-python/pypy/pypy-7.3.0.ebuild
+++ /dev/null
@@ -1,182 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit pax-utils python-utils-r1
-
-MY_P=pypy2.7-v${PV/_/}
-# note: remember to update this to newest dev-lang/python:2.7 on bump
-PATCHSET="python-gentoo-patches-2.7.17-r1"
-
-DESCRIPTION="A fast, compliant alternative implementation of the Python language"
-HOMEPAGE="https://pypy.org/"
-SRC_URI="https://downloads.python.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 ~ppc64 x86 ~amd64-linux ~x86-linux"
-IUSE="bzip2 gdbm +jit libressl ncurses sqlite tk"
-
-RDEPEND="
-	|| (
-		dev-python/pypy-exe:${PV}[bzip2?,ncurses?]
-		dev-python/pypy-exe-bin:${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() {
-	eapply "${FILESDIR}/7.0.0-gentoo-path.patch"
-	eapply "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
-
-	sed -e "s^@EPREFIX@^${EPREFIX}^" \
-		-i lib-python/2.7/distutils/command/install.py || die
-
-	# apply CPython stdlib patches
-	pushd lib-python/2.7 > /dev/null || die
-	# TODO: cpy turkish locale patch now fixes C code
-	# probably needs better port to pypy, if it is broken there
-	eapply "${FILESDIR}"/5.8.0_all_distutils_cxx.patch
-	eapply -p2 "${WORKDIR}/${PATCHSET}"/0010-use_pyxml.patch
-	popd > /dev/null || die
-
-	# this test relies on pypy-c hardcoding correct build time paths
-	sed -i -e 's:test_executable_without_cwd:_&:' \
-		lib-python/2.7/test/test_subprocess.py || die
-	# this one seems to rely on cpython gc handling (?)
-	sed -i -e 's:test_number_of_objects:_&:' \
-		lib-python/2.7/test/test_multiprocessing.py || die
-	# hardcoded assumptions (?)
-	sed -i -e 's:test_alpn_protocols:_&:' \
-		-e 's:test_default_ecdh_curve:_&:' \
-		lib-python/2.7/test/test_ssl.py || die
-	# requires Internet
-	sed -i -e '/class NetworkedTests/i@unittest.skip("Requires networking")' \
-		lib-python/2.7/test/test_ssl.py || die
-	# TODO: investigate (sandbox?)
-	sed -i -e 's:test__copy_to_each:_&:' \
-		lib-python/2.7/test/test_pty.py || die
-
-	eapply_user
-}
-
-src_compile() {
-	# copy over to make sys.prefix happy
-	cp -p "${BROOT}"/usr/lib/pypy2.7/pypy-c-${PV} pypy-c || die
-	cp -p "${BROOT}"/usr/lib/pypy2.7/include/${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 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
-		# no module named 'worker' -- a lot
-		--ignore=lib-python/2.7/test/test_xpickle.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-${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/${PV}/*; do
-		dosym "${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
-
-	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}"
-}

diff --git a/dev-python/pypy/pypy-7.3.2_rc1.ebuild b/dev-python/pypy/pypy-7.3.2_rc1.ebuild
deleted file mode 100644
index 1d0ad929c04..00000000000
--- a/dev-python/pypy/pypy-7.3.2_rc1.ebuild
+++ /dev/null
@@ -1,173 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit pax-utils python-utils-r1
-
-MY_P=pypy2.7-v${PV/_/}
-# note: remember to update this to newest dev-lang/python:2.7 on bump
-PATCHSET="python-gentoo-patches-2.7.18-r1"
-
-DESCRIPTION="A fast, compliant alternative implementation of the Python language"
-HOMEPAGE="https://pypy.org/"
-SRC_URI="https://downloads.python.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 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="bzip2 gdbm +jit libressl ncurses sqlite tk"
-
-RDEPEND="
-	|| (
-		dev-python/pypy-exe:${PV}[bzip2?,ncurses?]
-		dev-python/pypy-exe-bin:${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() {
-	eapply "${FILESDIR}/7.3.1-gentoo-path.patch"
-	eapply "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
-
-	sed -e "s^@EPREFIX@^${EPREFIX}^" \
-		-i lib-python/2.7/distutils/command/install.py || die
-
-	# apply CPython stdlib patches
-	pushd lib-python/2.7 > /dev/null || die
-	# TODO: cpy turkish locale patch now fixes C code
-	# probably needs better port to pypy, if it is broken there
-	eapply "${FILESDIR}"/5.8.0_all_distutils_cxx.patch
-	eapply -p2 "${WORKDIR}/${PATCHSET}"/0010-use_pyxml.patch
-	eapply -p2 "${WORKDIR}/${PATCHSET}"/0017-bpo-39017-Avoid-infinite-loop-in-the-tarfile-module-.patch
-	popd > /dev/null || die
-
-	# this test relies on pypy-c hardcoding correct build time paths
-	sed -i -e 's:test_executable_without_cwd:_&:' \
-		lib-python/2.7/test/test_subprocess.py || die
-	# requires Internet
-	sed -i -e '/class NetworkedTests/i@unittest.skip("Requires networking")' \
-		lib-python/2.7/test/test_ssl.py || die
-
-	eapply_user
-}
-
-src_compile() {
-	# copy over to make sys.prefix happy
-	cp -p "${BROOT}"/usr/lib/pypy2.7/pypy-c-${PV} pypy-c || die
-	cp -p "${BROOT}"/usr/lib/pypy2.7/include/${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 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
-		# no module named 'worker' -- a lot
-		--ignore=lib-python/2.7/test/test_xpickle.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-${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/${PV}/*; do
-		dosym "${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
-
-	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}"
-}


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-python/pypy/files/, dev-python/pypy/
@ 2020-11-13  9:02 Michał Górny
  0 siblings, 0 replies; 16+ messages in thread
From: Michał Górny @ 2020-11-13  9:02 UTC (permalink / raw
  To: gentoo-commits

commit:     4a809e01b3ac5e8c7a0e8ac0dd23850530e84dd2
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Nov 12 23:55:31 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Nov 13 09:02:14 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4a809e01

dev-python/pypy: Bump to 7.3.3rc1

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

 dev-python/pypy/Manifest                        |   1 +
 dev-python/pypy/files/7.3.3-distutils-cxx.patch | 387 ++++++++++++++++++++++++
 dev-python/pypy/pypy-7.3.3_rc1.ebuild           | 176 +++++++++++
 3 files changed, 564 insertions(+)

diff --git a/dev-python/pypy/Manifest b/dev-python/pypy/Manifest
index 0030cac3508..72d575304bd 100644
--- a/dev-python/pypy/Manifest
+++ b/dev-python/pypy/Manifest
@@ -1,4 +1,5 @@
 DIST pypy2.7-v7.3.1-src.tar.bz2 21053306 BLAKE2B 071d59b7978c98e9ed9243d9a64d93d21b524351cb9a45e0f7d48828f919c84585a1164e7c38739fdd8828ab4b1eedade96dff7d64d0d9cbfe00c74d88d532bb SHA512 1bec44fa0fc4b1186e25f69303f9e332df32184be990d86fba41c40152664a93bd65eabf4dded133371271402cea9b150b60c13bce89d1004b276f0908c0b8f1
 DIST pypy2.7-v7.3.2-src.tar.bz2 21142873 BLAKE2B e6bcd2dc28ef740962d053753ccd172e3895fc83fe23a319c003248e0986f9805839daddd13a0f480f1e9ee813979742699cb0bc8c42b6b05c193fedf67aea4f SHA512 b40d93d615a27e3a035007307a8ab2b49ff90f3047af914b268a80feb8219d372eca14c04a8b0dea91efb992653457b7c6d088c784de32c414cc48879f2d15fc
+DIST pypy2.7-v7.3.3rc1-src.tar.bz2 20933100 BLAKE2B afbf3c15924e6a215b6323fe97e9782912f09ba1e1db6652b37897ead07deaaa97f591a91f3695e958e8e2dee2626bbda94c4043c025b3f52a12279dc66e483c SHA512 0ddbdcf7ef825888ff748ebdd84cb501653e3a4a0e506e35810f9693b5d3b388c2f636396616f0c8fcc96dc806fa02d74830c1f37ca11fdcfdfd32c3bcd1fdd0
 DIST python-gentoo-patches-2.7.17-r1.tar.xz 14708 BLAKE2B f6e25236a471649de122d0f29506f7a4f34044a568ead47a68980411d9722b761fe1f9d653d5edccb6978b65c8c1eecbef55f403b94f32b37c0ad68e061505a8 SHA512 ecdde5e38c6fe5e69691fb3a68c8f4f43da7857d4abaff763d3cf6ad864ba43c769c03b186b60f2736a1ffb1e3e4c9982715d1b8a99ff3f5740096153bb8a90f
 DIST python-gentoo-patches-2.7.18-r1.tar.xz 15500 BLAKE2B 7008b29827dbbd80d4ab8f010ccf9efced99c6b4b9109e4430c0ba269ce53529cb6fedd832502c8d2d3aa21938749cc3591c2545b21c0a59a6e60f8598e84ccc SHA512 e656ab07281fd932b92165674619bbf55ecf410d2937ae4ae771d490b4532540498cc731d30d19c1e8aafd1f64df8a406bbfbb46ea985b3dcd8edb89a0b7f20f

diff --git a/dev-python/pypy/files/7.3.3-distutils-cxx.patch b/dev-python/pypy/files/7.3.3-distutils-cxx.patch
new file mode 100644
index 00000000000..d5939d7417f
--- /dev/null
+++ b/dev-python/pypy/files/7.3.3-distutils-cxx.patch
@@ -0,0 +1,387 @@
+From 5ca45626481778f12654cd2ea8c45b5eeb2363c6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Fri, 13 Nov 2020 01:02:28 +0100
+Subject: [PATCH] Fancy patch for distutils C++ support, rebased for
+ pypy7.3.3rc1
+
+---
+ lib-python/2.7/_osx_support.py                | 10 ++--
+ lib-python/2.7/distutils/cygwinccompiler.py   | 21 ++++++-
+ lib-python/2.7/distutils/emxccompiler.py      | 14 ++++-
+ lib-python/2.7/distutils/sysconfig_cpython.py | 26 +++++++--
+ lib-python/2.7/distutils/sysconfig_pypy.py    | 37 ++++++++++---
+ lib-python/2.7/distutils/unixccompiler.py     | 55 ++++++++++---------
+ 6 files changed, 112 insertions(+), 51 deletions(-)
+
+diff --git a/lib-python/2.7/_osx_support.py b/lib-python/2.7/_osx_support.py
+index d2aaae7..8bcdb05 100644
+--- a/lib-python/2.7/_osx_support.py
++++ b/lib-python/2.7/_osx_support.py
+@@ -14,13 +14,13 @@ __all__ = [
+ # configuration variables that may contain universal build flags,
+ # like "-arch" or "-isdkroot", that may need customization for
+ # the user environment
+-_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS', 'BASECFLAGS',
+-                            'BLDSHARED', 'LDSHARED', 'CC', 'CXX',
+-                            'PY_CFLAGS', 'PY_LDFLAGS', 'PY_CPPFLAGS',
+-                            'PY_CORE_CFLAGS')
++_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CPPFLAGS',
++                          'BASECFLAGS', 'BLDSHARED', 'LDSHARED', 'LDCXXSHARED',
++                          'CC', 'CXX', 'PY_CFLAGS', 'PY_LDFLAGS',
++                          'PY_CPPFLAGS', 'PY_CORE_CFLAGS')
+ 
+ # configuration variables that may contain compiler calls
+-_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'CC', 'CXX')
++_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'LDCXXSHARED', 'CC', 'CXX')
+ 
+ # prefix added to original configuration variable names
+ _INITPRE = '_OSX_SUPPORT_INITIAL_'
+diff --git a/lib-python/2.7/distutils/cygwinccompiler.py b/lib-python/2.7/distutils/cygwinccompiler.py
+index 767400c..7133097 100644
+--- a/lib-python/2.7/distutils/cygwinccompiler.py
++++ b/lib-python/2.7/distutils/cygwinccompiler.py
+@@ -120,8 +120,10 @@ class CygwinCCompiler (UnixCCompiler):
+         # dllwrap 2.10.90 is buggy
+         if self.ld_version >= "2.10.90":
+             self.linker_dll = "gcc"
++            self.linker_dll_cxx = "g++"
+         else:
+             self.linker_dll = "dllwrap"
++            self.linker_dll_cxx = "dllwrap"
+ 
+         # ld_version >= "2.13" support -shared so use it instead of
+         # -mdll -static
+@@ -135,9 +137,13 @@ class CygwinCCompiler (UnixCCompiler):
+         self.set_executables(compiler='gcc -mcygwin -O -Wall',
+                              compiler_so='gcc -mcygwin -mdll -O -Wall',
+                              compiler_cxx='g++ -mcygwin -O -Wall',
++                             compiler_so_cxx='g++ -mcygwin -mdll -O -Wall',
+                              linker_exe='gcc -mcygwin',
+                              linker_so=('%s -mcygwin %s' %
+-                                        (self.linker_dll, shared_option)))
++                                        (self.linker_dll, shared_option)),
++                             linker_exe_cxx='g++ -mcygwin',
++                             linker_so_cxx=('%s -mcygwin %s' %
++                                            (self.linker_dll_cxx, shared_option)))
+ 
+         # cygwin and mingw32 need different sets of libraries
+         if self.gcc_version == "2.91.57":
+@@ -163,8 +169,12 @@ class CygwinCCompiler (UnixCCompiler):
+                 raise CompileError, msg
+         else: # for other files use the C-compiler
+             try:
+-                self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
+-                           extra_postargs)
++                if self.detect_language(src) == 'c++':
++                    self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
++                               extra_postargs)
++                else:
++                    self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
++                               extra_postargs)
+             except DistutilsExecError, msg:
+                 raise CompileError, msg
+ 
+@@ -330,9 +340,14 @@ class Mingw32CCompiler (CygwinCCompiler):
+         self.set_executables(compiler='gcc%s -O -Wall' % no_cygwin,
+                              compiler_so='gcc%s -mdll -O -Wall' % no_cygwin,
+                              compiler_cxx='g++%s -O -Wall' % no_cygwin,
++                             compiler_so_cxx='g++%s -mdll -O -Wall' % no_cygwin,
+                              linker_exe='gcc%s' % no_cygwin,
+                              linker_so='%s%s %s %s'
+                                     % (self.linker_dll, no_cygwin,
++                                       shared_option, entry_point),
++                             linker_exe_cxx='g++%s' % no_cygwin,
++                             linker_so_cxx='%s%s %s %s'
++                                    % (self.linker_dll_cxx, no_cygwin,
+                                        shared_option, entry_point))
+         # Maybe we should also append -mthreads, but then the finished
+         # dlls need another dll (mingwm10.dll see Mingw32 docs)
+diff --git a/lib-python/2.7/distutils/emxccompiler.py b/lib-python/2.7/distutils/emxccompiler.py
+index a017205..bdc532c 100644
+--- a/lib-python/2.7/distutils/emxccompiler.py
++++ b/lib-python/2.7/distutils/emxccompiler.py
+@@ -65,8 +65,12 @@ class EMXCCompiler (UnixCCompiler):
+         # XXX optimization, warnings etc. should be customizable.
+         self.set_executables(compiler='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
+                              compiler_so='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
++                             compiler_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
++                             compiler_so_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
+                              linker_exe='gcc -Zomf -Zmt -Zcrtdll',
+-                             linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll')
++                             linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll',
++                             linker_exe_cxx='g++ -Zomf -Zmt -Zcrtdll',
++                             linker_so_cxx='g++ -Zomf -Zmt -Zcrtdll -Zdll')
+ 
+         # want the gcc library statically linked (so that we don't have
+         # to distribute a version dependent on the compiler we have)
+@@ -83,8 +87,12 @@ class EMXCCompiler (UnixCCompiler):
+                 raise CompileError, msg
+         else: # for other files use the C-compiler
+             try:
+-                self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
+-                           extra_postargs)
++                if self.detect_language(src) == 'c++':
++                    self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
++                               extra_postargs)
++                else:
++                    self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
++                               extra_postargs)
+             except DistutilsExecError, msg:
+                 raise CompileError, msg
+ 
+diff --git a/lib-python/2.7/distutils/sysconfig_cpython.py b/lib-python/2.7/distutils/sysconfig_cpython.py
+index 6a14f70..2cce5bc 100644
+--- a/lib-python/2.7/distutils/sysconfig_cpython.py
++++ b/lib-python/2.7/distutils/sysconfig_cpython.py
+@@ -181,10 +181,12 @@ def customize_compiler(compiler):
+                 _osx_support.customize_compiler(_config_vars)
+                 _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
+ 
+-        (cc, cxx, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
+-            get_config_vars('CC', 'CXX', 'CFLAGS',
+-                            'CCSHARED', 'LDSHARED', 'SO', 'AR',
+-                            'ARFLAGS')
++        (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \
++            get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED',
++                            'SO', 'AR', 'ARFLAGS')
++
++        cflags = ''
++        cxxflags = ''
+ 
+         if 'CC' in os.environ:
+             newcc = os.environ['CC']
+@@ -199,19 +201,27 @@ def customize_compiler(compiler):
+             cxx = os.environ['CXX']
+         if 'LDSHARED' in os.environ:
+             ldshared = os.environ['LDSHARED']
++        if 'LDCXXSHARED' in os.environ:
++            ldcxxshared = os.environ['LDCXXSHARED']
+         if 'CPP' in os.environ:
+             cpp = os.environ['CPP']
+         else:
+             cpp = cc + " -E"           # not always
+         if 'LDFLAGS' in os.environ:
+             ldshared = ldshared + ' ' + os.environ['LDFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
+         if 'CFLAGS' in os.environ:
+-            cflags = cflags + ' ' + os.environ['CFLAGS']
++            cflags = os.environ['CFLAGS']
+             ldshared = ldshared + ' ' + os.environ['CFLAGS']
++        if 'CXXFLAGS' in os.environ:
++            cxxflags = os.environ['CXXFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
+         if 'CPPFLAGS' in os.environ:
+             cpp = cpp + ' ' + os.environ['CPPFLAGS']
+             cflags = cflags + ' ' + os.environ['CPPFLAGS']
++            cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
+             ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
+         if 'AR' in os.environ:
+             ar = os.environ['AR']
+         if 'ARFLAGS' in os.environ:
+@@ -220,13 +230,17 @@ def customize_compiler(compiler):
+             archiver = ar + ' ' + ar_flags
+ 
+         cc_cmd = cc + ' ' + cflags
++        cxx_cmd = cxx + ' ' + cxxflags
+         compiler.set_executables(
+             preprocessor=cpp,
+             compiler=cc_cmd,
+             compiler_so=cc_cmd + ' ' + ccshared,
+-            compiler_cxx=cxx,
++            compiler_cxx=cxx_cmd,
++            compiler_so_cxx=cxx_cmd + ' ' + ccshared,
+             linker_so=ldshared,
+             linker_exe=cc,
++            linker_so_cxx=ldcxxshared,
++            linker_exe_cxx=cxx,
+             archiver=archiver)
+ 
+         compiler.shared_lib_extension = so_ext
+diff --git a/lib-python/2.7/distutils/sysconfig_pypy.py b/lib-python/2.7/distutils/sysconfig_pypy.py
+index ec9f5a3..192974d 100644
+--- a/lib-python/2.7/distutils/sysconfig_pypy.py
++++ b/lib-python/2.7/distutils/sysconfig_pypy.py
+@@ -67,6 +67,7 @@ def _init_posix():
+     g['CFLAGS'] = "-DNDEBUG -O2"
+     g['CCSHARED'] = "-fPIC"
+     g['LDSHARED'] = "cc -pthread -shared"
++    g['LDCXXSHARED'] = "c++ -pthread -shared"
+     g['SO'] = [s[0] for s in imp.get_suffixes() if s[2] == imp.C_EXTENSION][0]
+     g['AR'] = "ar"
+     g['ARFLAGS'] = "rc"
+@@ -85,6 +86,7 @@ def _init_posix():
+             # just a guess
+             arch = platform.machine()
+         g['LDSHARED'] += ' -undefined dynamic_lookup'
++        g['LDCXXSHARED'] += ' -undefined dynamic_lookup'
+         g['CC'] += ' -arch %s' % (arch,)
+         g['MACOSX_DEPLOYMENT_TARGET'] = '10.7'
+ 
+@@ -183,37 +185,52 @@ def customize_compiler(compiler):
+                 _osx_support.customize_compiler(_config_vars)
+                 _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
+ 
+-        (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
+-            get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
+-                            'CCSHARED', 'LDSHARED', 'SO', 'AR',
+-                            'ARFLAGS')
++        (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \
++            get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED',
++                            'SO', 'AR', 'ARFLAGS')
++
++        cflags = ''
++        cxxflags = ''
+ 
+         if 'CC' in os.environ:
+             newcc = os.environ['CC']
+-            if (sys.platform == 'darwin'
++            if (True
+                     and 'LDSHARED' not in os.environ
+                     and ldshared.startswith(cc)):
+                 # On OS X, if CC is overridden, use that as the default
+                 #       command for LDSHARED as well
++                # Gentoo: s/OS X/every system/
+                 ldshared = newcc + ldshared[len(cc):]
+             cc = newcc
+         if 'CXX' in os.environ:
+-            cxx = os.environ['CXX']
++            newcxx = os.environ['CXX']
++            if ('LDCXXSHARED' not in os.environ
++                    and ldcxxshared.startswith(cxx)):
++                ldcxxshared = newcxx + ldcxxshared[len(cxx):]
++            cxx = newcxx
+         if 'LDSHARED' in os.environ:
+             ldshared = os.environ['LDSHARED']
++        if 'LDCXXSHARED' in os.environ:
++            ldcxxshared = os.environ['LDCXXSHARED']
+         if 'CPP' in os.environ:
+             cpp = os.environ['CPP']
+         else:
+             cpp = cc + " -E"           # not always
+         if 'LDFLAGS' in os.environ:
+             ldshared = ldshared + ' ' + os.environ['LDFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
+         if 'CFLAGS' in os.environ:
+-            cflags = opt + ' ' + os.environ['CFLAGS']
++            cflags = os.environ['CFLAGS']
+             ldshared = ldshared + ' ' + os.environ['CFLAGS']
++        if 'CXXFLAGS' in os.environ:
++            cxxflags = os.environ['CXXFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
+         if 'CPPFLAGS' in os.environ:
+             cpp = cpp + ' ' + os.environ['CPPFLAGS']
+             cflags = cflags + ' ' + os.environ['CPPFLAGS']
++            cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
+             ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
++            ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
+         if 'AR' in os.environ:
+             ar = os.environ['AR']
+         if 'ARFLAGS' in os.environ:
+@@ -222,13 +239,17 @@ def customize_compiler(compiler):
+             archiver = ar + ' ' + ar_flags
+ 
+         cc_cmd = cc + ' ' + cflags
++        cxx_cmd = cxx + ' ' + cxxflags
+         compiler.set_executables(
+             preprocessor=cpp,
+             compiler=cc_cmd,
+             compiler_so=cc_cmd + ' ' + ccshared,
+-            compiler_cxx=cxx,
++            compiler_cxx=cxx_cmd,
++            compiler_so_cxx=cxx_cmd + ' ' + ccshared,
+             linker_so=ldshared,
+             linker_exe=cc,
++            linker_so_cxx=ldcxxshared,
++            linker_exe_cxx=cxx,
+             archiver=archiver)
+ 
+         compiler.shared_lib_extension = so_ext
+diff --git a/lib-python/2.7/distutils/unixccompiler.py b/lib-python/2.7/distutils/unixccompiler.py
+index 250ff12..7e64543 100644
+--- a/lib-python/2.7/distutils/unixccompiler.py
++++ b/lib-python/2.7/distutils/unixccompiler.py
+@@ -55,14 +55,17 @@ class UnixCCompiler(CCompiler):
+     # are pretty generic; they will probably have to be set by an outsider
+     # (eg. using information discovered by the sysconfig about building
+     # Python extensions).
+-    executables = {'preprocessor' : None,
+-                   'compiler'     : ["cc"],
+-                   'compiler_so'  : ["cc"],
+-                   'compiler_cxx' : ["c++"],  # pypy: changed, 'cc' is bogus
+-                   'linker_so'    : ["cc", "-shared"],
+-                   'linker_exe'   : ["cc"],
+-                   'archiver'     : ["ar", "-cr"],
+-                   'ranlib'       : None,
++    executables = {'preprocessor'    : None,
++                   'compiler'        : ["cc"],
++                   'compiler_so'     : ["cc"],
++                   'compiler_cxx'    : ["c++"],
++                   'compiler_so_cxx' : ["c++"],
++                   'linker_so'       : ["cc", "-shared"],
++                   'linker_exe'      : ["cc"],
++                   'linker_so_cxx'   : ["c++", "-shared"],
++                   'linker_exe_cxx'  : ["c++"],
++                   'archiver'        : ["ar", "-cr"],
++                   'ranlib'          : None,
+                   }
+ 
+     if sys.platform[:6] == "darwin":
+@@ -129,12 +132,19 @@ class UnixCCompiler(CCompiler):
+ 
+     def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
+         compiler_so = self.compiler_so
++        compiler_so_cxx = self.compiler_so_cxx
+         if sys.platform == 'darwin':
+             compiler_so = _osx_support.compiler_fixup(compiler_so,
+                                                     cc_args + extra_postargs)
++            compiler_so_cxx = _osx_support.compiler_fixup(compiler_so_cxx,
++                                                    cc_args + extra_postargs)
+         try:
+-            self.spawn(compiler_so + cc_args + [src, '-o', obj] +
+-                       extra_postargs)
++            if self.detect_language(src) == 'c++':
++                self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] +
++                           extra_postargs)
++            else:
++                self.spawn(compiler_so + cc_args + [src, '-o', obj] +
++                           extra_postargs)
+         except DistutilsExecError, msg:
+             raise CompileError, msg
+ 
+@@ -191,23 +201,16 @@ class UnixCCompiler(CCompiler):
+                 ld_args.extend(extra_postargs)
+             self.mkpath(os.path.dirname(output_filename))
+             try:
+-                if target_desc == CCompiler.EXECUTABLE:
+-                    linker = self.linker_exe[:]
++                if target_lang == "c++":
++                    if target_desc == CCompiler.EXECUTABLE:
++                        linker = self.linker_exe_cxx[:]
++                    else:
++                        linker = self.linker_so_cxx[:]
+                 else:
+-                    linker = self.linker_so[:]
+-                if target_lang == "c++" and self.compiler_cxx:
+-                    # skip over environment variable settings if /usr/bin/env
+-                    # is used to set up the linker's environment.
+-                    # This is needed on OSX. Note: this assumes that the
+-                    # normal and C++ compiler have the same environment
+-                    # settings.
+-                    i = 0
+-                    if os.path.basename(linker[0]) == "env":
+-                        i = 1
+-                        while '=' in linker[i]:
+-                            i = i + 1
+-
+-                    linker[i] = self.compiler_cxx[i]
++                    if target_desc == CCompiler.EXECUTABLE:
++                        linker = self.linker_exe[:]
++                    else:
++                        linker = self.linker_so[:]
+ 
+                 if sys.platform == 'darwin':
+                     linker = _osx_support.compiler_fixup(linker, ld_args)
+-- 
+2.29.2
+

diff --git a/dev-python/pypy/pypy-7.3.3_rc1.ebuild b/dev-python/pypy/pypy-7.3.3_rc1.ebuild
new file mode 100644
index 00000000000..74c92f4c682
--- /dev/null
+++ b/dev-python/pypy/pypy-7.3.3_rc1.ebuild
@@ -0,0 +1,176 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit pax-utils python-utils-r1
+
+MY_P=pypy2.7-v${PV/_/}
+# note: remember to update this to newest dev-lang/python:2.7 on bump
+PATCHSET="python-gentoo-patches-2.7.18-r1"
+
+DESCRIPTION="A fast, compliant alternative implementation of the Python language"
+HOMEPAGE="https://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=""
+IUSE="bzip2 gdbm +jit libressl ncurses sqlite tk"
+
+RDEPEND="
+	|| (
+		dev-python/pypy-exe:${PV}[bzip2?,ncurses?]
+		dev-python/pypy-exe-bin:${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() {
+	eapply "${FILESDIR}/7.3.1-gentoo-path.patch"
+	eapply "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
+	eapply "${FILESDIR}/7.3.3-distutils-cxx.patch"
+
+	sed -e "s^@EPREFIX@^${EPREFIX}^" \
+		-i lib-python/2.7/distutils/command/install.py || die
+
+	# apply CPython stdlib patches
+	pushd lib-python/2.7 > /dev/null || die
+	# TODO: cpy turkish locale patch now fixes C code
+	# probably needs better port to pypy, if it is broken there
+	eapply -p2 "${WORKDIR}/${PATCHSET}"/0010-use_pyxml.patch
+	popd > /dev/null || die
+
+	# this test relies on pypy-c hardcoding correct build time paths
+	sed -i -e 's:test_executable_without_cwd:_&:' \
+		lib-python/2.7/test/test_subprocess.py || die
+	# requires Internet
+	sed -i -e '/class NetworkedTests/i@unittest.skip("Requires networking")' \
+		lib-python/2.7/test/test_ssl.py || die
+
+	eapply_user
+}
+
+src_compile() {
+	# copy over to make sys.prefix happy
+	cp -p "${BROOT}"/usr/lib/pypy2.7/pypy-c-${PV} pypy-c || die
+	cp -p "${BROOT}"/usr/lib/pypy2.7/include/${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-${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/${PV}/*; do
+		dosym "${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-${PV}
+	# temporarily copy to build tree to facilitate module builds
+	cp -p "${BROOT}${dest}/pypy-c-${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
+}


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-python/pypy/files/, dev-python/pypy/
@ 2021-01-09 21:59 Michał Górny
  0 siblings, 0 replies; 16+ messages in thread
From: Michał Górny @ 2021-01-09 21:59 UTC (permalink / raw
  To: gentoo-commits

commit:     2e883ce4b12434658731fac301138fa2a86dcdd1
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jan  9 21:57:15 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jan  9 21:57:15 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2e883ce4

dev-python/pypy: Remove old

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

 dev-python/pypy/Manifest                           |   4 -
 .../pypy/files/5.8.0_all_distutils_cxx.patch       | 388 ---------------------
 dev-python/pypy/pypy-7.3.1-r3.ebuild               | 182 ----------
 dev-python/pypy/pypy-7.3.2.ebuild                  | 175 ----------
 dev-python/pypy/pypy-7.3.3_rc1.ebuild              | 176 ----------
 5 files changed, 925 deletions(-)

diff --git a/dev-python/pypy/Manifest b/dev-python/pypy/Manifest
index 8e407250474..b2aea21c0af 100644
--- a/dev-python/pypy/Manifest
+++ b/dev-python/pypy/Manifest
@@ -1,6 +1,2 @@
-DIST pypy2.7-v7.3.1-src.tar.bz2 21053306 BLAKE2B 071d59b7978c98e9ed9243d9a64d93d21b524351cb9a45e0f7d48828f919c84585a1164e7c38739fdd8828ab4b1eedade96dff7d64d0d9cbfe00c74d88d532bb SHA512 1bec44fa0fc4b1186e25f69303f9e332df32184be990d86fba41c40152664a93bd65eabf4dded133371271402cea9b150b60c13bce89d1004b276f0908c0b8f1
-DIST pypy2.7-v7.3.2-src.tar.bz2 21142873 BLAKE2B e6bcd2dc28ef740962d053753ccd172e3895fc83fe23a319c003248e0986f9805839daddd13a0f480f1e9ee813979742699cb0bc8c42b6b05c193fedf67aea4f SHA512 b40d93d615a27e3a035007307a8ab2b49ff90f3047af914b268a80feb8219d372eca14c04a8b0dea91efb992653457b7c6d088c784de32c414cc48879f2d15fc
 DIST pypy2.7-v7.3.3-src.tar.bz2 20881821 BLAKE2B ce1ecdd1fffe40574c7662da6038b84d2bca47ab168939ef0c12be2c6348317f17a94a3026e7fa53c71601edc153aefd98f770bd148e7af07ca751c0a5fc1252 SHA512 c2b6c44fdcac5f9445fab01572f859228fc286891fd09a4ddb95d283683d805276c853ec8e61fcd04cb9ee811d0e959d19bb03fdd7442c044f28a773633122e7
-DIST pypy2.7-v7.3.3rc1-src.tar.bz2 20933100 BLAKE2B afbf3c15924e6a215b6323fe97e9782912f09ba1e1db6652b37897ead07deaaa97f591a91f3695e958e8e2dee2626bbda94c4043c025b3f52a12279dc66e483c SHA512 0ddbdcf7ef825888ff748ebdd84cb501653e3a4a0e506e35810f9693b5d3b388c2f636396616f0c8fcc96dc806fa02d74830c1f37ca11fdcfdfd32c3bcd1fdd0
-DIST python-gentoo-patches-2.7.17-r1.tar.xz 14708 BLAKE2B f6e25236a471649de122d0f29506f7a4f34044a568ead47a68980411d9722b761fe1f9d653d5edccb6978b65c8c1eecbef55f403b94f32b37c0ad68e061505a8 SHA512 ecdde5e38c6fe5e69691fb3a68c8f4f43da7857d4abaff763d3cf6ad864ba43c769c03b186b60f2736a1ffb1e3e4c9982715d1b8a99ff3f5740096153bb8a90f
 DIST python-gentoo-patches-2.7.18-r1.tar.xz 15500 BLAKE2B 7008b29827dbbd80d4ab8f010ccf9efced99c6b4b9109e4430c0ba269ce53529cb6fedd832502c8d2d3aa21938749cc3591c2545b21c0a59a6e60f8598e84ccc SHA512 e656ab07281fd932b92165674619bbf55ecf410d2937ae4ae771d490b4532540498cc731d30d19c1e8aafd1f64df8a406bbfbb46ea985b3dcd8edb89a0b7f20f

diff --git a/dev-python/pypy/files/5.8.0_all_distutils_cxx.patch b/dev-python/pypy/files/5.8.0_all_distutils_cxx.patch
deleted file mode 100644
index f0268e29695..00000000000
--- a/dev-python/pypy/files/5.8.0_all_distutils_cxx.patch
+++ /dev/null
@@ -1,388 +0,0 @@
-From 9bf4611231faa0dc9ae64c6a7a8b55a3290a3ca2 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
-Date: Tue, 25 Apr 2017 07:14:11 +0200
-Subject: [PATCH] Fancy patch for distutils C++ support, rebased for pypy5.7
-
-http://bugs.python.org/issue1222585
-http://bugs.gentoo.org/show_bug.cgi?id=599918
----
- _osx_support.py                | 10 ++---
- distutils/cygwinccompiler.py   | 21 ++++++++--
- distutils/emxccompiler.py      | 14 +++++--
- distutils/sysconfig_cpython.py | 26 ++++++++++---
- distutils/sysconfig_pypy.py    | 37 ++++++++++++++----
- distutils/unixccompiler.py     | 55 ++++++++++++++-------------
- 6 files changed, 112 insertions(+), 51 deletions(-)
-
-diff --git a/_osx_support.py b/_osx_support.py
-index d2aaae7..8bcdb05 100644
---- a/_osx_support.py
-+++ b/_osx_support.py
-@@ -14,13 +14,13 @@ __all__ = [
- # configuration variables that may contain universal build flags,
- # like "-arch" or "-isdkroot", that may need customization for
- # the user environment
--_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS', 'BASECFLAGS',
--                            'BLDSHARED', 'LDSHARED', 'CC', 'CXX',
--                            'PY_CFLAGS', 'PY_LDFLAGS', 'PY_CPPFLAGS',
--                            'PY_CORE_CFLAGS')
-+_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CPPFLAGS',
-+                          'BASECFLAGS', 'BLDSHARED', 'LDSHARED', 'LDCXXSHARED',
-+                          'CC', 'CXX', 'PY_CFLAGS', 'PY_LDFLAGS',
-+                          'PY_CPPFLAGS', 'PY_CORE_CFLAGS')
- 
- # configuration variables that may contain compiler calls
--_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'CC', 'CXX')
-+_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'LDCXXSHARED', 'CC', 'CXX')
- 
- # prefix added to original configuration variable names
- _INITPRE = '_OSX_SUPPORT_INITIAL_'
-diff --git a/distutils/cygwinccompiler.py b/distutils/cygwinccompiler.py
-index 767400c..7133097 100644
---- a/distutils/cygwinccompiler.py
-+++ b/distutils/cygwinccompiler.py
-@@ -120,8 +120,10 @@ class CygwinCCompiler (UnixCCompiler):
-         # dllwrap 2.10.90 is buggy
-         if self.ld_version >= "2.10.90":
-             self.linker_dll = "gcc"
-+            self.linker_dll_cxx = "g++"
-         else:
-             self.linker_dll = "dllwrap"
-+            self.linker_dll_cxx = "dllwrap"
- 
-         # ld_version >= "2.13" support -shared so use it instead of
-         # -mdll -static
-@@ -135,9 +137,13 @@ class CygwinCCompiler (UnixCCompiler):
-         self.set_executables(compiler='gcc -mcygwin -O -Wall',
-                              compiler_so='gcc -mcygwin -mdll -O -Wall',
-                              compiler_cxx='g++ -mcygwin -O -Wall',
-+                             compiler_so_cxx='g++ -mcygwin -mdll -O -Wall',
-                              linker_exe='gcc -mcygwin',
-                              linker_so=('%s -mcygwin %s' %
--                                        (self.linker_dll, shared_option)))
-+                                        (self.linker_dll, shared_option)),
-+                             linker_exe_cxx='g++ -mcygwin',
-+                             linker_so_cxx=('%s -mcygwin %s' %
-+                                            (self.linker_dll_cxx, shared_option)))
- 
-         # cygwin and mingw32 need different sets of libraries
-         if self.gcc_version == "2.91.57":
-@@ -163,8 +169,12 @@ class CygwinCCompiler (UnixCCompiler):
-                 raise CompileError, msg
-         else: # for other files use the C-compiler
-             try:
--                self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
--                           extra_postargs)
-+                if self.detect_language(src) == 'c++':
-+                    self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
-+                               extra_postargs)
-+                else:
-+                    self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
-+                               extra_postargs)
-             except DistutilsExecError, msg:
-                 raise CompileError, msg
- 
-@@ -330,9 +340,14 @@ class Mingw32CCompiler (CygwinCCompiler):
-         self.set_executables(compiler='gcc%s -O -Wall' % no_cygwin,
-                              compiler_so='gcc%s -mdll -O -Wall' % no_cygwin,
-                              compiler_cxx='g++%s -O -Wall' % no_cygwin,
-+                             compiler_so_cxx='g++%s -mdll -O -Wall' % no_cygwin,
-                              linker_exe='gcc%s' % no_cygwin,
-                              linker_so='%s%s %s %s'
-                                     % (self.linker_dll, no_cygwin,
-+                                       shared_option, entry_point),
-+                             linker_exe_cxx='g++%s' % no_cygwin,
-+                             linker_so_cxx='%s%s %s %s'
-+                                    % (self.linker_dll_cxx, no_cygwin,
-                                        shared_option, entry_point))
-         # Maybe we should also append -mthreads, but then the finished
-         # dlls need another dll (mingwm10.dll see Mingw32 docs)
-diff --git a/distutils/emxccompiler.py b/distutils/emxccompiler.py
-index a017205..bdc532c 100644
---- a/distutils/emxccompiler.py
-+++ b/distutils/emxccompiler.py
-@@ -65,8 +65,12 @@ class EMXCCompiler (UnixCCompiler):
-         # XXX optimization, warnings etc. should be customizable.
-         self.set_executables(compiler='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
-                              compiler_so='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
-+                             compiler_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
-+                             compiler_so_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
-                              linker_exe='gcc -Zomf -Zmt -Zcrtdll',
--                             linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll')
-+                             linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll',
-+                             linker_exe_cxx='g++ -Zomf -Zmt -Zcrtdll',
-+                             linker_so_cxx='g++ -Zomf -Zmt -Zcrtdll -Zdll')
- 
-         # want the gcc library statically linked (so that we don't have
-         # to distribute a version dependent on the compiler we have)
-@@ -83,8 +87,12 @@ class EMXCCompiler (UnixCCompiler):
-                 raise CompileError, msg
-         else: # for other files use the C-compiler
-             try:
--                self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
--                           extra_postargs)
-+                if self.detect_language(src) == 'c++':
-+                    self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
-+                               extra_postargs)
-+                else:
-+                    self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
-+                               extra_postargs)
-             except DistutilsExecError, msg:
-                 raise CompileError, msg
- 
-diff --git a/distutils/sysconfig_cpython.py b/distutils/sysconfig_cpython.py
-index 35f39e4..8dd032d 100644
---- a/distutils/sysconfig_cpython.py
-+++ b/distutils/sysconfig_cpython.py
-@@ -171,10 +171,12 @@ def customize_compiler(compiler):
-                 _osx_support.customize_compiler(_config_vars)
-                 _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
- 
--        (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
--            get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
--                            'CCSHARED', 'LDSHARED', 'SO', 'AR',
--                            'ARFLAGS')
-+        (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \
-+            get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED',
-+                            'SO', 'AR', 'ARFLAGS')
-+
-+        cflags = ''
-+        cxxflags = ''
- 
-         if 'CC' in os.environ:
-             newcc = os.environ['CC']
-@@ -189,19 +191,27 @@ def customize_compiler(compiler):
-             cxx = os.environ['CXX']
-         if 'LDSHARED' in os.environ:
-             ldshared = os.environ['LDSHARED']
-+        if 'LDCXXSHARED' in os.environ:
-+            ldcxxshared = os.environ['LDCXXSHARED']
-         if 'CPP' in os.environ:
-             cpp = os.environ['CPP']
-         else:
-             cpp = cc + " -E"           # not always
-         if 'LDFLAGS' in os.environ:
-             ldshared = ldshared + ' ' + os.environ['LDFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
-         if 'CFLAGS' in os.environ:
--            cflags = opt + ' ' + os.environ['CFLAGS']
-+            cflags = os.environ['CFLAGS']
-             ldshared = ldshared + ' ' + os.environ['CFLAGS']
-+        if 'CXXFLAGS' in os.environ:
-+            cxxflags = os.environ['CXXFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
-         if 'CPPFLAGS' in os.environ:
-             cpp = cpp + ' ' + os.environ['CPPFLAGS']
-             cflags = cflags + ' ' + os.environ['CPPFLAGS']
-+            cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
-             ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
-         if 'AR' in os.environ:
-             ar = os.environ['AR']
-         if 'ARFLAGS' in os.environ:
-@@ -210,13 +220,17 @@ def customize_compiler(compiler):
-             archiver = ar + ' ' + ar_flags
- 
-         cc_cmd = cc + ' ' + cflags
-+        cxx_cmd = cxx + ' ' + cxxflags
-         compiler.set_executables(
-             preprocessor=cpp,
-             compiler=cc_cmd,
-             compiler_so=cc_cmd + ' ' + ccshared,
--            compiler_cxx=cxx,
-+            compiler_cxx=cxx_cmd,
-+            compiler_so_cxx=cxx_cmd + ' ' + ccshared,
-             linker_so=ldshared,
-             linker_exe=cc,
-+            linker_so_cxx=ldcxxshared,
-+            linker_exe_cxx=cxx,
-             archiver=archiver)
- 
-         compiler.shared_lib_extension = so_ext
-diff --git a/distutils/sysconfig_pypy.py b/distutils/sysconfig_pypy.py
-index 368f232..4fe1f08 100644
---- a/distutils/sysconfig_pypy.py
-+++ b/distutils/sysconfig_pypy.py
-@@ -67,6 +67,7 @@ def _init_posix():
-     g['CFLAGS'] = "-DNDEBUG -O2"
-     g['CCSHARED'] = "-fPIC"
-     g['LDSHARED'] = "cc -pthread -shared"
-+    g['LDCXXSHARED'] = "c++ -pthread -shared"
-     g['SO'] = [s[0] for s in imp.get_suffixes() if s[2] == imp.C_EXTENSION][0]
-     g['AR'] = "ar"
-     g['ARFLAGS'] = "rc"
-@@ -85,6 +86,7 @@ def _init_posix():
-             # just a guess
-             arch = platform.machine()
-         g['LDSHARED'] += ' -undefined dynamic_lookup'
-+        g['LDCXXSHARED'] += ' -undefined dynamic_lookup'
-         g['CC'] += ' -arch %s' % (arch,)
- 
-     global _config_vars
-@@ -168,37 +170,52 @@ def customize_compiler(compiler):
-                 _osx_support.customize_compiler(_config_vars)
-                 _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
- 
--        (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
--            get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
--                            'CCSHARED', 'LDSHARED', 'SO', 'AR',
--                            'ARFLAGS')
-+        (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \
-+            get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED',
-+                            'SO', 'AR', 'ARFLAGS')
-+
-+        cflags = ''
-+        cxxflags = ''
- 
-         if 'CC' in os.environ:
-             newcc = os.environ['CC']
--            if (sys.platform == 'darwin'
-+            if (True
-                     and 'LDSHARED' not in os.environ
-                     and ldshared.startswith(cc)):
-                 # On OS X, if CC is overridden, use that as the default
-                 #       command for LDSHARED as well
-+                # Gentoo: s/OS X/every system/
-                 ldshared = newcc + ldshared[len(cc):]
-             cc = newcc
-         if 'CXX' in os.environ:
--            cxx = os.environ['CXX']
-+            newcxx = os.environ['CXX']
-+            if ('LDCXXSHARED' not in os.environ
-+                    and ldcxxshared.startswith(cxx)):
-+                ldcxxshared = newcxx + ldcxxshared[len(cxx):]
-+            cxx = newcxx
-         if 'LDSHARED' in os.environ:
-             ldshared = os.environ['LDSHARED']
-+        if 'LDCXXSHARED' in os.environ:
-+            ldcxxshared = os.environ['LDCXXSHARED']
-         if 'CPP' in os.environ:
-             cpp = os.environ['CPP']
-         else:
-             cpp = cc + " -E"           # not always
-         if 'LDFLAGS' in os.environ:
-             ldshared = ldshared + ' ' + os.environ['LDFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
-         if 'CFLAGS' in os.environ:
--            cflags = opt + ' ' + os.environ['CFLAGS']
-+            cflags = os.environ['CFLAGS']
-             ldshared = ldshared + ' ' + os.environ['CFLAGS']
-+        if 'CXXFLAGS' in os.environ:
-+            cxxflags = os.environ['CXXFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
-         if 'CPPFLAGS' in os.environ:
-             cpp = cpp + ' ' + os.environ['CPPFLAGS']
-             cflags = cflags + ' ' + os.environ['CPPFLAGS']
-+            cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
-             ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
-         if 'AR' in os.environ:
-             ar = os.environ['AR']
-         if 'ARFLAGS' in os.environ:
-@@ -207,13 +224,17 @@ def customize_compiler(compiler):
-             archiver = ar + ' ' + ar_flags
- 
-         cc_cmd = cc + ' ' + cflags
-+        cxx_cmd = cxx + ' ' + cxxflags
-         compiler.set_executables(
-             preprocessor=cpp,
-             compiler=cc_cmd,
-             compiler_so=cc_cmd + ' ' + ccshared,
--            compiler_cxx=cxx,
-+            compiler_cxx=cxx_cmd,
-+            compiler_so_cxx=cxx_cmd + ' ' + ccshared,
-             linker_so=ldshared,
-             linker_exe=cc,
-+            linker_so_cxx=ldcxxshared,
-+            linker_exe_cxx=cxx,
-             archiver=archiver)
- 
-         compiler.shared_lib_extension = so_ext
-diff --git a/distutils/unixccompiler.py b/distutils/unixccompiler.py
-index dee88a5..558b568 100644
---- a/distutils/unixccompiler.py
-+++ b/distutils/unixccompiler.py
-@@ -55,14 +55,17 @@ class UnixCCompiler(CCompiler):
-     # are pretty generic; they will probably have to be set by an outsider
-     # (eg. using information discovered by the sysconfig about building
-     # Python extensions).
--    executables = {'preprocessor' : None,
--                   'compiler'     : ["cc"],
--                   'compiler_so'  : ["cc"],
--                   'compiler_cxx' : ["c++"],  # pypy: changed, 'cc' is bogus
--                   'linker_so'    : ["cc", "-shared"],
--                   'linker_exe'   : ["cc"],
--                   'archiver'     : ["ar", "-cr"],
--                   'ranlib'       : None,
-+    executables = {'preprocessor'    : None,
-+                   'compiler'        : ["cc"],
-+                   'compiler_so'     : ["cc"],
-+                   'compiler_cxx'    : ["c++"],
-+                   'compiler_so_cxx' : ["c++"],
-+                   'linker_so'       : ["cc", "-shared"],
-+                   'linker_exe'      : ["cc"],
-+                   'linker_so_cxx'   : ["c++", "-shared"],
-+                   'linker_exe_cxx'  : ["c++"],
-+                   'archiver'        : ["ar", "-cr"],
-+                   'ranlib'          : None,
-                   }
- 
-     if sys.platform[:6] == "darwin":
-@@ -129,12 +132,19 @@ class UnixCCompiler(CCompiler):
- 
-     def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
-         compiler_so = self.compiler_so
-+        compiler_so_cxx = self.compiler_so_cxx
-         if sys.platform == 'darwin':
-             compiler_so = _osx_support.compiler_fixup(compiler_so,
-                                                     cc_args + extra_postargs)
-+            compiler_so_cxx = _osx_support.compiler_fixup(compiler_so_cxx,
-+                                                    cc_args + extra_postargs)
-         try:
--            self.spawn(compiler_so + cc_args + [src, '-o', obj] +
--                       extra_postargs)
-+            if self.detect_language(src) == 'c++':
-+                self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] +
-+                           extra_postargs)
-+            else:
-+                self.spawn(compiler_so + cc_args + [src, '-o', obj] +
-+                           extra_postargs)
-         except DistutilsExecError, msg:
-             raise CompileError, msg
- 
-@@ -191,23 +201,16 @@ class UnixCCompiler(CCompiler):
-                 ld_args.extend(extra_postargs)
-             self.mkpath(os.path.dirname(output_filename))
-             try:
--                if target_desc == CCompiler.EXECUTABLE:
--                    linker = self.linker_exe[:]
-+                if target_lang == "c++":
-+                    if target_desc == CCompiler.EXECUTABLE:
-+                        linker = self.linker_exe_cxx[:]
-+                    else:
-+                        linker = self.linker_so_cxx[:]
-                 else:
--                    linker = self.linker_so[:]
--                if target_lang == "c++" and self.compiler_cxx:
--                    # skip over environment variable settings if /usr/bin/env
--                    # is used to set up the linker's environment.
--                    # This is needed on OSX. Note: this assumes that the
--                    # normal and C++ compiler have the same environment
--                    # settings.
--                    i = 0
--                    if os.path.basename(linker[0]) == "env":
--                        i = 1
--                        while '=' in linker[i]:
--                            i = i + 1
--
--                    linker[i] = self.compiler_cxx[i]
-+                    if target_desc == CCompiler.EXECUTABLE:
-+                        linker = self.linker_exe[:]
-+                    else:
-+                        linker = self.linker_so[:]
- 
-                 if sys.platform == 'darwin':
-                     linker = _osx_support.compiler_fixup(linker, ld_args)
--- 
-2.12.2
-

diff --git a/dev-python/pypy/pypy-7.3.1-r3.ebuild b/dev-python/pypy/pypy-7.3.1-r3.ebuild
deleted file mode 100644
index 8508153c294..00000000000
--- a/dev-python/pypy/pypy-7.3.1-r3.ebuild
+++ /dev/null
@@ -1,182 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit pax-utils python-utils-r1
-
-MY_P=pypy2.7-v${PV/_/}
-# note: remember to update this to newest dev-lang/python:2.7 on bump
-PATCHSET="python-gentoo-patches-2.7.17-r1"
-
-DESCRIPTION="A fast, compliant alternative implementation of the Python language"
-HOMEPAGE="https://pypy.org/"
-SRC_URI="https://downloads.python.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 ~ppc64 x86 ~amd64-linux ~x86-linux"
-IUSE="bzip2 gdbm +jit libressl ncurses sqlite tk"
-
-RDEPEND="
-	|| (
-		dev-python/pypy-exe:${PV}[bzip2?,ncurses?]
-		dev-python/pypy-exe-bin:${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() {
-	eapply "${FILESDIR}/7.3.1-gentoo-path.patch"
-	eapply "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
-
-	sed -e "s^@EPREFIX@^${EPREFIX}^" \
-		-i lib-python/2.7/distutils/command/install.py || die
-
-	# apply CPython stdlib patches
-	pushd lib-python/2.7 > /dev/null || die
-	# TODO: cpy turkish locale patch now fixes C code
-	# probably needs better port to pypy, if it is broken there
-	eapply "${FILESDIR}"/5.8.0_all_distutils_cxx.patch
-	eapply -p2 "${WORKDIR}/${PATCHSET}"/0010-use_pyxml.patch
-	popd > /dev/null || die
-
-	# this test relies on pypy-c hardcoding correct build time paths
-	sed -i -e 's:test_executable_without_cwd:_&:' \
-		lib-python/2.7/test/test_subprocess.py || die
-	# broken upstream
-	# see http://buildbot.pypy.org/summary?branch=%3Ctrunk%3E
-	sed -i -e 's:test_alpn_protocols:_&:' \
-		-e 's:test_default_ecdh_curve:_&:' \
-		lib-python/2.7/test/test_ssl.py || die
-	# requires Internet
-	sed -i -e '/class NetworkedTests/i@unittest.skip("Requires networking")' \
-		lib-python/2.7/test/test_ssl.py || die
-
-	eapply_user
-}
-
-src_compile() {
-	# copy over to make sys.prefix happy
-	cp -p "${BROOT}"/usr/lib/pypy2.7/pypy-c-${PV} pypy-c || die
-	cp -p "${BROOT}"/usr/lib/pypy2.7/include/${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 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
-		# no module named 'worker' -- a lot
-		--ignore=lib-python/2.7/test/test_xpickle.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-${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/${PV}/*; do
-		dosym "${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-${PV}
-	# temporarily copy to build tree to facilitate module builds
-	cp -p "${BROOT}${dest}/pypy-c-${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
-}

diff --git a/dev-python/pypy/pypy-7.3.2.ebuild b/dev-python/pypy/pypy-7.3.2.ebuild
deleted file mode 100644
index 90e8d764f97..00000000000
--- a/dev-python/pypy/pypy-7.3.2.ebuild
+++ /dev/null
@@ -1,175 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit pax-utils python-utils-r1
-
-MY_P=pypy2.7-v${PV/_/}
-# note: remember to update this to newest dev-lang/python:2.7 on bump
-PATCHSET="python-gentoo-patches-2.7.18-r1"
-
-DESCRIPTION="A fast, compliant alternative implementation of the Python language"
-HOMEPAGE="https://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:${PV}[bzip2?,ncurses?]
-		dev-python/pypy-exe-bin:${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() {
-	eapply "${FILESDIR}/7.3.1-gentoo-path.patch"
-	eapply "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
-
-	sed -e "s^@EPREFIX@^${EPREFIX}^" \
-		-i lib-python/2.7/distutils/command/install.py || die
-
-	# apply CPython stdlib patches
-	pushd lib-python/2.7 > /dev/null || die
-	# TODO: cpy turkish locale patch now fixes C code
-	# probably needs better port to pypy, if it is broken there
-	eapply "${FILESDIR}"/5.8.0_all_distutils_cxx.patch
-	eapply -p2 "${WORKDIR}/${PATCHSET}"/0010-use_pyxml.patch
-	popd > /dev/null || die
-
-	# this test relies on pypy-c hardcoding correct build time paths
-	sed -i -e 's:test_executable_without_cwd:_&:' \
-		lib-python/2.7/test/test_subprocess.py || die
-	# requires Internet
-	sed -i -e '/class NetworkedTests/i@unittest.skip("Requires networking")' \
-		lib-python/2.7/test/test_ssl.py || die
-
-	eapply_user
-}
-
-src_compile() {
-	# copy over to make sys.prefix happy
-	cp -p "${BROOT}"/usr/lib/pypy2.7/pypy-c-${PV} pypy-c || die
-	cp -p "${BROOT}"/usr/lib/pypy2.7/include/${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 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-${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/${PV}/*; do
-		dosym "${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-${PV}
-	# temporarily copy to build tree to facilitate module builds
-	cp -p "${BROOT}${dest}/pypy-c-${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
-}

diff --git a/dev-python/pypy/pypy-7.3.3_rc1.ebuild b/dev-python/pypy/pypy-7.3.3_rc1.ebuild
deleted file mode 100644
index 74c92f4c682..00000000000
--- a/dev-python/pypy/pypy-7.3.3_rc1.ebuild
+++ /dev/null
@@ -1,176 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit pax-utils python-utils-r1
-
-MY_P=pypy2.7-v${PV/_/}
-# note: remember to update this to newest dev-lang/python:2.7 on bump
-PATCHSET="python-gentoo-patches-2.7.18-r1"
-
-DESCRIPTION="A fast, compliant alternative implementation of the Python language"
-HOMEPAGE="https://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=""
-IUSE="bzip2 gdbm +jit libressl ncurses sqlite tk"
-
-RDEPEND="
-	|| (
-		dev-python/pypy-exe:${PV}[bzip2?,ncurses?]
-		dev-python/pypy-exe-bin:${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() {
-	eapply "${FILESDIR}/7.3.1-gentoo-path.patch"
-	eapply "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
-	eapply "${FILESDIR}/7.3.3-distutils-cxx.patch"
-
-	sed -e "s^@EPREFIX@^${EPREFIX}^" \
-		-i lib-python/2.7/distutils/command/install.py || die
-
-	# apply CPython stdlib patches
-	pushd lib-python/2.7 > /dev/null || die
-	# TODO: cpy turkish locale patch now fixes C code
-	# probably needs better port to pypy, if it is broken there
-	eapply -p2 "${WORKDIR}/${PATCHSET}"/0010-use_pyxml.patch
-	popd > /dev/null || die
-
-	# this test relies on pypy-c hardcoding correct build time paths
-	sed -i -e 's:test_executable_without_cwd:_&:' \
-		lib-python/2.7/test/test_subprocess.py || die
-	# requires Internet
-	sed -i -e '/class NetworkedTests/i@unittest.skip("Requires networking")' \
-		lib-python/2.7/test/test_ssl.py || die
-
-	eapply_user
-}
-
-src_compile() {
-	# copy over to make sys.prefix happy
-	cp -p "${BROOT}"/usr/lib/pypy2.7/pypy-c-${PV} pypy-c || die
-	cp -p "${BROOT}"/usr/lib/pypy2.7/include/${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-${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/${PV}/*; do
-		dosym "${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-${PV}
-	# temporarily copy to build tree to facilitate module builds
-	cp -p "${BROOT}${dest}/pypy-c-${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
-}


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-python/pypy/files/, dev-python/pypy/
@ 2021-03-05 21:06 Michał Górny
  0 siblings, 0 replies; 16+ messages in thread
From: Michał Górny @ 2021-03-05 21:06 UTC (permalink / raw
  To: gentoo-commits

commit:     d3043a4664c5ac503b8dd209d576aeb3d0b15be0
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Mar  5 21:04:22 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Mar  5 21:06:24 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d3043a46

dev-python/pypy: Remove old

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

 dev-python/pypy/Manifest                           |   1 -
 ....UnixCCompiler.runtime_library_dir_option.patch |  11 -
 dev-python/pypy/files/7.3.1-gentoo-path.patch      |  42 ---
 dev-python/pypy/files/7.3.3-distutils-cxx.patch    | 387 ---------------------
 dev-python/pypy/pypy-7.3.3.ebuild                  | 176 ----------
 5 files changed, 617 deletions(-)

diff --git a/dev-python/pypy/Manifest b/dev-python/pypy/Manifest
index 534dbbbfe87..7b6d2debce8 100644
--- a/dev-python/pypy/Manifest
+++ b/dev-python/pypy/Manifest
@@ -1,3 +1,2 @@
 DIST pypy2.7-gentoo-patches-7.3.3_p2.tar.xz 11184 BLAKE2B b2b9b94478609372d616c65a87cbb12a07e217928beef9fac26c428f81c662ef390db3fd85bf368ffcc8c6fa3802e506412b7bebd14bdc453009008bc3459d25 SHA512 9ab8ed99b42b36e9c212683ef93f7f1fb99caecf056293ab9a5734f8b52eedec192860702baa121630558530cb5c4652f8542300ecaaaa282377ea6456618b95
 DIST pypy2.7-v7.3.3-src.tar.bz2 20881821 BLAKE2B ce1ecdd1fffe40574c7662da6038b84d2bca47ab168939ef0c12be2c6348317f17a94a3026e7fa53c71601edc153aefd98f770bd148e7af07ca751c0a5fc1252 SHA512 c2b6c44fdcac5f9445fab01572f859228fc286891fd09a4ddb95d283683d805276c853ec8e61fcd04cb9ee811d0e959d19bb03fdd7442c044f28a773633122e7
-DIST python-gentoo-patches-2.7.18-r1.tar.xz 15500 BLAKE2B 7008b29827dbbd80d4ab8f010ccf9efced99c6b4b9109e4430c0ba269ce53529cb6fedd832502c8d2d3aa21938749cc3591c2545b21c0a59a6e60f8598e84ccc SHA512 e656ab07281fd932b92165674619bbf55ecf410d2937ae4ae771d490b4532540498cc731d30d19c1e8aafd1f64df8a406bbfbb46ea985b3dcd8edb89a0b7f20f

diff --git a/dev-python/pypy/files/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch b/dev-python/pypy/files/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch
deleted file mode 100644
index 65321bb60e6..00000000000
--- a/dev-python/pypy/files/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/lib-python/2.7/distutils/unixccompiler.py
-+++ b/lib-python/2.7/distutils/unixccompiler.py
-@@ -297,7 +297,7 @@
-         # this time, there's no way to determine this information from
-         # the configuration data stored in the Python installation, so
-         # we use this hack.
--        compiler = os.path.basename(sysconfig.get_config_var("CC"))
-+        compiler = os.path.basename(self.compiler[0])
-         if sys.platform[:6] == "darwin":
-             # MacOSX's linker doesn't understand the -R flag at all
-             return "-L" + dir

diff --git a/dev-python/pypy/files/7.3.1-gentoo-path.patch b/dev-python/pypy/files/7.3.1-gentoo-path.patch
deleted file mode 100644
index 74ca86a84ac..00000000000
--- a/dev-python/pypy/files/7.3.1-gentoo-path.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 6d439c6718625bb7dce32b0afdc6a3d5168a21e5 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
-Date: Sat, 11 Apr 2020 07:01:27 +0200
-Subject: [PATCH] Support Gentoo install scheme
-
----
- lib-python/2.7/distutils/command/install.py | 12 +++++++++++-
- 1 file changed, 11 insertions(+), 1 deletion(-)
-
-diff --git a/lib-python/2.7/distutils/command/install.py b/lib-python/2.7/distutils/command/install.py
-index 6fe62be..a4e9f0d 100644
---- a/lib-python/2.7/distutils/command/install.py
-+++ b/lib-python/2.7/distutils/command/install.py
-@@ -97,6 +97,13 @@ INSTALL_SCHEMES = {
-         'scripts': '$base/Scripts',
-         'data'   : '$base',
-         },
-+    'gentoo': {
-+        'purelib': '$base/site-packages',
-+        'platlib': '$base/site-packages',
-+        'headers': '$base/include/$dist_name',
-+        'scripts': '@EPREFIX@/usr/bin',
-+        'data'   : '@EPREFIX@/usr',
-+        },
-     }
- 
- # The keys to an installation scheme; if any new types of files are to be
-@@ -483,7 +490,10 @@ class install (Command):
-         # it's the caller's problem if they supply a bad name!
-         if (hasattr(sys, 'pypy_version_info') and
-                 not name.endswith(('_user', '_home'))):
--            if os.name == 'nt':
-+            if self.install_base.startswith(os.path.normpath('@EPREFIX@/usr/lib/pypy')):
-+                # override paths for system-wide install
-+                name = 'gentoo'
-+            elif os.name == 'nt':
-                 name = 'pypy_nt'
-             else:
-                 name = 'pypy'
--- 
-2.26.0
-

diff --git a/dev-python/pypy/files/7.3.3-distutils-cxx.patch b/dev-python/pypy/files/7.3.3-distutils-cxx.patch
deleted file mode 100644
index d5939d7417f..00000000000
--- a/dev-python/pypy/files/7.3.3-distutils-cxx.patch
+++ /dev/null
@@ -1,387 +0,0 @@
-From 5ca45626481778f12654cd2ea8c45b5eeb2363c6 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
-Date: Fri, 13 Nov 2020 01:02:28 +0100
-Subject: [PATCH] Fancy patch for distutils C++ support, rebased for
- pypy7.3.3rc1
-
----
- lib-python/2.7/_osx_support.py                | 10 ++--
- lib-python/2.7/distutils/cygwinccompiler.py   | 21 ++++++-
- lib-python/2.7/distutils/emxccompiler.py      | 14 ++++-
- lib-python/2.7/distutils/sysconfig_cpython.py | 26 +++++++--
- lib-python/2.7/distutils/sysconfig_pypy.py    | 37 ++++++++++---
- lib-python/2.7/distutils/unixccompiler.py     | 55 ++++++++++---------
- 6 files changed, 112 insertions(+), 51 deletions(-)
-
-diff --git a/lib-python/2.7/_osx_support.py b/lib-python/2.7/_osx_support.py
-index d2aaae7..8bcdb05 100644
---- a/lib-python/2.7/_osx_support.py
-+++ b/lib-python/2.7/_osx_support.py
-@@ -14,13 +14,13 @@ __all__ = [
- # configuration variables that may contain universal build flags,
- # like "-arch" or "-isdkroot", that may need customization for
- # the user environment
--_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS', 'BASECFLAGS',
--                            'BLDSHARED', 'LDSHARED', 'CC', 'CXX',
--                            'PY_CFLAGS', 'PY_LDFLAGS', 'PY_CPPFLAGS',
--                            'PY_CORE_CFLAGS')
-+_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CPPFLAGS',
-+                          'BASECFLAGS', 'BLDSHARED', 'LDSHARED', 'LDCXXSHARED',
-+                          'CC', 'CXX', 'PY_CFLAGS', 'PY_LDFLAGS',
-+                          'PY_CPPFLAGS', 'PY_CORE_CFLAGS')
- 
- # configuration variables that may contain compiler calls
--_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'CC', 'CXX')
-+_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'LDCXXSHARED', 'CC', 'CXX')
- 
- # prefix added to original configuration variable names
- _INITPRE = '_OSX_SUPPORT_INITIAL_'
-diff --git a/lib-python/2.7/distutils/cygwinccompiler.py b/lib-python/2.7/distutils/cygwinccompiler.py
-index 767400c..7133097 100644
---- a/lib-python/2.7/distutils/cygwinccompiler.py
-+++ b/lib-python/2.7/distutils/cygwinccompiler.py
-@@ -120,8 +120,10 @@ class CygwinCCompiler (UnixCCompiler):
-         # dllwrap 2.10.90 is buggy
-         if self.ld_version >= "2.10.90":
-             self.linker_dll = "gcc"
-+            self.linker_dll_cxx = "g++"
-         else:
-             self.linker_dll = "dllwrap"
-+            self.linker_dll_cxx = "dllwrap"
- 
-         # ld_version >= "2.13" support -shared so use it instead of
-         # -mdll -static
-@@ -135,9 +137,13 @@ class CygwinCCompiler (UnixCCompiler):
-         self.set_executables(compiler='gcc -mcygwin -O -Wall',
-                              compiler_so='gcc -mcygwin -mdll -O -Wall',
-                              compiler_cxx='g++ -mcygwin -O -Wall',
-+                             compiler_so_cxx='g++ -mcygwin -mdll -O -Wall',
-                              linker_exe='gcc -mcygwin',
-                              linker_so=('%s -mcygwin %s' %
--                                        (self.linker_dll, shared_option)))
-+                                        (self.linker_dll, shared_option)),
-+                             linker_exe_cxx='g++ -mcygwin',
-+                             linker_so_cxx=('%s -mcygwin %s' %
-+                                            (self.linker_dll_cxx, shared_option)))
- 
-         # cygwin and mingw32 need different sets of libraries
-         if self.gcc_version == "2.91.57":
-@@ -163,8 +169,12 @@ class CygwinCCompiler (UnixCCompiler):
-                 raise CompileError, msg
-         else: # for other files use the C-compiler
-             try:
--                self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
--                           extra_postargs)
-+                if self.detect_language(src) == 'c++':
-+                    self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
-+                               extra_postargs)
-+                else:
-+                    self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
-+                               extra_postargs)
-             except DistutilsExecError, msg:
-                 raise CompileError, msg
- 
-@@ -330,9 +340,14 @@ class Mingw32CCompiler (CygwinCCompiler):
-         self.set_executables(compiler='gcc%s -O -Wall' % no_cygwin,
-                              compiler_so='gcc%s -mdll -O -Wall' % no_cygwin,
-                              compiler_cxx='g++%s -O -Wall' % no_cygwin,
-+                             compiler_so_cxx='g++%s -mdll -O -Wall' % no_cygwin,
-                              linker_exe='gcc%s' % no_cygwin,
-                              linker_so='%s%s %s %s'
-                                     % (self.linker_dll, no_cygwin,
-+                                       shared_option, entry_point),
-+                             linker_exe_cxx='g++%s' % no_cygwin,
-+                             linker_so_cxx='%s%s %s %s'
-+                                    % (self.linker_dll_cxx, no_cygwin,
-                                        shared_option, entry_point))
-         # Maybe we should also append -mthreads, but then the finished
-         # dlls need another dll (mingwm10.dll see Mingw32 docs)
-diff --git a/lib-python/2.7/distutils/emxccompiler.py b/lib-python/2.7/distutils/emxccompiler.py
-index a017205..bdc532c 100644
---- a/lib-python/2.7/distutils/emxccompiler.py
-+++ b/lib-python/2.7/distutils/emxccompiler.py
-@@ -65,8 +65,12 @@ class EMXCCompiler (UnixCCompiler):
-         # XXX optimization, warnings etc. should be customizable.
-         self.set_executables(compiler='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
-                              compiler_so='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
-+                             compiler_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
-+                             compiler_so_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
-                              linker_exe='gcc -Zomf -Zmt -Zcrtdll',
--                             linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll')
-+                             linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll',
-+                             linker_exe_cxx='g++ -Zomf -Zmt -Zcrtdll',
-+                             linker_so_cxx='g++ -Zomf -Zmt -Zcrtdll -Zdll')
- 
-         # want the gcc library statically linked (so that we don't have
-         # to distribute a version dependent on the compiler we have)
-@@ -83,8 +87,12 @@ class EMXCCompiler (UnixCCompiler):
-                 raise CompileError, msg
-         else: # for other files use the C-compiler
-             try:
--                self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
--                           extra_postargs)
-+                if self.detect_language(src) == 'c++':
-+                    self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
-+                               extra_postargs)
-+                else:
-+                    self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
-+                               extra_postargs)
-             except DistutilsExecError, msg:
-                 raise CompileError, msg
- 
-diff --git a/lib-python/2.7/distutils/sysconfig_cpython.py b/lib-python/2.7/distutils/sysconfig_cpython.py
-index 6a14f70..2cce5bc 100644
---- a/lib-python/2.7/distutils/sysconfig_cpython.py
-+++ b/lib-python/2.7/distutils/sysconfig_cpython.py
-@@ -181,10 +181,12 @@ def customize_compiler(compiler):
-                 _osx_support.customize_compiler(_config_vars)
-                 _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
- 
--        (cc, cxx, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
--            get_config_vars('CC', 'CXX', 'CFLAGS',
--                            'CCSHARED', 'LDSHARED', 'SO', 'AR',
--                            'ARFLAGS')
-+        (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \
-+            get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED',
-+                            'SO', 'AR', 'ARFLAGS')
-+
-+        cflags = ''
-+        cxxflags = ''
- 
-         if 'CC' in os.environ:
-             newcc = os.environ['CC']
-@@ -199,19 +201,27 @@ def customize_compiler(compiler):
-             cxx = os.environ['CXX']
-         if 'LDSHARED' in os.environ:
-             ldshared = os.environ['LDSHARED']
-+        if 'LDCXXSHARED' in os.environ:
-+            ldcxxshared = os.environ['LDCXXSHARED']
-         if 'CPP' in os.environ:
-             cpp = os.environ['CPP']
-         else:
-             cpp = cc + " -E"           # not always
-         if 'LDFLAGS' in os.environ:
-             ldshared = ldshared + ' ' + os.environ['LDFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
-         if 'CFLAGS' in os.environ:
--            cflags = cflags + ' ' + os.environ['CFLAGS']
-+            cflags = os.environ['CFLAGS']
-             ldshared = ldshared + ' ' + os.environ['CFLAGS']
-+        if 'CXXFLAGS' in os.environ:
-+            cxxflags = os.environ['CXXFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
-         if 'CPPFLAGS' in os.environ:
-             cpp = cpp + ' ' + os.environ['CPPFLAGS']
-             cflags = cflags + ' ' + os.environ['CPPFLAGS']
-+            cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
-             ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
-         if 'AR' in os.environ:
-             ar = os.environ['AR']
-         if 'ARFLAGS' in os.environ:
-@@ -220,13 +230,17 @@ def customize_compiler(compiler):
-             archiver = ar + ' ' + ar_flags
- 
-         cc_cmd = cc + ' ' + cflags
-+        cxx_cmd = cxx + ' ' + cxxflags
-         compiler.set_executables(
-             preprocessor=cpp,
-             compiler=cc_cmd,
-             compiler_so=cc_cmd + ' ' + ccshared,
--            compiler_cxx=cxx,
-+            compiler_cxx=cxx_cmd,
-+            compiler_so_cxx=cxx_cmd + ' ' + ccshared,
-             linker_so=ldshared,
-             linker_exe=cc,
-+            linker_so_cxx=ldcxxshared,
-+            linker_exe_cxx=cxx,
-             archiver=archiver)
- 
-         compiler.shared_lib_extension = so_ext
-diff --git a/lib-python/2.7/distutils/sysconfig_pypy.py b/lib-python/2.7/distutils/sysconfig_pypy.py
-index ec9f5a3..192974d 100644
---- a/lib-python/2.7/distutils/sysconfig_pypy.py
-+++ b/lib-python/2.7/distutils/sysconfig_pypy.py
-@@ -67,6 +67,7 @@ def _init_posix():
-     g['CFLAGS'] = "-DNDEBUG -O2"
-     g['CCSHARED'] = "-fPIC"
-     g['LDSHARED'] = "cc -pthread -shared"
-+    g['LDCXXSHARED'] = "c++ -pthread -shared"
-     g['SO'] = [s[0] for s in imp.get_suffixes() if s[2] == imp.C_EXTENSION][0]
-     g['AR'] = "ar"
-     g['ARFLAGS'] = "rc"
-@@ -85,6 +86,7 @@ def _init_posix():
-             # just a guess
-             arch = platform.machine()
-         g['LDSHARED'] += ' -undefined dynamic_lookup'
-+        g['LDCXXSHARED'] += ' -undefined dynamic_lookup'
-         g['CC'] += ' -arch %s' % (arch,)
-         g['MACOSX_DEPLOYMENT_TARGET'] = '10.7'
- 
-@@ -183,37 +185,52 @@ def customize_compiler(compiler):
-                 _osx_support.customize_compiler(_config_vars)
-                 _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
- 
--        (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
--            get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
--                            'CCSHARED', 'LDSHARED', 'SO', 'AR',
--                            'ARFLAGS')
-+        (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \
-+            get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED',
-+                            'SO', 'AR', 'ARFLAGS')
-+
-+        cflags = ''
-+        cxxflags = ''
- 
-         if 'CC' in os.environ:
-             newcc = os.environ['CC']
--            if (sys.platform == 'darwin'
-+            if (True
-                     and 'LDSHARED' not in os.environ
-                     and ldshared.startswith(cc)):
-                 # On OS X, if CC is overridden, use that as the default
-                 #       command for LDSHARED as well
-+                # Gentoo: s/OS X/every system/
-                 ldshared = newcc + ldshared[len(cc):]
-             cc = newcc
-         if 'CXX' in os.environ:
--            cxx = os.environ['CXX']
-+            newcxx = os.environ['CXX']
-+            if ('LDCXXSHARED' not in os.environ
-+                    and ldcxxshared.startswith(cxx)):
-+                ldcxxshared = newcxx + ldcxxshared[len(cxx):]
-+            cxx = newcxx
-         if 'LDSHARED' in os.environ:
-             ldshared = os.environ['LDSHARED']
-+        if 'LDCXXSHARED' in os.environ:
-+            ldcxxshared = os.environ['LDCXXSHARED']
-         if 'CPP' in os.environ:
-             cpp = os.environ['CPP']
-         else:
-             cpp = cc + " -E"           # not always
-         if 'LDFLAGS' in os.environ:
-             ldshared = ldshared + ' ' + os.environ['LDFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
-         if 'CFLAGS' in os.environ:
--            cflags = opt + ' ' + os.environ['CFLAGS']
-+            cflags = os.environ['CFLAGS']
-             ldshared = ldshared + ' ' + os.environ['CFLAGS']
-+        if 'CXXFLAGS' in os.environ:
-+            cxxflags = os.environ['CXXFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
-         if 'CPPFLAGS' in os.environ:
-             cpp = cpp + ' ' + os.environ['CPPFLAGS']
-             cflags = cflags + ' ' + os.environ['CPPFLAGS']
-+            cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
-             ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
-+            ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
-         if 'AR' in os.environ:
-             ar = os.environ['AR']
-         if 'ARFLAGS' in os.environ:
-@@ -222,13 +239,17 @@ def customize_compiler(compiler):
-             archiver = ar + ' ' + ar_flags
- 
-         cc_cmd = cc + ' ' + cflags
-+        cxx_cmd = cxx + ' ' + cxxflags
-         compiler.set_executables(
-             preprocessor=cpp,
-             compiler=cc_cmd,
-             compiler_so=cc_cmd + ' ' + ccshared,
--            compiler_cxx=cxx,
-+            compiler_cxx=cxx_cmd,
-+            compiler_so_cxx=cxx_cmd + ' ' + ccshared,
-             linker_so=ldshared,
-             linker_exe=cc,
-+            linker_so_cxx=ldcxxshared,
-+            linker_exe_cxx=cxx,
-             archiver=archiver)
- 
-         compiler.shared_lib_extension = so_ext
-diff --git a/lib-python/2.7/distutils/unixccompiler.py b/lib-python/2.7/distutils/unixccompiler.py
-index 250ff12..7e64543 100644
---- a/lib-python/2.7/distutils/unixccompiler.py
-+++ b/lib-python/2.7/distutils/unixccompiler.py
-@@ -55,14 +55,17 @@ class UnixCCompiler(CCompiler):
-     # are pretty generic; they will probably have to be set by an outsider
-     # (eg. using information discovered by the sysconfig about building
-     # Python extensions).
--    executables = {'preprocessor' : None,
--                   'compiler'     : ["cc"],
--                   'compiler_so'  : ["cc"],
--                   'compiler_cxx' : ["c++"],  # pypy: changed, 'cc' is bogus
--                   'linker_so'    : ["cc", "-shared"],
--                   'linker_exe'   : ["cc"],
--                   'archiver'     : ["ar", "-cr"],
--                   'ranlib'       : None,
-+    executables = {'preprocessor'    : None,
-+                   'compiler'        : ["cc"],
-+                   'compiler_so'     : ["cc"],
-+                   'compiler_cxx'    : ["c++"],
-+                   'compiler_so_cxx' : ["c++"],
-+                   'linker_so'       : ["cc", "-shared"],
-+                   'linker_exe'      : ["cc"],
-+                   'linker_so_cxx'   : ["c++", "-shared"],
-+                   'linker_exe_cxx'  : ["c++"],
-+                   'archiver'        : ["ar", "-cr"],
-+                   'ranlib'          : None,
-                   }
- 
-     if sys.platform[:6] == "darwin":
-@@ -129,12 +132,19 @@ class UnixCCompiler(CCompiler):
- 
-     def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
-         compiler_so = self.compiler_so
-+        compiler_so_cxx = self.compiler_so_cxx
-         if sys.platform == 'darwin':
-             compiler_so = _osx_support.compiler_fixup(compiler_so,
-                                                     cc_args + extra_postargs)
-+            compiler_so_cxx = _osx_support.compiler_fixup(compiler_so_cxx,
-+                                                    cc_args + extra_postargs)
-         try:
--            self.spawn(compiler_so + cc_args + [src, '-o', obj] +
--                       extra_postargs)
-+            if self.detect_language(src) == 'c++':
-+                self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] +
-+                           extra_postargs)
-+            else:
-+                self.spawn(compiler_so + cc_args + [src, '-o', obj] +
-+                           extra_postargs)
-         except DistutilsExecError, msg:
-             raise CompileError, msg
- 
-@@ -191,23 +201,16 @@ class UnixCCompiler(CCompiler):
-                 ld_args.extend(extra_postargs)
-             self.mkpath(os.path.dirname(output_filename))
-             try:
--                if target_desc == CCompiler.EXECUTABLE:
--                    linker = self.linker_exe[:]
-+                if target_lang == "c++":
-+                    if target_desc == CCompiler.EXECUTABLE:
-+                        linker = self.linker_exe_cxx[:]
-+                    else:
-+                        linker = self.linker_so_cxx[:]
-                 else:
--                    linker = self.linker_so[:]
--                if target_lang == "c++" and self.compiler_cxx:
--                    # skip over environment variable settings if /usr/bin/env
--                    # is used to set up the linker's environment.
--                    # This is needed on OSX. Note: this assumes that the
--                    # normal and C++ compiler have the same environment
--                    # settings.
--                    i = 0
--                    if os.path.basename(linker[0]) == "env":
--                        i = 1
--                        while '=' in linker[i]:
--                            i = i + 1
--
--                    linker[i] = self.compiler_cxx[i]
-+                    if target_desc == CCompiler.EXECUTABLE:
-+                        linker = self.linker_exe[:]
-+                    else:
-+                        linker = self.linker_so[:]
- 
-                 if sys.platform == 'darwin':
-                     linker = _osx_support.compiler_fixup(linker, ld_args)
--- 
-2.29.2
-

diff --git a/dev-python/pypy/pypy-7.3.3.ebuild b/dev-python/pypy/pypy-7.3.3.ebuild
deleted file mode 100644
index 8e48bcb5dc5..00000000000
--- a/dev-python/pypy/pypy-7.3.3.ebuild
+++ /dev/null
@@ -1,176 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit pax-utils python-utils-r1
-
-MY_P=pypy2.7-v${PV/_/}
-# note: remember to update this to newest dev-lang/python:2.7 on bump
-PATCHSET="python-gentoo-patches-2.7.18-r1"
-
-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:${PV}[bzip2?,ncurses?]
-		dev-python/pypy-exe-bin:${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() {
-	eapply "${FILESDIR}/7.3.1-gentoo-path.patch"
-	eapply "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
-	eapply "${FILESDIR}/7.3.3-distutils-cxx.patch"
-
-	sed -e "s^@EPREFIX@^${EPREFIX}^" \
-		-i lib-python/2.7/distutils/command/install.py || die
-
-	# apply CPython stdlib patches
-	pushd lib-python/2.7 > /dev/null || die
-	# TODO: cpy turkish locale patch now fixes C code
-	# probably needs better port to pypy, if it is broken there
-	eapply -p2 "${WORKDIR}/${PATCHSET}"/0010-use_pyxml.patch
-	popd > /dev/null || die
-
-	# this test relies on pypy-c hardcoding correct build time paths
-	sed -i -e 's:test_executable_without_cwd:_&:' \
-		lib-python/2.7/test/test_subprocess.py || die
-	# requires Internet
-	sed -i -e '/class NetworkedTests/i@unittest.skip("Requires networking")' \
-		lib-python/2.7/test/test_ssl.py || die
-
-	eapply_user
-}
-
-src_compile() {
-	# copy over to make sys.prefix happy
-	cp -p "${BROOT}"/usr/lib/pypy2.7/pypy-c-${PV} pypy-c || die
-	cp -p "${BROOT}"/usr/lib/pypy2.7/include/${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-${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/${PV}/*; do
-		dosym "${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-${PV}
-	# temporarily copy to build tree to facilitate module builds
-	cp -p "${BROOT}${dest}/pypy-c-${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
-}


^ permalink raw reply related	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2021-03-05 21:06 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-15  9:38 [gentoo-commits] repo/gentoo:master commit in: dev-python/pypy/files/, dev-python/pypy/ Michał Górny
  -- strict thread matches above, loose matches on Subject: below --
2021-03-05 21:06 Michał Górny
2021-01-09 21:59 Michał Górny
2020-11-13  9:02 Michał Górny
2020-09-17 16:56 Michał Górny
2020-08-02  9:35 Michał Górny
2020-06-30 18:50 Michał Górny
2020-04-11  7:49 Michał Górny
2019-02-16 15:08 Michał Górny
2017-10-09 18:58 Michał Górny
2017-04-25 21:49 Michał Górny
2017-04-25 21:49 Michał Górny
2017-04-25 21:49 Michał Górny
2016-12-09 18:10 Michał Górny
2015-11-27 19:49 Michał Górny
2015-11-27 16:11 Michał Górny

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox