Skip to content

Commit

Permalink
*: Replace USES=pycryptography* with USE_PYTHON=cryptography{,_build,…
Browse files Browse the repository at this point in the history
…_test}

- Introduce USE_PYTHON=cryptography{,_build,_test}
- Switch all 96 ports from USES=pycryptography to with USE_PYTHON=cryptography{,_build,_test}
- Remove Mk/Uses/pycryptography.mk

PR:		273727
Approved by:	tcberner (portmgr)
Exp-run by:	antoine
  • Loading branch information
sunpoet committed Sep 29, 2023
1 parent 2a4bb83 commit 3754fc5
Show file tree
Hide file tree
Showing 98 changed files with 216 additions and 231 deletions.
46 changes: 0 additions & 46 deletions Mk/Uses/pycryptography.mk

This file was deleted.

30 changes: 30 additions & 0 deletions Mk/Uses/python.mk
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,14 @@
# prefix-less original name, e.g.
# bin/foo-2.7 --> bin/foo.
#
# cryptography_build
# - Depend on security/cryptography at build-time.
#
# cryptography - Depend on security/cryptography at run-time.
#
# cryptography_test
# - Depend on security/cryptography at test-time.
#
# cython - Depend on lang/cython at build-time.
#
# cython_run - Depend on lang/cython at run-time.
Expand Down Expand Up @@ -317,6 +325,9 @@ _PYTHON_RELPORTDIR= lang/python
_VALID_PYTHON_FEATURES= allflavors \
autoplist \
concurrent \
cryptography_build \
cryptography \
cryptography_test \
cython \
cython_run \
cython_test \
Expand Down Expand Up @@ -597,6 +608,25 @@ _PYTHONPKGLIST= ${WRKDIR}/.PLIST.pymodtmp
# - it uses USE_PYTHON=distutils
#

# cryptography* support
. if ${PYCRYPTOGRAPHY_DEFAULT} == rust
CRYPTOGRAPHY_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cryptography>=41.0.3_1,1:security/py-cryptography@${PY_FLAVOR}
. else
CRYPTOGRAPHY_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cryptography-legacy>=3.4.8_1,1:security/py-cryptography-legacy@${PY_FLAVOR}
. endif

. if defined(_PYTHON_FEATURE_CRYPTOGRAPHY_BUILD)
BUILD_DEPENDS+= ${CRYPTOGRAPHY_DEPENDS}
. endif

. if defined(_PYTHON_FEATURE_CRYPTOGRAPHY)
RUN_DEPENDS+= ${CRYPTOGRAPHY_DEPENDS}
. endif

. if defined(_PYTHON_FEATURE_CRYPTOGRAPHY_TEST)
TEST_DEPENDS+= ${CRYPTOGRAPHY_DEPENDS}
. endif

# cython* support
. if defined(_PYTHON_FEATURE_CYTHON)
BUILD_DEPENDS+= cython-${PYTHON_VER}:lang/cython@${PY_FLAVOR}
Expand Down
3 changes: 2 additions & 1 deletion cad/uranium/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}scipy>0:science/py-scipy@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}PyOpenGL>0:graphics/py-PyOpenGL@${PY_FLAVOR}

USES= cmake gettext python pycryptography:run pyqt:5
USES= cmake gettext python pyqt:5
USE_PYQT= pyqt5
USE_PYTHON= cryptography
USE_GITHUB= yes
GH_ACCOUNT= Ultimaker
STRIP=
Expand Down
4 changes: 2 additions & 2 deletions comms/py-esptool/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pyserial>=3.0:comms/py-pyserial@${PY_FLAVOR}
${PYTHON_PKGNAMEPREFIX}reedsolo>=1.5.3,<=1.6.0:devel/py-reedsolo@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pyelftools>0:devel/py-pyelftools@${PY_FLAVOR}

USES= python pycryptography:run
USES= python
USE_GITHUB= yes
USE_PYTHON= autoplist concurrent distutils pytest
USE_PYTHON= autoplist concurrent cryptography distutils pytest

GH_ACCOUNT= espressif
NO_ARCH= yes
Expand Down
4 changes: 2 additions & 2 deletions databases/py-mycli/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cli-helpers>=2.2.1:devel/py-cli-helpers@${PY
${PYTHON_PKGNAMEPREFIX}sqlglot>=5.1.3:databases/py-sqlglot@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}sqlparse>=0.3.0<0.5.0:databases/py-sqlparse@${PY_FLAVOR}

