freebsd-ports/converters/py-rencode/Makefile
Kubilay Kocak 99f578691b 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] 5c928f1456
[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)
2018-11-28 05:51:49 +00:00

32 lines
723 B
Makefile

# $FreeBSD$
PORTNAME= rencode
PORTVERSION= 1.0.6
PORTREVISION= 1
CATEGORIES= converters devel python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
MAINTAINER= python@FreeBSD.org
COMMENT= Web safe object pickling/unpickling
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/COPYING
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist distutils
# Make setup.py test target work with setup.py:test_suite
# See: files/patch-setup.py
post-patch:
${TOUCH} ${WRKSRC}/tests/__init__.py
post-install:
${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/rencode/_rencode.so
do-test:
cd ${WRKSRC} && ${PYTHON_CMD} ${PYDISTUTILS_SETUP} test
.include <bsd.port.mk>