Skip to content

Commit

Permalink
devel/py-cbor2: Remove Python 3 support restriction
Browse files Browse the repository at this point in the history
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] pytest-dev/pytest#3799
[2] pytest-dev/iniconfig#5
[3] pytest-dev/iniconfig#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)
MFH:		2019Q2


git-svn-id: svn+ssh://svn.freebsd.org/ports/head@501964 35697150-7ecd-e111-bb59-0022644237b5
  • Loading branch information
koobs committed May 18, 2019
1 parent c9cf662 commit 3aaacce
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 4 deletions.
12 changes: 9 additions & 3 deletions devel/py-cbor2/Makefile
Expand Up @@ -3,6 +3,7 @@

PORTNAME= cbor2
PORTVERSION= 4.1.2
PORTREVISION= 1
CATEGORIES= devel python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
Expand All @@ -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>
37 changes: 37 additions & 0 deletions devel/py-cbor2/files/patch-setup.cfg
@@ -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
2 changes: 1 addition & 1 deletion devel/py-cbor2/pkg-descr
Expand Up @@ -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/

0 comments on commit 3aaacce

Please sign in to comment.