USES= mysql pycryptography:run python
USE_PYTHON= autoplist concurrent distutils
USES= mysql python
USE_PYTHON= autoplist concurrent cryptography distutils

NO_ARCH= yes

Expand Down
2 changes: 1 addition & 1 deletion databases/py-ormar/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ OPTIONS_DEFAULT= SQLITE
DATABASES_DESC= Database Support

CRYPTO_DESC= Support for password encryption
CRYPTO_USES= pycryptography:run
CRYPTO_USE= PYTHON=cryptography
SQLITE_USES= sqlite
SQLITE_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiosqlite>0:databases/py-aiosqlite@${PY_FLAVOR}
MYSQL_USES= mysql
Expand Down
2 changes: 1 addition & 1 deletion databases/py-sqlalchemy-utils/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ URL_DESC= URL type support
ARROW_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}arrow>=0.3.4:devel/py-arrow@${PY_FLAVOR}
BABEL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Babel>=1.3:devel/py-babel@${PY_FLAVOR}
COLOR_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}colour>=0.0.4:graphics/py-colour@${PY_FLAVOR}
ENCRYPTED_USES= pycryptography:run
ENCRYPTED_USE= PYTHON=cryptography
INTERVALS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}intervals>=0.7.1:net/py-intervals@${PY_FLAVOR}
PASSWORD_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}passlib>=1.6<2.0:security/py-passlib@${PY_FLAVOR}
PENDULUM_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pendulum>=2.0.5:devel/py-pendulum@${PY_FLAVOR}
Expand Down
4 changes: 2 additions & 2 deletions devel/oci-cli/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}arrow>=1.0.0:devel/py-arrow@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}six>=1.15.0:devel/py-six@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}terminaltables>=3.1.0:textproc/py-terminaltables@${PY_FLAVOR}

USES= python:3.8-3.11 pycryptography:run
USE_PYTHON= autoplist concurrent distutils
USES= python:3.8-3.11
USE_PYTHON= autoplist concurrent cryptography distutils

NO_ARCH= yes

Expand Down
4 changes: 2 additions & 2 deletions devel/osc/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ LICENSE_FILE= ${WRKSRC}/COPYING

RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}urllib3>=0:net/py-urllib3@${PY_FLAVOR}

USES= cpe python pycryptography:run
USES= cpe python
USE_GITHUB= yes
GH_ACCOUNT= openSUSE
USE_PYTHON= autoplist distutils noflavors pytest
USE_PYTHON= autoplist cryptography distutils noflavors pytest
NO_ARCH= yes
CPE_VENDOR= suse
CPE_PRODUCT= opensuse_osc
Expand Down
4 changes: 2 additions & 2 deletions devel/py-adb/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ USE_GITHUB= yes
GH_ACCOUNT= google
GH_PROJECT= python-${PORTNAME}

USES= python pycryptography:run
USE_PYTHON= autoplist distutils pytest
USES= python
USE_PYTHON= autoplist cryptography distutils pytest

NO_ARCH= yes

Expand Down
4 changes: 2 additions & 2 deletions devel/py-aiortc/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ RUN_DEPENDS= ${PYNUMPY} \
${PYTHON_PKGNAMEPREFIX}pyee>=9.0.0:devel/py-pyee@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pylibsrtp>=0.5.6:devel/py-pylibsrtp@${PY_FLAVOR}

USES= localbase python pycryptography:run
USE_PYTHON= autoplist concurrent distutils
USES= localbase python
USE_PYTHON= autoplist concurrent cryptography distutils

