commit:     c2c7385ecf614f2803b7ef8ae207031773374ab7
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun May 23 06:02:17 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun May 23 06:30:35 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c2c7385e

dev-python/pysimdjson: Add python@ as co-maint.

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

 .../files/pysimdjson-4.0.0-unbundle.patch          | 95 ++++++++++++++++++++++
 dev-python/pysimdjson/metadata.xml                 |  4 +
 dev-python/pysimdjson/pysimdjson-4.0.0.ebuild      |  9 +-
 3 files changed, 107 insertions(+), 1 deletion(-)

diff --git a/dev-python/pysimdjson/files/pysimdjson-4.0.0-unbundle.patch 
b/dev-python/pysimdjson/files/pysimdjson-4.0.0-unbundle.patch
new file mode 100644
index 00000000000..de52bc063a2
--- /dev/null
+++ b/dev-python/pysimdjson/files/pysimdjson-4.0.0-unbundle.patch
@@ -0,0 +1,95 @@
+diff --git a/setup.py b/setup.py
+index f1de675..4c23028 100644
+--- a/setup.py
++++ b/setup.py
+@@ -27,53 +27,59 @@ if system == 'Darwin':
+     os.environ.setdefault('MACOSX_DEPLOYMENT_TARGET', '10.14')
+     extra_compile_args.append('-std=c++11')
+ 
+-if os.getenv('BUILD_WITH_CYTHON') and not CYTHON_AVAILABLE:
++build_with_cython = os.getenv('BUILD_WITH_CYTHON')
++if build_with_cython and not CYTHON_AVAILABLE:
+     print(
+         'BUILD_WITH_CYTHON environment variable is set, but cython'
+         ' is not available. Falling back to pre-cythonized version if'
+         ' available.'
+     )
++    build_with_cython = False
+ 
+-if os.getenv('BUILD_WITH_CYTHON') and CYTHON_AVAILABLE:
+-    macros = []
+-    compiler_directives = {
+-        'embedsignature': True
+-    }
++build_with_system_lib = os.getenv('BUILD_WITH_SYSTEM_LIB')
++
++macros = []
++compiler_directives = {}
++libraries = []
++sources = [
++    'simdjson/errors.cpp',
++]
++
++if build_with_system_lib:
++    libraries.append('simdjson')
++else:
++    sources.append('simdjson/simdjson.cpp')
++
++if build_with_cython:
++    compiler_directives['embedsignature'] = True
+ 
+     if os.getenv('BUILD_FOR_DEBUG'):
+         # Enable line tracing, which also enables support for coverage
+         # reporting.
+-        macros = [
++        macros += [
+             ('CYTHON_TRACE', 1),
+             ('CYTHON_TRACE_NOGIL', 1)
+         ]
+         compiler_directives['linetrace'] = True
+ 
+-    extensions = cythonize([
+-        Extension(
+-            'csimdjson',
+-            [
+-                'simdjson/simdjson.cpp',
+-                'simdjson/errors.cpp',
+-                'simdjson/csimdjson.pyx'
+-            ],
+-            define_macros=macros,
+-            extra_compile_args=extra_compile_args
+-        )
+-    ], compiler_directives=compiler_directives)
++    sources.append('simdjson/csimdjson.pyx')
+ else:
+-    extensions = [
+-        Extension(
+-            'csimdjson',
+-            [
+-                'simdjson/simdjson.cpp',
+-                'simdjson/errors.cpp',
+-                'simdjson/csimdjson.cpp'
+-            ],
+-            extra_compile_args=extra_compile_args,
+-            language='c++'
+-        )
+-    ]
++    sources.append('simdjson/csimdjson.cpp')
++
++
++extensions = [
++    Extension(
++        'csimdjson',
++        sources,
++        define_macros=macros,
++        extra_compile_args=extra_compile_args,
++        libraries=libraries,
++        language='c++',
++    )
++]
++
++if build_with_cython:
++    extensions = cythonize(extensions, 
compiler_directives=compiler_directives)
+ 
+ setup(
+     name='pysimdjson',

diff --git a/dev-python/pysimdjson/metadata.xml 
b/dev-python/pysimdjson/metadata.xml
index bbbada85c7e..0fbbf43703c 100644
--- a/dev-python/pysimdjson/metadata.xml
+++ b/dev-python/pysimdjson/metadata.xml
@@ -5,6 +5,10 @@
                <email>[email protected]</email>
                <name>Patrick McLean</name>
        </maintainer>
+       <maintainer type="project">
+               <email>[email protected]</email>
+               <name>Python</name>
+       </maintainer>
        <upstream>
                <remote-id type="pypi">pysimdjson</remote-id>
        </upstream>

diff --git a/dev-python/pysimdjson/pysimdjson-4.0.0.ebuild 
b/dev-python/pysimdjson/pysimdjson-4.0.0.ebuild
index 67405c43dc7..3400cda568d 100644
--- a/dev-python/pysimdjson/pysimdjson-4.0.0.ebuild
+++ b/dev-python/pysimdjson/pysimdjson-4.0.0.ebuild
@@ -23,13 +23,20 @@ BDEPEND="
 "
 distutils_enable_tests pytest
 
+PATCHES=(
+       "${FILESDIR}"/${P}-unbundle.patch
+)
+
 src_prepare() {
        # benchmarks aren't run
        sed -i -e 's:pytest-benchmark::' setup.cfg || die
        # force regen
-#      rm simdjson/csimdjson.cpp || die
+       rm simdjson/csimdjson.cpp || die
+       # bundled lib :-(
+       rm simdjson/simdjson.{cpp,h} || die
 
        distutils-r1_src_prepare
 
        export BUILD_WITH_CYTHON=1
+       export BUILD_WITH_SYSTEM_LIB=1
 }

Reply via email to