From 50798d781e9234681452e5bf0c159ba607d700a7 Mon Sep 17 00:00:00 2001 From: Rui Chen Date: Tue, 18 Jul 2023 23:58:07 -0400 Subject: [PATCH] aws-elasticbeanstalk: build with pyyaml6 Signed-off-by: Rui Chen aws-elasticbeanstalk: add build patch Signed-off-by: Rui Chen aws-elasticbeanstalk: update build patch Signed-off-by: Rui Chen aws-elasticbeanstalk: add build patch for docker-compose Signed-off-by: Rui Chen --- Formula/aws-elasticbeanstalk.rb | 48 ++++++++++++++++++++++----------- pypi_formula_mappings.json | 2 +- 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/Formula/aws-elasticbeanstalk.rb b/Formula/aws-elasticbeanstalk.rb index 77b2658fc1bb3..e2584d37726d7 100644 --- a/Formula/aws-elasticbeanstalk.rb +++ b/Formula/aws-elasticbeanstalk.rb @@ -6,7 +6,7 @@ class AwsElasticbeanstalk < Formula url "https://files.pythonhosted.org/packages/d2/1a/564eab628edbe1815d2bfde14a1cfb9a3e0e14a7a217731792ec60e1e80f/awsebcli-3.20.7.tar.gz" sha256 "8672d6a9ce14cd49efcf8c26299f0970459430f9a1d817504b5200cb10bec9be" license "Apache-2.0" - revision 1 + revision 2 bottle do sha256 cellar: :any, arm64_ventura: "b7f9268f5318ac08308b28d10aa63bf7f4248b86dcf954bcdd5fbcbfba6231ae" @@ -23,7 +23,10 @@ class AwsElasticbeanstalk < Formula depends_on "rust" => :build depends_on "cffi" depends_on "openssl@3" + depends_on "pycparser" depends_on "python@3.11" + depends_on "pyyaml" + depends_on "six" uses_from_macos "libffi" @@ -85,6 +88,12 @@ class AwsElasticbeanstalk < Formula resource "docker-compose" do url "https://files.pythonhosted.org/packages/0a/43/e71f087c308f7d7566449212ecaf3e02323e6dd0f5b9b6b0fb64cbfd4df6/docker-compose-1.25.5.tar.gz" sha256 "7a2eb6d8173fdf408e505e6f7d497ac0b777388719542be9e49a0efd477a50c6" + + # Build patch for cython 3+ + patch do + url "https://raw.githubusercontent.com/Homebrew/formula-patches/99732fa/aws-elasticbeanstalk/docker-compose-pyyaml6.patch" + sha256 "5382d20b105a20fc6a30a0ac2cedbff290afb0eb769ef4824c3ec6ee54fd8015" + end end resource "dockerpty" do @@ -122,11 +131,6 @@ class AwsElasticbeanstalk < Formula sha256 "7ace6161b621d31e7902eb6b5ae148d12cfd23f4a249b9ffb6b9fee12084323d" end - resource "pycparser" do - url "https://files.pythonhosted.org/packages/5e/0b/95d387f5f4433cb0f53ff7ad859bd2c6051051cebbb564f139a999ab46de/pycparser-2.21.tar.gz" - sha256 "e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206" - end - resource "pynacl" do url "https://files.pythonhosted.org/packages/a7/22/27582568be639dfe22ddb3902225f91f2f17ceff88ce80e4db396c8986da/PyNaCl-1.5.0.tar.gz" sha256 "8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba" @@ -142,11 +146,6 @@ class AwsElasticbeanstalk < Formula sha256 "0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86" end - resource "pyyaml" do - url "https://files.pythonhosted.org/packages/a0/a4/d63f2d7597e1a4b55aa3b4d6c5b029991d3b824b5bd331af8d4ab1ed687d/PyYAML-5.4.1.tar.gz" - sha256 "607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e" - end - resource "requests" do url "https://files.pythonhosted.org/packages/9d/be/10918a2eac4ae9f02f6cfe6414b7a155ccd8f7f9d4380d62fd5b955065c3/requests-2.31.0.tar.gz" sha256 "942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" @@ -157,11 +156,6 @@ class AwsElasticbeanstalk < Formula sha256 "d2cb2de0558762934679b9a104e82eca7af448c9f4974d1f3eeccff651df8a54" end - resource "six" do - url "https://files.pythonhosted.org/packages/21/9f/b251f7f8a76dec1d6651be194dfba8fb8d7781d10ab3987190de8391d08e/six-1.14.0.tar.gz" - sha256 "236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a" - end - resource "termcolor" do url "https://files.pythonhosted.org/packages/8a/48/a76be51647d0eb9f10e2a4511bf3ffb8cc1e6b14e9e4fab46173aa79f981/termcolor-1.1.0.tar.gz" sha256 "1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b" @@ -187,6 +181,11 @@ class AwsElasticbeanstalk < Formula sha256 "d376bd60eace9d437ab6d7ee16f4ab4e821c9dae591e1b783c58ebd8aaf80c5c" end + # patch to work with pyyaml6, remove when merged and released + # pyyaml6 patch PR, https://github.com/aws/aws-elastic-beanstalk-cli/pull/442 + # also update six constraint, upstream PR ref, https://github.com/aws/aws-elastic-beanstalk-cli/pull/447 + patch :DATA + def install # Ensure that the `openssl` crate picks up the intended library. ENV["OPENSSL_DIR"] = Formula["openssl@3"].opt_prefix @@ -200,3 +199,20 @@ def install assert_match("ERROR: InvalidProfileError - The config profile (homebrew-test) could not be found", output) end end + +__END__ +diff --git a/requirements.txt b/requirements.txt +index 421afcf..84b11de 100644 +--- a/requirements.txt ++++ b/requirements.txt +@@ -6,8 +6,8 @@ python-dateutil>=2.1,<3.0.0 # use the same range that 'botocore' uses + requests>=2.31 + setuptools >= 20.0 + semantic_version == 2.8.5 +-six>=1.11.0,<1.15.0 ++six>=1.11.0,<1.17.0 + termcolor == 1.1.0 + wcwidth>=0.1.7,<0.2.0 +-PyYAML>=5.3.1,<5.5 # use the same range that 'aws-cli' uses. This is also compatible with 'docker-compose' ++PyYAML>=5.3.1,<6.1 # use the same range that 'aws-cli' uses. This is also compatible with 'docker-compose' + urllib3>=1.26.5 #1.26.5 fix CVE-2021-33503 diff --git a/pypi_formula_mappings.json b/pypi_formula_mappings.json index f1df80e08cd2c..17fbf862f7d53 100644 --- a/pypi_formula_mappings.json +++ b/pypi_formula_mappings.json @@ -54,7 +54,7 @@ "exclude_packages": ["six", "tabulate"] }, "aws-elasticbeanstalk": { - "exclude_packages": ["cffi"] + "exclude_packages": ["cffi", "pycparser", "PyYAML", "six"] }, "aws-google-auth": { "exclude_packages": ["pillow", "six", "tabulate", "cffi", "pycparser"]