MFH: r501964 devel/py-cbor2: Remove Python 3 support restriction

This package supports Python 3.x support, so allow it accordingly. It is
required for an upcoming www/py-autobahn update (Python 2/3 compatible).

During QA, a UnicodeDecodeError was observed running tests under Python 3:

File "/usr/local/lib/python3.6/site-packages/py/_vendored_packages/iniconfig.py", line 82, in _parse
  for lineno, line in enumerate(line_iter):
File "/usr/local/lib/python3.6/encodings/ascii.py", line 26, in decode
  return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 165: ordinal not in range(128)

pytest uses the py package, which vendors the iniconfig package, which
isn't unicode aware [1][2][3]. Patch out unicode characters from setup.cfg
accordingly until it's resolved.

While investigating the cause of the above issue, a fix for setup.cfg's
encoding was identified, which removes the need to set the locale via
USE_LOCALE so remove it accordingly.

While I'm here:

  - Pet portlint, spurious space at end of line in pkg-descr
  - Add LICENSE_FILE/TEST_DEPENDS/test target/NO_ARCH

[1] https://github.com/pytest-dev/pytest/issues/3799
[2] https://github.com/RonnyPfannschmidt/iniconfig/issues/5
[3] https://github.com/RonnyPfannschmidt/iniconfig/issues/4

portlint: OK (looks fine.)
porttest: OK (poudriere: 12amd64{py36,py27})
maketest: 215 passed, 1 skipped in 3.29 seconds (Python 2.7)
maketest: 209 passed, 7 skipped in 3.07 seconds (Python 3.6)

Approved by:	portmgr (blanket: ports/framework compliance)

Approved by:	ports-secteam (joneum, blanket: ports/framework compliance)
This commit is contained in:
Kubilay Kocak 2019-05-24 10:20:42 +00:00
parent 8d192236a7
commit 104133a924
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/branches/2019Q2/; revision=502449
3 changed files with 47 additions and 4 deletions

View File

@ -3,6 +3,7 @@
PORTNAME= cbor2
PORTVERSION= 4.1.2
PORTREVISION= 1
CATEGORIES= devel python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@ -11,12 +12,17 @@ MAINTAINER= dvl@FreeBSD.org
COMMENT= Pure Python CBOR (de)serializer with extensive tag support
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools_scm>0:devel/py-setuptools_scm@${PY_FLAVOR}
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools_scm>=1.7.0:devel/py-setuptools_scm@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>0:devel/py-pytest@${PY_FLAVOR}
USES= python:2.7
USES= python
USE_PYTHON= autoplist concurrent distutils
USE_LOCALE= en_US.UTF-8
NO_ARCH= yes
do-test:
@cd ${WRKSRC} && ${PYTHON_CMD} -m pytest -v -rs
.include <bsd.port.mk>

View File

@ -0,0 +1,37 @@
# Added encoding declaration to setup.cfg
# https://github.com/agronholm/cbor2/commit/ba05c122
# https://github.com/agronholm/cbor2/issues/38
# pytest uses py which vendors iniconfig, which isn't unicode aware
# Patch out unicode characters for now
# https://github.com/pytest-dev/pytest/issues/3799
# https://github.com/RonnyPfannschmidt/iniconfig/issues/5
# https://github.com/RonnyPfannschmidt/iniconfig/issues/4
# coverage is not a compulsory dependency
# this block clobbers ports pytest args
--- setup.cfg.orig 2018-12-10 13:39:24 UTC
+++ setup.cfg
@@ -1,8 +1,9 @@
+# coding: utf-8
[metadata]
name = cbor2
description = Pure Python CBOR (de)serializer with extensive tag support
long_description = file: README.rst
-author = Alex Grönholm
+author = Alex Gronholm
author_email = alex.gronholm@nextday.fi
project_urls =
Documentation = https://cbor2.readthedocs.org/en/latest/
@@ -30,10 +31,6 @@ packages = find:
test =
pytest
pytest-cov
-
-[tool:pytest]
-addopts = -rsx --cov --tb=short
-testpaths = tests
[coverage:run]
source = cbor2

View File

@ -5,7 +5,7 @@ There exists another Python CBOR implementation (cbor) which is faster on
CPython due to its C extensions. On PyPy, cbor2 and cbor are almost identical
in performance. The other implementation also lacks documentation and a
comprehensive test suite, does not support most standard extension tags and is
known to crash (segfault) when passed a cyclic structure (say, a list
known to crash (segfault) when passed a cyclic structure (say, a list
containing itself).
WWW: https://pypi.org/project/cbor2/