summaryrefslogtreecommitdiff
path: root/converters/py-rencode/files/patch-setup.py
diff options
context:
space:
mode:
authorKubilay Kocak <koobs@FreeBSD.org>2018-11-28 05:51:49 +0000
committerKubilay Kocak <koobs@FreeBSD.org>2018-11-28 05:51:49 +0000
commit99f578691b95e381c25c56217858e2e37b969117 (patch)
treee39f6521eaf428e1a7d7128f343c9075cccc3bd9 /converters/py-rencode/files/patch-setup.py
parentUpdate to the 20181123 snapshot of GCC 8.2.1. (diff)
converters/py-rencode: Fails to configure if cython is installed
ports r482774 removed USE_PYTHON=cython, likely due to it (cython) not being explicitly declared as a dependency in setup.py:*_requires. However, setup.py conditionally builds with cython if it is installed, but the 1.0.6 source distribution (sdist) does not contain a .pyx file to build with. This leads to a configure/build error when cython is installed: ValueError: 'rencode/rencode.pyx' doesn't match any files Upstream commit 5c928f14567fabc9efb8bbb8ac5e0eef03c61541 [1] via issue #25 [2] adds the required .pyx file to the sdist, which technically addresses the "build with cython from the sdist" issue, but does not fundamentally resolve the higher-level question: why build with cython when a C source pre-processed by cython has already been produced for, and is contained in, the source distribution. A cython build (and the dependency on cython) does not appear to be necessary, nor intended [3][4], nor recommended [5], even after #25 is released, for sdist consumers. The conditional code to build with cython should not be included in setup.py, at least not as a default case, or without an explicit request by the user to use cython, as an optional build method, for sdist consumers (most downstream packagers and setuptools/pip users [6]). This change removes the conditional check for Cython, leaving the standard setuptools build_ext (with the packaged .c) file, as the build method. While I'm here: - Canonicalise COMMENT (match seutp.py:description) - Add test target with post-patch target to make the tests dir a module usable by a setup.py test (via test_suite directive) target. - Honour CFLAGS: Remove forced (appended) -O3 arg from setup.py [1] https://github.com/aresch/rencode/commit/5c928f14567fabc9efb8bbb8ac5e0eef03c61541 [2] https://github.com/aresch/rencode/pull/25 [3] setup.py: "Error: sdist requires cython module to generate `.c` file." [4] dev-requirements.txt:Cython [5] https://cython.readthedocs.io/en/latest/src/userguide/source_files_and_compilation.html#distributing-cython-modules [6] https://github.com/aresch/rencode/issues/11 PR: 233561 Reported by: John Hein <z7dr6ut7gs snkmail com> Approved by: koobs (python)
Notes
Notes: svn path=/head/; revision=486079
Diffstat (limited to '')
-rw-r--r--converters/py-rencode/files/patch-setup.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/converters/py-rencode/files/patch-setup.py b/converters/py-rencode/files/patch-setup.py
new file mode 100644
index 000000000000..8c34a7b2e316
--- /dev/null
+++ b/converters/py-rencode/files/patch-setup.py
@@ -0,0 +1,35 @@
+# 1) converters/py-rencode: Fails to configure if cython is installed
+# 2) make setup.py test command work via test_suite directive
+# 3) Honour/respect user CFLAGS
+# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=233561
+
+--- setup.py.orig 2018-10-21 17:41:35 UTC
++++ setup.py
+@@ -29,19 +29,14 @@ from distutils.errors import CCompilerError, Distutils
+ from setuptools import setup
+ from setuptools.extension import Extension
+
+-try:
+- from Cython.Build import build_ext
+- from Cython.Build import cythonize
+-except ImportError as ex:
+- from setuptools.command.build_ext import build_ext
+- cythonize = False
++from setuptools.command.build_ext import build_ext
++cythonize = False
+
+ source_ext = ".pyx" if cythonize else ".c"
+
+ ext_modules = [
+ Extension(
+ "rencode._rencode",
+- extra_compile_args=["-O3"],
+ sources=["rencode/rencode" + source_ext],
+ ),
+ ]
+@@ -93,4 +88,5 @@ setup(
+ cmdclass={'build_ext': optional_build_ext},
+ ext_modules=ext_modules,
+ setup_requires=['setuptools', 'wheel'],
++ test_suite='tests',
+ )