diff --git a/devel/awscli2/Makefile b/devel/awscli2/Makefile new file mode 100644 --- /dev/null +++ b/devel/awscli2/Makefile @@ -0,0 +1,66 @@ +PORTNAME= awscli +DISTVERSION= 2.15.17 +CATEGORIES= devel python +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} +PKGNAMESUFFIX= 2 + +MAINTAINER= hsw@bitmark.com +COMMENT= Universal Command Line Interface for Amazon Web Services V2 +WWW= https://aws.amazon.com/cli + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE.txt + +# Note: Python builtin _sqlite3 is disabled, so need build/lib/run sqlite dep +BUILD_DEPENDS= bash:shells/bash \ + ${PYTHON_PKGNAMEPREFIX}colorama>=0.2.5<=0.4.7:devel/py-colorama@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}docutils>=0.10:textproc/py-docutils@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}cryptography>=3.3.2<=41.0.7_2,1:security/py-cryptography@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}ruamel.yaml>=0.15.0<=0.18.5:devel/py-ruamel.yaml@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}prompt-toolkit>=3.0.24<3.1.0:devel/py-prompt-toolkit@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}distro>=1.5.0<=1.9.0:sysutils/py-distro@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}awscrt>=0.12.4<=0.19.19:devel/py-awscrt@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}dateutil>=2.1<3.0.0:devel/py-dateutil@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}jmespath>=0.7.1<1.1.0:devel/py-jmespath@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}urllib3>=1.25.4<1.27,1:net/py-urllib3@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pyinstaller>=5.12.0:devel/py-pyinstaller@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pyinstaller-hooks-contrib>=2023.9:devel/py-pyinstaller-hooks-contrib@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}flit-core>=3.7.1<3.9.1:devel/py-flit-core@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pip>=22.0.0<24.0.0:devel/py-pip@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}sqlite3>=3.8.13:databases/py-sqlite3@${PY_FLAVOR} +LIB_DEPENDS+= libffi.so:devel/libffi \ + libsqlite3.so:databases/sqlite3 +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlite3>=3.8.13:databases/py-sqlite3@${PY_FLAVOR} + +USES= python:3.10+ gettext-runtime ssl shebangfix +CONFLICTS= awscli py*-awscli* +ALL_TARGET= build +INSTALL_TARGET= install +GNU_CONFIGURE= yes +USE_GITHUB= yes +GH_ACCOUNT= aws +GH_PROJECT= aws-cli + +SHEBANG_FIXES= \ + ${STAGEDIR}${PREFIX}/lib/aws-cli/bin/aws \ + ${STAGEDIR}${PREFIX}/lib/aws-cli/bin/aws_completer +UNWANTED_FILES= \ + ${STAGEDIR}${PREFIX}/lib/aws-cli/bin/pip3 \ + ${STAGEDIR}${PREFIX}/lib/aws-cli/bin/pip3.* \ + ${STAGEDIR}${PREFIX}/lib/aws-cli/bin/pip + +post-install: + @${ECHO_CMD} "shebang fixes for generated files" + ${REINPLACE_CMD} -i '' -e "1s|^\#![[:space:]]*${STAGEDIR}|\#!|" ${SHEBANG_FIXES} + ${LN} -fs ../lib/aws-cli/bin/aws ${STAGEDIR}${PREFIX}/bin/aws + ${LN} -fs ../lib/aws-cli/bin/aws_completer ${STAGEDIR}${PREFIX}/bin/aws_completer + ${RM} ${UNWANTED_FILES} + + @${ECHO_CMD} "generating plist" + cd ${STAGEDIR}${PREFIX} ; ( \ + ${FIND} -s bin lib \! -type d ; \ + ${FIND} bin lib -type d -empty | ${SORT} -r | \ + ${SED} -e 's/^/@dir /' ; \ + ) >> ${TMPPLIST} + +.include diff --git a/devel/awscli2/distinfo b/devel/awscli2/distinfo new file mode 100644 --- /dev/null +++ b/devel/awscli2/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1707269954 +SHA256 (aws-aws-cli-2.15.17_GH0.tar.gz) = 1562bfff9828f744b5308ee9606decfac95d690c38e7ea895d25731b37fd0f5a +SIZE (aws-aws-cli-2.15.17_GH0.tar.gz) = 14739688 diff --git a/devel/awscli2/files/patch-pyproject.toml b/devel/awscli2/files/patch-pyproject.toml new file mode 100644 --- /dev/null +++ b/devel/awscli2/files/patch-pyproject.toml @@ -0,0 +1,35 @@ +--- pyproject.toml.orig 2023-10-02 23:39:43 UTC ++++ pyproject.toml +@@ -1,6 +1,6 @@ + [build-system] + requires = [ +-"flit_core>=3.7.1,<3.8.1", ++"flit_core>=3.7.1,<3.9.1", + ] + build-backend = "pep517" + backend-path = ["backends"] +@@ -30,12 +30,12 @@ classifiers = [ + dependencies = [ + "colorama>=0.2.5,<0.4.7", + "docutils>=0.10,<0.20", +- "cryptography>=3.3.2,<40.0.2", +- "ruamel.yaml>=0.15.0,<=0.17.21", ++ "cryptography>=3.3.2,<=41.0.7", ++ "ruamel.yaml>=0.15.0,<=0.18.5", + # ruamel.yaml only requires ruamel.yaml.clib for Python versions + # less than or equal to Python 3.10. In order to ensure we have + # a consistent dependency closure across all Python versions, + # we explicitly include ruamel.yaml.clib as a dependency. +- "ruamel.yaml.clib>=0.2.0,<=0.2.7", ++ "ruamel.yaml.clib>=0.2.0,<=0.2.8", +- "prompt-toolkit>=3.0.24,<3.0.39", ++ "prompt-toolkit>=3.0.24,<=3.0.43", +- "distro>=1.5.0,<1.9.0", ++ "distro>=1.5.0,<=1.9.0", +@@ -98,4 +98,4 @@ filterwarnings = [ + ] + + [tool.black] +-line-length = 80 +\ No newline at end of file ++line-length = 80 diff --git a/devel/awscli2/files/patch-requirements-base.txt b/devel/awscli2/files/patch-requirements-base.txt new file mode 100644 --- /dev/null +++ b/devel/awscli2/files/patch-requirements-base.txt @@ -0,0 +1,6 @@ +--- requirements-base.txt.orig 2023-10-02 23:39:43 UTC ++++ requirements-base.txt +@@ -1,2 +1,2 @@ + wheel==0.38.4 +-flit_core==3.8.0 ++flit_core==3.9.0 diff --git a/devel/awscli2/pkg-descr b/devel/awscli2/pkg-descr new file mode 100644 --- /dev/null +++ b/devel/awscli2/pkg-descr @@ -0,0 +1,5 @@ +The AWS Command Line Interface (AWS CLI) is a unified tool to manage +your AWS services. + +This package uses the PyInstaller-based V2 branch of the AWS CLI code +for minimal external run-time dependencies. diff --git a/devel/awscli2/pkg-message b/devel/awscli2/pkg-message new file mode 100644 --- /dev/null +++ b/devel/awscli2/pkg-message @@ -0,0 +1,22 @@ +[ +{ +type: install message: <