[oe] [meta-python][PATCH v2] python-jsonschema: add PACKAGECONFIG format_nongpl

Nicola Lunghi nick83ola at gmail.com
Fri Nov 15 17:20:25 UTC 2019


This is the backport of a patch upstream
- 10f8a3e Add format validators as separate modules

This will add a PACKAGECONFIG = "nongpl" option to include only dependencies
not licensed under the GPL license.

Signed-off-by: Nicola Lunghi <nick83ola at gmail.com>
---
 .../python/python-jsonschema.inc              | 11 +++
 ...-setup.cfg-add-non-GPL-format-option.patch | 96 +++++++++++++++++++
 2 files changed, 107 insertions(+)
 create mode 100644 meta-python/recipes-devtools/python/python-jsonschema/0001-setup.cfg-add-non-GPL-format-option.patch

diff --git a/meta-python/recipes-devtools/python/python-jsonschema.inc b/meta-python/recipes-devtools/python/python-jsonschema.inc
index c1b11a2cc..837d5760c 100644
--- a/meta-python/recipes-devtools/python/python-jsonschema.inc
+++ b/meta-python/recipes-devtools/python/python-jsonschema.inc
@@ -5,6 +5,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=7a60a81c146ec25599a3e1dabb8610a8 \
                     file://json/LICENSE;md5=9d4de43111d33570c8fe49b4cb0e01af"
 DEPENDS += "${PYTHON_PN}-vcversioner-native ${PYTHON_PN}-setuptools-scm-native"
 
+FILESEXTRAPATHS_prepend := "${THISDIR}/python-jsonschema:"
+
+SRC_URI_append = " file://0001-setup.cfg-add-non-GPL-format-option.patch"
+
 SRC_URI[md5sum] = "a802ab85600074a726ef6acc4e6a8148"
 SRC_URI[sha256sum] = "2fa0684276b6333ff3c0b1b27081f4b2305f0a36cf702a23db50edb141893c3f"
 
@@ -16,6 +20,13 @@ PACKAGECONFIG[format] = ",,,\
     ${PYTHON_PN}-rfc3987 \
     ${PYTHON_PN}-strict-rfc3339 \
 "
+PACKAGECONFIG[nongpl] = ",,,\
+    ${PYTHON_PN}-idna \
+    ${PYTHON_PN}-jsonpointer \
+    ${PYTHON_PN}-webcolors \
+    ${PYTHON_PN}-rfc3986-validator \
+    ${PYTHON_PN}-rfc3339-validator \
+"
 
 RDEPENDS_${PN} += " \
     ${PYTHON_PN}-attrs \
diff --git a/meta-python/recipes-devtools/python/python-jsonschema/0001-setup.cfg-add-non-GPL-format-option.patch b/meta-python/recipes-devtools/python/python-jsonschema/0001-setup.cfg-add-non-GPL-format-option.patch
new file mode 100644
index 000000000..afc38a30b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python-jsonschema/0001-setup.cfg-add-non-GPL-format-option.patch
@@ -0,0 +1,96 @@
+From 8df0332475991884b8e1801d31f9c3e06d06bf9f Mon Sep 17 00:00:00 2001
+From: Nicola Lunghi <nick83ola at gmail.com>
+Date: Thu, 14 Nov 2019 18:58:56 +0000
+Subject: [PATCH] setup.cfg: add non GPL format option
+
+This is a rewrite of the following upstream commits:
+
+ - 10f8a3e Add format validators as separate modules
+ - af37707 non GPL format option
+
+removing all the non necessary bits (tox in particular)
+
+Original author: Nicolas Aimetti <naimetti at yahoo.com.ar>
+
+Upstream-status: Backported. [ to be removed for releases > 3.1.1 ]
+---
+ jsonschema/_format.py | 33 ++++++++++++++++++++++++++++-----
+ setup.cfg             |  6 ++++++
+ 2 files changed, 34 insertions(+), 5 deletions(-)
+
+diff --git a/jsonschema/_format.py b/jsonschema/_format.py
+index aa04090..c967d98 100644
+--- a/jsonschema/_format.py
++++ b/jsonschema/_format.py
+@@ -248,7 +248,26 @@ else:
+ try:
+     import rfc3987
+ except ImportError:
+-    pass
++    try:
++        from rfc3986_validator import validate_rfc3986
++    except ImportError:
++        pass
++    else:
++        @_checks_drafts(name="uri",)
++        def is_uri(instance):
++            if not isinstance(instance, str_types):
++                return True
++            return validate_rfc3986(instance, rule="URI")
++
++        @_checks_drafts(
++            draft6="uri-reference",
++            draft7="uri-reference",
++            raises=ValueError,
++        )
++        def is_uri_reference(instance):
++            if not isinstance(instance, str_types):
++                return True
++            return validate_rfc3986(instance, rule="URI_reference")
+ else:
+     @_checks_drafts(draft7="iri", raises=ValueError)
+     def is_iri(instance):
+@@ -280,15 +299,19 @@ else:
+ 
+ 
+ try:
+-    import strict_rfc3339
++    from strict_rfc3339 import validate_rfc3339
+ except ImportError:
+-    pass
+-else:
++    try:
++        from rfc3339_validator import validate_rfc3339
++    except ImportError:
++        validate_rfc3339 = None
++
++if validate_rfc3339:
+     @_checks_drafts(name="date-time")
+     def is_datetime(instance):
+         if not isinstance(instance, str_types):
+             return True
+-        return strict_rfc3339.validate_rfc3339(instance)
++        return validate_rfc3339(instance)
+ 
+     @_checks_drafts(draft7="time")
+     def is_time(instance):
+diff --git a/setup.cfg b/setup.cfg
+index 74bc4a7..878221c 100644
+--- a/setup.cfg
++++ b/setup.cfg
+@@ -40,6 +40,12 @@ format =
+ 	rfc3987
+ 	strict-rfc3339
+ 	webcolors
++format_nongpl =
++	idna
++	jsonpointer>1.13
++	webcolors
++	rfc3986-validator>0.1.0
++	rfc3339-validator
+ 
+ [options.entry_points]
+ console_scripts = 
+-- 
+2.20.1
+
-- 
2.20.1



More information about the Openembedded-devel mailing list