post-install:
${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/${PORTNAME}/codecs/*.so
Expand Down
4 changes: 2 additions & 2 deletions devel/py-azure-identity/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}azure-core>=1.0.0<2.0.0:devel/py-azure-core@
${PYTHON_PKGNAMEPREFIX}msal-extensions>=0.3.0:devel/py-msal-extensions@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}six>=1.12.0:devel/py-six@${PY_FLAVOR}

USES= azurepy python pycryptography:run zip
USE_PYTHON= autoplist concurrent distutils
USES= azurepy python zip
USE_PYTHON= autoplist concurrent cryptography distutils

NO_ARCH= yes

Expand Down
4 changes: 2 additions & 2 deletions devel/py-azure-keyvault/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}msrest>=0.5.0:net-mgmt/py-msrest@${PY_FLAVOR
${PYTHON_PKGNAMEPREFIX}azure-common>=1.1:www/py-azure-common@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>=2.18.4:www/py-requests@${PY_FLAVOR}

USES= azurepy python pycryptography:run zip
USE_PYTHON= autoplist concurrent distutils
USES= azurepy python zip
USE_PYTHON= autoplist concurrent cryptography distutils

NO_ARCH= yes

Expand Down
4 changes: 2 additions & 2 deletions devel/py-azure-multiapi-storage/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}azure-common>=0:www/py-azure-common@${PY_FLA
${PYTHON_PKGNAMEPREFIX}azure-core>=1.10.0<2.0.0:devel/py-azure-core@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}msrest>=0.6.18:net-mgmt/py-msrest@${PY_FLAVOR}

USES= azurepy python pycryptography:run
USE_PYTHON= autoplist concurrent distutils
USES= azurepy python
USE_PYTHON= autoplist concurrent cryptography distutils

NO_ARCH= yes

Expand Down
4 changes: 2 additions & 2 deletions devel/py-azure-storage-common/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}azure-common>=1.1.5:www/py-azure-common@${PY
${PYTHON_PKGNAMEPREFIX}requests>=0:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dateutil>=0:devel/py-dateutil@${PY_FLAVOR}

USES= azurepy python pycryptography:run
USE_PYTHON= autoplist concurrent distutils
USES= azurepy python
USE_PYTHON= autoplist concurrent cryptography distutils

NO_ARCH= yes

Expand Down
4 changes: 2 additions & 2 deletions devel/py-castellan/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}keystoneauth1>=3.4.0:devel/py-keystoneauth1@
${PYTHON_PKGNAMEPREFIX}requests>=2.18.0:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}stevedore>=1.20.0:devel/py-stevedore@${PY_FLAVOR}

USES= pycryptography:run python shebangfix
USE_PYTHON= autoplist concurrent distutils
USES= python shebangfix
USE_PYTHON= autoplist concurrent cryptography distutils

NO_ARCH= yes

Expand Down
4 changes: 2 additions & 2 deletions devel/py-cursive/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}castellan>=0.4.0:devel/py-castellan@${PY_FLA
${PYTHON_PKGNAMEPREFIX}oslo.utils>=3.16.0:devel/py-oslo.utils@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pbr>=1.6:devel/py-pbr@${PY_FLAVOR}

USES= pycryptography:run python
USE_PYTHON= autoplist concurrent distutils
USES= python
USE_PYTHON= autoplist concurrent cryptography distutils

NO_ARCH= yes

Expand Down
4 changes: 2 additions & 2 deletions devel/py-moto/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aws-xray-sdk>=0.93:devel/py-aws-xray-sdk@${
${PYTHON_PKGNAMEPREFIX}sshpubkeys>=3.1.0:security/py-sshpubkeys@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}yaml>=5.1:devel/py-yaml@${PY_FLAVOR}

USES= pycryptography:run python
USE_PYTHON= autoplist concurrent pep517 pytest
USES= python
USE_PYTHON= autoplist concurrent cryptography pep517 pytest

NO_ARCH= yes

Expand Down
4 changes: 2 additions & 2 deletions devel/py-msal/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}requests>=2.0.0<3:www/py-requests@${PY_FLAVO
${PYTHON_PKGNAMEPREFIX}pyjwt>=1.0.0<3:www/py-pyjwt@${PY_FLAVOR}

# cryptography>=0.6<43,1
USES= python pycryptography:run
USE_PYTHON= autoplist distutils
USES= python
USE_PYTHON= autoplist cryptography distutils

NO_ARCH= yes

Expand Down
4 changes: 2 additions & 2 deletions devel/py-oci/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}certifi>0:security/py-certifi@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}openssl>=17.5.0:security/py-openssl@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytz>=2016.10:devel/py-pytz@${PY_FLAVOR}

USES= python:3.8-3.11 pycryptography:run
USE_PYTHON= autoplist distutils
USES= python:3.8-3.11
USE_PYTHON= autoplist cryptography distutils

NO_ARCH= yes

Expand Down
4 changes: 2 additions & 2 deletions devel/py-openstacksdk/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}appdirs>=1.3.0:devel/py-appdirs@${PY_FLAVOR}
${PYTHON_PKGNAMEPREFIX}yaml>=3.13:devel/py-yaml@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requestsexceptions>=1.2.0:devel/py-requestsexceptions@${PY_FLAVOR}

USES= pycryptography:run python shebangfix
USE_PYTHON= autoplist concurrent distutils
USES= python shebangfix
USE_PYTHON= autoplist concurrent cryptography distutils

NO_ARCH= yes

Expand Down
4 changes: 2 additions & 2 deletions devel/py-pip/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}freezegun>=0:devel/py-freezegun@${PY_FLAVOR
git:devel/git \
svn:devel/subversion

USES= cpe python pycryptography:test shebangfix
USES= cpe python shebangfix
CPE_VENDOR= pypa
USE_PYTHON= autoplist concurrent distutils pytest
USE_PYTHON= autoplist concurrent cryptography_test distutils pytest

MAKE_ENV= PYTHONPATH=${WRKSRC}/src/
NO_ARCH= yes
Expand Down
2 changes: 1 addition & 1 deletion devel/py-twisted/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ OPTIONS_DEFAULT=CONCH HTTP2 SERIAL TLS
CONCH_DESC= Conch secure shell SSH
SERIAL_DESC= Serial port extension

CONCH_USES= pycryptography:run
CONCH_USE= PYTHON=cryptography
CONCH_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}appdirs>=1.4.0:devel/py-appdirs@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}bcrypt>=3.1.3:security/py-bcrypt@${PY_FLAVOR}
HTTP2_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}h2>=3.0<5.0:www/py-h2@${PY_FLAVOR} \
Expand Down
4 changes: 2 additions & 2 deletions dns/letsdns/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ BUILD_DEPENDS= ${PY_SETUPTOOLS} \
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}dnspython>0:dns/py-dnspython@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR}

USES= python pycryptography:run
USES= python
USE_GITHUB= yes
GH_ACCOUNT= LetsDNS
USE_PYTHON= autoplist pep517
USE_PYTHON= autoplist cryptography pep517

.include <bsd.port.mk>
4 changes: 2 additions & 2 deletions dns/py-dns-crawler/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}asn1crypto>=1.3.0:devel/py-asn1crypto@${PY_F
${PYTHON_PKGNAMEPREFIX}requests-toolbelt>=0.9.1:www/py-requests-toolbelt@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}rq>=1.2.2:devel/py-rq@${PY_FLAVOR}

USES= pycryptography:run python
USE_PYTHON= autoplist concurrent distutils
USES= python
USE_PYTHON= autoplist concurrent cryptography distutils

NO_ARCH= yes

Expand Down
4 changes: 2 additions & 2 deletions dns/py-dns-lexicon/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}beautifulsoup>=4:www/py-beautifulsoup@${PY_F
${PYTHON_PKGNAMEPREFIX}requests>=2:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}tldextract>=2:dns/py-tldextract@${PY_FLAVOR}

USES= pycryptography:run python
USE_PYTHON= autoplist concurrent pep517
USES= python
USE_PYTHON= autoplist concurrent cryptography pep517

NO_ARCH= yes

Expand Down
2 changes: 1 addition & 1 deletion dns/py-dnspython/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ DOQ_DESC= DNS over QUIC Support
IDNA_DESC= Internationalizede Domain Names in Application Support
TRIO_DESC= TRIO Support

DNSSEC_USES= pycryptography:run
DNSSEC_USE= PYTHON=cryptography
DOH_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}h2>=4.0.0:www/py-h2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}httpx>=0.24.1:www/py-httpx@${PY_FLAVOR}
DOQ_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aioquic>0:www/py-aioquic@${PY_FLAVOR}
Expand Down
4 changes: 2 additions & 2 deletions finance/electrum/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiohttp-socks>=0.3:net/py-aiohttp-socks@${PY
${PYTHON_PKGNAMEPREFIX}secp256k1>0:math/py-secp256k1@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}sqlite3>=3.7.9:databases/py-sqlite3@${PY_FLAVOR}

USES= cpe python pycryptography:run shebangfix
USE_PYTHON= autoplist concurrent distutils
USES= cpe python shebangfix
USE_PYTHON= autoplist concurrent cryptography distutils

PYDISTUTILS_PKGNAME= Electrum

Expand Down
4 changes: 2 additions & 2 deletions finance/py-ccxt/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}aiohttp>=3.8:www/py-aiohttp@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}yarl>=1.7.2:www/py-yarl@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest-asyncio>0:devel/py-pytest-asyncio@${PY_FLAVOR}

USES= python pycryptography:build,run
USE_PYTHON= distutils autoplist pytest # 3 errors during tests, see https://github.com/ccxt/ccxt/issues/16661
USES= python
USE_PYTHON= distutils autoplist cryptography cryptography_build pytest # 3 errors during tests, see https://github.com/ccxt/ccxt/issues/16661

NO_ARCH= yes

Expand Down
Loading

0 comments on commit 3754fc5

Please sign in to comment.