From owner-svn-ports-head@freebsd.org Wed Nov 28 05:51:50 2018 Return-Path: Delivered-To: svn-ports-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B02451148B79; Wed, 28 Nov 2018 05:51:50 +0000 (UTC) (envelope-from koobs@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 586E88076D; Wed, 28 Nov 2018 05:51:50 +0000 (UTC) (envelope-from koobs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3ABAF2624E; Wed, 28 Nov 2018 05:51:50 +0000 (UTC) (envelope-from koobs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id wAS5pota052289; Wed, 28 Nov 2018 05:51:50 GMT (envelope-from koobs@FreeBSD.org) Received: (from koobs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id wAS5pn2F052286; Wed, 28 Nov 2018 05:51:49 GMT (envelope-from koobs@FreeBSD.org) Message-Id: <201811280551.wAS5pn2F052286@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: koobs set sender to koobs@FreeBSD.org using -f From: Kubilay Kocak Date: Wed, 28 Nov 2018 05:51:49 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r486079 - in head/converters/py-rencode: . files X-SVN-Group: ports-head X-SVN-Commit-Author: koobs X-SVN-Commit-Paths: in head/converters/py-rencode: . files X-SVN-Commit-Revision: 486079 X-SVN-Commit-Repository: ports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 586E88076D X-Spamd-Result: default: False [1.38 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_SPAM_LONG(0.51)[0.511,0]; NEURAL_SPAM_MEDIUM(0.36)[0.364,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US]; NEURAL_SPAM_SHORT(0.51)[0.509,0] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Nov 2018 05:51:50 -0000 Author: koobs Date: Wed Nov 28 05:51:49 2018 New Revision: 486079 URL: https://svnweb.freebsd.org/changeset/ports/486079 Log: 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 Approved by: koobs (python) Added: head/converters/py-rencode/files/ head/converters/py-rencode/files/patch-setup.py (contents, props changed) Modified: head/converters/py-rencode/Makefile Modified: head/converters/py-rencode/Makefile ============================================================================== --- head/converters/py-rencode/Makefile Wed Nov 28 05:24:31 2018 (r486078) +++ head/converters/py-rencode/Makefile Wed Nov 28 05:51:49 2018 (r486079) @@ -2,12 +2,13 @@ PORTNAME= rencode PORTVERSION= 1.0.6 +PORTREVISION= 1 CATEGORIES= converters devel python MASTER_SITES= CHEESESHOP PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= python@FreeBSD.org -COMMENT= R-encoding and r-decoding implementation +COMMENT= Web safe object pickling/unpickling LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/COPYING @@ -17,7 +18,15 @@ BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/p 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 Added: head/converters/py-rencode/files/patch-setup.py ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/converters/py-rencode/files/patch-setup.py Wed Nov 28 05:51:49 2018 (r486079) @@ -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', + )