Date: Wednesday, November 13, 2019 @ 06:37:40 Author: yan12125 Revision: 527082
upgpkg: python-aws-xray-sdk 2.4.2-7 - compatibility with botocore 1.13 The patch, which is from https://github.com/aws/aws-xray-sdk-python/pull/181, is not merged yet. It looks good to me, so I added it to Arch Linux before upstream actions. Added: python-aws-xray-sdk/trunk/python-aws-xray-sdk-botocore-1.13.patch Modified: python-aws-xray-sdk/trunk/PKGBUILD -----------------------------------------+ PKGBUILD | 10 ++- python-aws-xray-sdk-botocore-1.13.patch | 80 ++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+), 3 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2019-11-13 03:01:13 UTC (rev 527081) +++ PKGBUILD 2019-11-13 06:37:40 UTC (rev 527082) @@ -4,7 +4,7 @@ pkgname=python-aws-xray-sdk _pkgname=aws-xray-sdk-python pkgver=2.4.2 -pkgrel=6 +pkgrel=7 pkgdesc='AWS X-Ray SDK for Python' arch=(any) url='https://github.com/aws/aws-xray-sdk-python' @@ -17,10 +17,12 @@ # Not using PyPI source tarball as it does not include tests source=("https://github.com/aws/aws-xray-sdk-python/archive/$pkgver/$pkgname-$pkgver.tar.gz" "aws-xray-sdk-psycopg2.8.patch"::"https://github.com/aws/aws-xray-sdk-python/commit/4b4422a3ad9bb9a28399b34851dd574f6155bb66.patch" - "aws-xray-sdk-pynamodb4.patch"::"https://github.com/aws/aws-xray-sdk-python/commit/1dd185ba2fb946cea711a9620f04516c7f6eecdf.patch") + "aws-xray-sdk-pynamodb4.patch"::"https://github.com/aws/aws-xray-sdk-python/commit/1dd185ba2fb946cea711a9620f04516c7f6eecdf.patch" + "$pkgname-botocore-1.13.patch") sha256sums=('e480a6dc21d314faf6a9af4cf871fd7b782fae1e704e0fe5977161707f101374' 'b0740901e4c3bd0a678b217b1121c5f827e8535722a560d9f84fb9a8b90f8f74' - 'c2ad5a109841600d271c0b4b49b0fb2b54bcac6e220bf6a7c4cd6f68e17f377e') + 'c2ad5a109841600d271c0b4b49b0fb2b54bcac6e220bf6a7c4cd6f68e17f377e' + 'f581fe077ed5484e95cf7a3dc651fc3a86bcac6a8fcd142d701edce01266412c') prepare() { cd $_pkgname-$pkgver @@ -27,6 +29,8 @@ patch -Np1 -i ../aws-xray-sdk-psycopg2.8.patch # https://github.com/aws/aws-xray-sdk-python/issues/171 patch -Np1 -i ../aws-xray-sdk-pynamodb4.patch + # https://github.com/aws/aws-xray-sdk-python/pull/181 + patch -Np1 -i ../$pkgname-botocore-1.13.patch } build() { Added: python-aws-xray-sdk-botocore-1.13.patch =================================================================== --- python-aws-xray-sdk-botocore-1.13.patch (rev 0) +++ python-aws-xray-sdk-botocore-1.13.patch 2019-11-13 06:37:40 UTC (rev 527082) @@ -0,0 +1,80 @@ +From a9fb17f9f9d9edd44a2eafc2add36607b2aff98a Mon Sep 17 00:00:00 2001 +From: Daniel Roschka <[email protected]> +Date: Mon, 11 Nov 2019 10:30:52 +0100 +Subject: [PATCH 1/2] Fix patching for PynamoDB 4.x with botocore 1.13 + +--- + aws_xray_sdk/ext/pynamodb/patch.py | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git a/aws_xray_sdk/ext/pynamodb/patch.py b/aws_xray_sdk/ext/pynamodb/patch.py +index 74b7825..2be2d41 100644 +--- a/aws_xray_sdk/ext/pynamodb/patch.py ++++ b/aws_xray_sdk/ext/pynamodb/patch.py +@@ -1,4 +1,3 @@ +-import botocore.vendored.requests.sessions + import json + import wrapt + import pynamodb +@@ -13,16 +12,18 @@ + def patch(): + """Patch PynamoDB so it generates subsegements when calling DynamoDB.""" + +- if hasattr(botocore.vendored.requests.sessions, '_xray_enabled'): +- return +- setattr(botocore.vendored.requests.sessions, '_xray_enabled', True) +- + if PYNAMODB4: + module = 'botocore.httpsession' + name = 'URLLib3Session.send' + else: ++ import botocore.vendored.requests.sessions ++ if hasattr(botocore.vendored.requests.sessions, '_xray_enabled'): ++ return ++ setattr(botocore.vendored.requests.sessions, '_xray_enabled', True) ++ + module = 'botocore.vendored.requests.sessions' + name = 'Session.send' ++ + wrapt.wrap_function_wrapper( + module, name, _xray_traced_pynamodb, + ) + +From f1f8cd4e6635d1beb7c703717971afed54813a6a Mon Sep 17 00:00:00 2001 +From: Daniel Roschka <[email protected]> +Date: Mon, 11 Nov 2019 13:17:37 +0100 +Subject: [PATCH 2/2] Make PynamoDB patching idempotent for PynamoDB 4 + +--- + aws_xray_sdk/ext/pynamodb/patch.py | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/aws_xray_sdk/ext/pynamodb/patch.py b/aws_xray_sdk/ext/pynamodb/patch.py +index 2be2d41..1478808 100644 +--- a/aws_xray_sdk/ext/pynamodb/patch.py ++++ b/aws_xray_sdk/ext/pynamodb/patch.py +@@ -8,15 +8,23 @@ + + PYNAMODB4 = int(pynamodb.__version__.split('.')[0]) >= 4 + ++if PYNAMODB4: ++ import botocore.httpsession ++else: ++ import botocore.vendored.requests.sessions ++ + + def patch(): + """Patch PynamoDB so it generates subsegements when calling DynamoDB.""" + + if PYNAMODB4: ++ if hasattr(botocore.httpsession, '_xray_enabled'): ++ return ++ setattr(botocore.httpsession, '_xray_enabled', True) ++ + module = 'botocore.httpsession' + name = 'URLLib3Session.send' + else: +- import botocore.vendored.requests.sessions + if hasattr(botocore.vendored.requests.sessions, '_xray_enabled'): + return + setattr(botocore.vendored.requests.sessions, '_xray_enabled', True)
