Skip to contentSkip to conversation

python-aws-iot-device-sdk-python: fix runtime dependencies

PATCH In review André Draszik 1 participant 4 messages Mar 22, 2018

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/3 python-aws-iot-device-sdk-python: fix runtime dependencies

From: André Draszik <[email protected]>

They were completely wrong...
List of imports obtained via:
rgrep -w import \

   | awk -F : '{ $1="" ; gsub(/^[ \t]+|[ \t]+$/, ""); print; }' \
   | grep -v AWSIoTPythonSDK \
   | sort -u

and packages providing the relevant modules extracted using oe-pkgdata-util find-path.

---
v2:
* no changes

---
 .../recipes-devtools/python/python-aws-iot-device-sdk-python.inc | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc +8 -1
index 177b819d4..1fc98bdbd 100644
@@ -11,8 +11,15 @@ inherit pypi
 PYPI_PACKAGE = "AWSIoTPythonSDK"
 
 RDEPENDS_${PN} += " \
-    ${PYTHON_PN}-pyopenssl \
+    ${PYTHON_PN}-crypt \
+    ${PYTHON_PN}-datetime \
+    ${PYTHON_PN}-io \
     ${PYTHON_PN}-json \
+    ${PYTHON_PN}-logging \
+    ${PYTHON_PN}-math \
+    ${PYTHON_PN}-netclient \
+    ${PYTHON_PN}-numbers \
+    ${PYTHON_PN}-threading \
 "
 
 BBCLASSEXTEND = "native nativesdk"
Signature · 1 line
2.16.2
#1 lore raw

PATCH v2 2/3 python-aws-iot-device-sdk-python: fix LICENSE

From: André Draszik <[email protected]>

The SDK ships with an embedded, modified copy of python-paho, which is either EPL-1.0 or EDL-1.0 licensed:

vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv # Copyright (c) 2012-2014 Roger Light <[email protected]>
#
# All rights reserved. This program and the accompanying materials

 # are made available under the terms of the Eclipse Public License v1.0
 # and Eclipse Distribution License v1.0 which accompany this distribution.
 #
 # The Eclipse Public License is available at
 #    http://www.eclipse.org/legal/epl-v10.html
 # and the Eclipse Distribution License is available at
 #   http://www.eclipse.org/org/documents/edl-v10.php.
 #
 # Contributors:
 #    Roger Light - initial API and implementation

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ endline=14 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

---
v2:
* also add EDL-1.0
* add more lines to client.py license checksum, so as to spot changes more reliably

---
 .../recipes-devtools/python/python-aws-iot-device-sdk-python.inc   | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc +5 -2
index 1fc98bdbd..7b6066083 100644
@@ -1,7 +1,10 @@
 DESCRIPTION = "SDK for connecting to AWS IoT using Python."
 HOMEPAGE = "https://github.com/aws/aws-iot-device-sdk-python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9ac49901b833e769c7d6f21e8dbd7b30"
+LICENSE = "Apache-2.0 & (EPL-1.0 | EDL-1.0)"
+LIC_FILES_CHKSUM = "\
+    file://LICENSE.txt;md5=9ac49901b833e769c7d6f21e8dbd7b30 \
+    file://AWSIoTPythonSDK/core/protocol/paho/client.py;endline=14;md5=5a3c8a1a4bb71bd934f450ecff972ad9 \
+"
 
 SRC_URI[md5sum] = "97e8cf0d40ef3765d979c19b534a716d"
 SRC_URI[sha256sum] = "d68cbff396143e837b4c23b6621d3b7ae374281afc75eed8e51a28625d9125ba"
Signature · 1 line
2.16.2
#2 lore raw

PATCH v2 3/3 python-aws-iot-device-sdk-python: also package examples (as additional package)

In reply to André Draszik

From: André Draszik <[email protected]>

---
v2:
* add correct license to examples package
* run through oe-stylize.py

---
 .../python/python-aws-iot-device-sdk-python.inc             | 13 +++++++++++++
 .../python/python-aws-iot-device-sdk-python_1.3.1.bb        |  2 ++
 2 files changed, 15 insertions(+)
meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc +13 -0
index 7b6066083..a3299e4ac 100644
@@ -1,6 +1,7 @@
 DESCRIPTION = "SDK for connecting to AWS IoT using Python."
 HOMEPAGE = "https://github.com/aws/aws-iot-device-sdk-python"
 LICENSE = "Apache-2.0 & (EPL-1.0 | EDL-1.0)"
+LICENSE_${PN}-examples = "Apache-2.0"
 LIC_FILES_CHKSUM = "\
     file://LICENSE.txt;md5=9ac49901b833e769c7d6f21e8dbd7b30 \
     file://AWSIoTPythonSDK/core/protocol/paho/client.py;endline=14;md5=5a3c8a1a4bb71bd934f450ecff972ad9 \
@@ -13,6 +14,15 @@ inherit pypi
 
 PYPI_PACKAGE = "AWSIoTPythonSDK"
 
+do_install_append() {
+        install -d -m0755 ${D}${datadir}/${BPN}/examples
+        cp --preserve=mode,timestamps -R ${S}/samples/* ${D}${datadir}/${BPN}/examples
+        # this requires the full blown AWS Python SDK
+        rm -r ${D}${datadir}/${BPN}/examples/basicPubSub
+}
+
+PACKAGES =+ "${PN}-examples"
+
 RDEPENDS_${PN} += " \
     ${PYTHON_PN}-crypt \
     ${PYTHON_PN}-datetime \
@@ -24,5 +34,8 @@ RDEPENDS_${PN} += " \
     ${PYTHON_PN}-numbers \
     ${PYTHON_PN}-threading \
 "
+RDEPENDS_${PN}-examples += "${PN}"
+
+FILES_${PN}-examples = "${datadir}/${BPN}/examples"
 
 BBCLASSEXTEND = "native nativesdk"
meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python_1.3.1.bb +2 -0
index 12ae978e3..490e97391 100644
@@ -1,2 +1,4 @@
 inherit setuptools
 require python-aws-iot-device-sdk-python.inc
+
+RDEPENDS_${PN}-examples += "${PYTHON_PN}-argparse"
Signature · 1 line
2.16.2
#3 lore raw
In reply to André Draszik
Quoted 10 lines · André Draszik

From: André Draszik <[email protected]>

They were completely wrong...
List of imports obtained via:

   rgrep -w import \
   | awk -F : '{ $1="" ; gsub(/^[ \t]+|[ \t]+$/, ""); print; }' \
   | grep -v AWSIoTPythonSDK \
   | sort -u

and packages providing the relevant modules extracted using oe-pkgdata-util find-path.

This is a very tedious approach actually... What is the usual recommended way to make sure dependencies are correctly reflected in RDEPENDS?

Cheers,
Andre'