python-jsonschema: new package
PATCH 1/2 python-jsonschema: new package
An implementation of JSON Schema validation for Python.
http://github.com/Julian/jsonschema
--- package/Config.in | 1 + package/python-jsonschema/Config.in | 6 ++++++ package/python-jsonschema/python-jsonschema.hash | 3 +++ package/python-jsonschema/python-jsonschema.mk | 16 ++++++++++++++++ 4 files changed, 26 insertions(+) create mode 100644 package/python-jsonschema/Config.in create mode 100644 package/python-jsonschema/python-jsonschema.hash create mode 100644 package/python-jsonschema/python-jsonschema.mk
package/Config.in +1 -0
@@ -698,6 +698,7 @@ menu "External python modules" source "package/python-ipython/Config.in" source "package/python-itsdangerous/Config.in" source "package/python-jinja2/Config.in" + source "package/python-jsonschema/Config.in" source "package/python-json-schema-validator/Config.in" source "package/python-keyring/Config.in" source "package/python-libconfig/Config.in"
package/python-jsonschema/Config.in new file +6 -0
@@ -0,0 +1,6 @@ +config BR2_PACKAGE_PYTHON_JSONSCHEMA + bool "python-jsonschema" + help + An implementation of JSON Schema validation for Python. + + http://github.com/Julian/jsonschema
package/python-jsonschema/python-jsonschema.hash new file +3 -0
@@ -0,0 +1,3 @@ +# md5 from https://pypi.python.org/pypi/jsonschema/json, sha256 locally computed +md5 374e848fdb69a3ce8b7e778b47c30640 jsonschema-2.5.1.tar.gz +sha256 36673ac378feed3daa5956276a829699056523d7961027911f064b52255ead41 jsonschema-2.5.1.tar.gz
package/python-jsonschema/python-jsonschema.mk new file +16 -0
@@ -0,0 +1,16 @@ +################################################################################ +# +# python-jsonschema +# +################################################################################ + +PYTHON_JSONSCHEMA_VERSION = 2.5.1 +PYTHON_JSONSCHEMA_SOURCE = jsonschema-$(PYTHON_JSONSCHEMA_VERSION).tar.gz +PYTHON_JSONSCHEMA_SITE = \ + https://pypi.python.org/packages/58/0d/c816f5ea5adaf1293a1d81d32e4cdfdaf8496973aa5049786d7fdb14e7e7 +PYTHON_JSONSCHEMA_SETUP_TYPE = setuptools +PYTHON_JSONSCHEMA_LICENSE = MIT +PYTHON_JSONSCHEMA_LICENSE_FILES = COPYING + +$(eval $(python-package)) +$(eval $(host-python-package))
Signature · 1 line
2.5.0
PATCH 2/2 soletta: new package
Soletta Project is a framework for making IoT devices. With Soletta Project's libraries developers can easily write software for devices that control actuators/sensors and communicate using standard technologies. It enables adding smartness even on the smallest edge devices.
--- package/Config.in | 1 + .../0001-Check-availability-of-RB_SW_SUSPEND.patch | 37 ++++++ ...Check-availability-of-nonstandard-locales.patch | 64 ++++++++++ .../0003-Use-tinydtls-from-buildsystem.patch | 102 +++++++++++++++ .../0004-Use-tinycbor-from-buildsystem.patch | 139 +++++++++++++++++++++ package/soletta/0005-Fix-tinycbor-API-calls.patch | 130 +++++++++++++++++++ .../0006-Remove-warning-when-building-OIC.patch | 32 +++++ package/soletta/Config.in | 30 +++++ package/soletta/soletta.hash | 3 + package/soletta/soletta.mk | 116 +++++++++++++++++ 10 files changed, 654 insertions(+) create mode 100644 package/soletta/0001-Check-availability-of-RB_SW_SUSPEND.patch create mode 100644 package/soletta/0002-Check-availability-of-nonstandard-locales.patch create mode 100644 package/soletta/0003-Use-tinydtls-from-buildsystem.patch create mode 100644 package/soletta/0004-Use-tinycbor-from-buildsystem.patch create mode 100644 package/soletta/0005-Fix-tinycbor-API-calls.patch create mode 100644 package/soletta/0006-Remove-warning-when-building-OIC.patch create mode 100644 package/soletta/Config.in create mode 100644 package/soletta/soletta.hash create mode 100644 package/soletta/soletta.mk
package/Config.in +1 -0
@@ -1353,6 +1353,7 @@ endif source "package/qhull/Config.in" source "package/qlibc/Config.in" source "package/shapelib/Config.in" + source "package/soletta/Config.in" source "package/sphinxbase/Config.in" source "package/startup-notification/Config.in" source "package/tinycbor/Config.in"
package/soletta/0001-Check-availability-of-RB_SW_SUSPEND.patch new file +37 -0
@@ -0,0 +1,37 @@ +From 00f6a6a6edf9153571a517aa1d27c70c0bf45fd2 Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine <[email protected]> +Date: Tue, 25 Oct 2016 16:46:12 +0200 +Subject: [PATCH] Check availability of RB_SW_SUSPEND + +RB_SW_SUSPEND is not always available (for example on uclibc) so check its +availability before using it + +Signed-off-by: Fabrice Fontaine <[email protected]> +--- + src/lib/common/sol-platform-impl-linux-micro.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/src/lib/common/sol-platform-impl-linux-micro.c b/src/lib/common/sol-platform-impl-linux-micro.c +index aeae8db..aabbb2b 100644 +--- a/src/lib/common/sol-platform-impl-linux-micro.c ++++ b/src/lib/common/sol-platform-impl-linux-micro.c +@@ -927,9 +927,14 @@ sol_platform_impl_set_target(const char *target) + reboot_cmd = RB_POWER_OFF; + else if (streq(target, SOL_PLATFORM_TARGET_REBOOT)) + reboot_cmd = RB_AUTOBOOT; +- else if (streq(target, SOL_PLATFORM_TARGET_SUSPEND)) ++ else if (streq(target, SOL_PLATFORM_TARGET_SUSPEND)) { ++#ifdef RB_SW_SUSPEND + reboot_cmd = RB_SW_SUSPEND; +- else if (streq(target, SOL_PLATFORM_TARGET_DEFAULT)) ++#else ++ SOL_WRN("Unsupported target: %s", target); ++ return -ENOTSUP; ++#endif ++ } else if (streq(target, SOL_PLATFORM_TARGET_DEFAULT)) + reboot_exec = "/sbin/init"; + else if (streq(target, SOL_PLATFORM_TARGET_RESCUE)) + reboot_exec = "/sbin/rescue"; +-- +2.5.0 +
package/soletta/0002-Check-availability-of-nonstandard-locales.patch new file +64 -0
64 lines not on this page · raw message
package/soletta/0003-Use-tinydtls-from-buildsystem.patch new file +102 -0
102 lines not on this page · raw message
package/soletta/0004-Use-tinycbor-from-buildsystem.patch new file +139 -0
139 lines not on this page · raw message
package/soletta/0005-Fix-tinycbor-API-calls.patch new file +130 -0
130 lines not on this page · raw message
package/soletta/0006-Remove-warning-when-building-OIC.patch new file +32 -0
@@ -0,0 +1,32 @@ +From a0df0c1486811e30d90a624503e99c09964b00dc Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine <[email protected]> +Date: Tue, 25 Oct 2016 12:51:24 +0200 +Subject: [PATCH] Remove warning when building OIC + +If tinydtls and tinycbor are retrieved from buildsystem, a warning is raised +as we continue to include build/stage/include which is not created anymore so +remove this inclusion + +Signed-off-by: Fabrice Fontaine <[email protected]> +--- + tools/build/Makefile.vars | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/tools/build/Makefile.vars b/tools/build/Makefile.vars +index 7a963f9..bafd222 100644 +--- a/tools/build/Makefile.vars ++++ b/tools/build/Makefile.vars +@@ -198,10 +198,6 @@ HEADERDIRS += $(addprefix $(top_srcdir),$(KCONFIG_INCLUDE)generated/) + HEADERDIRS += $(addprefix $(build_stagedir),lib/common lib/flow) + HEADERDIRS += $(build_includedir) + +-ifeq (y,$(OIC)) +-HEADERDIRS += $(addprefix $(build_stagedir),include/) +-endif +- + LIB_OUTPUTDIR := $(build_libdir) + + SOL_LIB_AR := $(LIB_OUTPUTDIR)libsoletta.a +-- +2.5.0 +
package/soletta/Config.in new file +30 -0
@@ -0,0 +1,30 @@ +config BR2_PACKAGE_SOLETTA + bool "soletta" + depends on BR2_USE_MMU # fork + # python3 is not really needed except for 4 development scripts, however + # if we don't enable it, host-python-jsonschema will be installed for + # the default python interpreter which is host-python2. As a result + # host-python3 will not find the module in its site-packages directory. + depends on !BR2_PACKAGE_PYTHON # python3 + depends on BR2_USE_WCHAR # python3 + depends on BR2_TOOLCHAIN_HAS_THREADS # python3 + depends on !BR2_STATIC_LIBS # python3 + select BR2_PACKAGE_PYTHON3 + help + Soletta Project is a framework for making IoT devices. With Soletta + Project's libraries developers can easily write software for devices + that control actuators/sensors and communicate using standard + technologies. It enables adding smartness even on the smallest edge + devices. + + http://solettaproject.org + +comment "soletta needs a toolchain w/ wchar, threads, dynamic library" + depends on BR2_USE_MMU + depends on !BR2_PACKAGE_PYTHON + depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ + BR2_STATIC_LIBS + +comment "soletta is not compatible with python" + depends on BR2_USE_MMU + depends on BR2_PACKAGE_PYTHON
package/soletta/soletta.hash new file +3 -0
@@ -0,0 +1,3 @@ +# Locally computed: +sha256 4080d12fde3006216316e954b5e4a001d783f93c5b4d554da5f58c98182270fd soletta-v1.tar.gz +sha256 c4d3018933980634333fca5c997736abb207dce76ad1f4cc16a4fdb3e7acb5a6 9af119285a521423646195f04fa4f6f51d0ab644.patch
package/soletta/soletta.mk new file +116 -0
116 lines not on this page · raw message
Signature · 1 line
2.5.0
PATCH 2/2 soletta: new package
Hello,
Quoted 6 lines · Fabrice Fontaine
.../0001-Check-availability-of-RB_SW_SUSPEND.patch | 37 ++++++ ...Check-availability-of-nonstandard-locales.patch | 64 ++++++++++ .../0003-Use-tinydtls-from-buildsystem.patch | 102 +++++++++++++++ .../0004-Use-tinycbor-from-buildsystem.patch | 139 +++++++++++++++++++++ package/soletta/0005-Fix-tinycbor-API-calls.patch | 130 +++++++++++++++++++ .../0006-Remove-warning-when-building-OIC.patch | 32 +++++
Have all those patches been submitted upstream?
package/soletta/Config.in line 7
Quoted 13 lines
package/soletta/Config.in new file +7
-0@@ -0,0 +1,30 @@ +config BR2_PACKAGE_SOLETTA + bool "soletta" + depends on BR2_USE_MMU # fork + # python3 is not really needed except for 4 development scripts, however + # if we don't enable it, host-python-jsonschema will be installed for + # the default python interpreter which is host-python2. As a result + # host-python3 will not find the module in its site-packages directory.
If python3 is not really needed, then why don't you use the default host-python? You can do this:
SOLETTA_DEPENDENCIES = $(if $(BR2_PACKAGE_PYTHON3),host-python3,host-python)
Also, in any case, it fails to build here (even with python3) :
ESC[3m>>> soletta v1 BuildingESC[23m
PATH="/home/test/buildroot/output/host/bin:/home/test/buildroot/output/host/sbin:/home/test/buildroot/output/host/usr/bin:/home/test/buildroot/output/host/usr/sbin:/usr/local/bin:/usr/bin:/bin:/usr/games" /usr/bin/make -j9 TARGETAR="/home/test/buildroot/output/host/usr/bin/arm-linux-ar" TARGETCC="/home/test/buildroot/output/host/usr/bin/arm-linux-gcc" CFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os " LDFLAGS="" SOLETTA_CONF="/home/test/buildroot/output/build/soletta-v1/soletta_conf" -C /home/test/buildroot/output/build/soletta-v1 -f Makefile.smallos make[1]: Entering directory `/home/test/buildroot/output/build/soletta-v1'
Makefile.smallos:35: "LDFLAGS not set. This is probably an error"
Makefile.smallos:55: *** multiple target patterns. Stop.
make[1]: Leaving directory `/home/test/buildroot/output/build/soletta-v1'
make: *** [/home/test/buildroot/output/build/soletta-v1/.stamp_built] Error 2
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
A message that is not in the archive (sent off-list or not yet received): CAPi7W81=a+pP_3X3yfg=uZ+65SDpvpVy3M_2wwAFVchfLSFHCA@mail.gmail.com
PATCH 2/2 soletta: new package
Hello,
Please keep the Buildroot mailing list in Cc when replying.
Quoted 5 lines · Fabrice Fontaine
Quoted 2 lines
Have all those patches been submitted upstream?
Only the first patch has been accepted upstream, I was working to integrate a second one but the project seems less active (no updates since November 13th) so this is still work in progress.
OK, thanks. At least it's in progress, which is good.
Quoted 9 lines
Quoted 3 lines
SOLETTA_DEPENDENCIES= $(if $(BR2_PACKAGE_PYTHON3),host- python3,host-python)My issue is that soletta depends on host-python3, it will not build with host-python. However, if I do not also select python3 (which is not really needed at runtime), then host-python-jsonschema will be compiled for the default host-python interpreter which is host-python2. So, my issue is that I can not add a dependency on host-python*3*-jsonschema as this is not supported by buildroot.
It really depends on python3 ? No way to make it compatible with python2 ?
If it really needs host-python3, then yes, we don't have any other choice than doing what you did.
Quoted 7 lines
I do not get this error, it seems that it is raised because the
Makefileuses multiple targets inside a rule, for example:
$(soletta_target) $(soletta_config): private export BOARD_NAME:=$(BOARD_NAME)I think that multiple targets inside a rule is not supported by old versions of make, so it seems I will have to add another patch ;-)
I was testing on my autobuilder instance, which runs an old Debian. It uses make 3.81.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH 2/2 soletta: new package
Hello
2016-12-18 11:16 GMT+01:00 Thomas Petazzoni <
[email protected]>:
Quoted 21 lines
Hello,
Please keep the Buildroot mailing list in Cc when replying.
Quoted 3 lines · Fabrice Fontaine
Quoted 2 lines
Have all those patches been submitted upstream?
Only the first patch has been accepted upstream, I was working to
integrate
Quoted 2 lines
a second one but the project seems less active (no updates since November 13th) so this is still work in progress.
OK, thanks. At least it's in progress, which is good.
Quoted 5 lines
Quoted 3 lines
SOLETTA_DEPENDENCIES= $(if $(BR2_PACKAGE_PYTHON3),host- python3,host-python)My issue is that soletta depends on host-python3, it will not build with host-python. However, if I do not also select python3 (which is not
really
Quoted 9 lines
Quoted 2 lines
needed at runtime), then host-python-jsonschema will be compiled for the default host-python interpreter which is host-python2. So, my issue is
that
Quoted 2 lines
I can not add a dependency on host-python*3*-jsonschema as this is not supported by buildroot.
It really depends on python3 ? No way to make it compatible with python2 ?
I tried to migrate the python3 scripts to python2 but I will stop. There is too many impacts which will not be easily upstreamable (shutil.which must replaced by shutilwhich backport, access to tuple attributes is allowed only through integers, f.write takes only one argument, configparser has to be replaced by ConfigParser which does not support reading configuration from a string, ...)
Quoted 14 lines
If it really needs host-python3, then yes, we don't have any other choice than doing what you did.
Quoted 7 lines
I do not get this error, it seems that it is raised because the
Makefileuses multiple targets inside a rule, for example:
$(soletta_target) $(soletta_config): private export BOARD_NAME:=$(BOARD_NAME)I think that multiple targets inside a rule is not supported by old versions of make, so it seems I will have to add another patch ;-)
I was testing on my autobuilder instance, which runs an old Debian. It uses make 3.81.
Quoted 8 lines
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
Best Regards,
Fabrice
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20161218/a58338c5/attachment.html>
PATCH 2/2 soletta: new package
Hello,
Quoted 6 lines · Fabrice Fontaine
I tried to migrate the python3 scripts to python2 but I will stop. There is too many impacts which will not be easily upstreamable (shutil.which must replaced by shutilwhich backport, access to tuple attributes is allowed only through integers, f.write takes only one argument, configparser has to be replaced by ConfigParser which does not support reading configuration from a string, ...)
OK, so please keep your original solution then. It's a bit nasty as it adds python3 to the target (which we don't need), but I don't really see how do it differently for the moment.
I think it's something we should write as a topic to discuss for the next Buildroot Developers meeting at FOSDEM.
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH 1/2 python-jsonschema: new package
In reply to Fabrice FontaineHello,
package/python-jsonschema/python-jsonschema.mk line 16
Quoted 10 lines · Fabrice Fontaine
package/python-jsonschema/python-jsonschema.mk new file +10
-0+PYTHON_JSONSCHEMA_VERSION = 2.5.1 +PYTHON_JSONSCHEMA_SOURCE = jsonschema-$(PYTHON_JSONSCHEMA_VERSION).tar.gz +PYTHON_JSONSCHEMA_SITE = \ + https://pypi.python.org/packages/58/0d/c816f5ea5adaf1293a1d81d32e4cdfdaf8496973aa5049786d7fdb14e7e7 +PYTHON_JSONSCHEMA_SETUP_TYPE = setuptools +PYTHON_JSONSCHEMA_LICENSE = MIT +PYTHON_JSONSCHEMA_LICENSE_FILES = COPYING + +$(eval $(python-package)) +$(eval $(host-python-package))
Is there a motivation to add the target variant of this package? Your patch 2/2 seems to be using only the host variant of python-jsonschema. Am I missing something, or are you just adding the target variant just because it can also be useful to other people?
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH 1/2 python-jsonschema: new package
Hello,
You're right the soletta package does not need the target variant of this package. We could indeed keep it for other people or I can send a new version of my patch without the target variant of python-jsonschema.
Best Regards,
Fabrice
2016-10-29 16:02 GMT+02:00 Thomas Petazzoni <
[email protected]>:
Quoted 22 lines
Hello,
Review
Quoted 2 lines · Fabrice Fontaine
(quoted diff) +2
-0+PYTHON_JSONSCHEMA_VERSION = 2.5.1 +PYTHON_JSONSCHEMA_SOURCE = jsonschema-$(PYTHON_JSONSCHEMA_VERSION).tar.gz
Review
Quoted 2 lines
(quoted diff) +2
-0+PYTHON_JSONSCHEMA_SITE = \ + https://pypi.python.org/packages/58/0d/
c816f5ea5adaf1293a1d81d32e4cdfdaf8496973aa5049786d7fdb14e7e7package/python-jsonschema/python-jsonschema.mk line 16
Quoted 6 lines
package/python-jsonschema/python-jsonschema.mk new file +6
-0+PYTHON_JSONSCHEMA_SETUP_TYPE = setuptools +PYTHON_JSONSCHEMA_LICENSE = MIT +PYTHON_JSONSCHEMA_LICENSE_FILES = COPYING + +$(eval $(python-package)) +$(eval $(host-python-package))Is there a motivation to add the target variant of this package? Your patch 2/2 seems to be using only the host variant of python-jsonschema. Am I missing something, or are you just adding the target variant just because it can also be useful to other people?
Quoted 8 lines
Thanks,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20161029/ba190777/attachment.html>
PATCH 1/2 python-jsonschema: new package
In reply to Fabrice FontaineHello,
Quoted 5 lines · Fabrice Fontaine
An implementation of JSON Schema validation for Python.
http://github.com/Julian/jsonschema
Signed-off-by Fabrice Fontaine <[email protected]>
This doesn't build (the host package) due to a missing dependency on host-python-vcversioner. This package doesn't exist yet, but it's easy enough to create with scanpypi. See below what I've added.
Without this dependency, building jsonschema fails with:
Couldn't find index page for 'vcversioner' (maybe misspelled?)
Download error on https://pypi.python.org/simple/: unknown url type: https -- Some packages may not be found! No local packages or download links found for vcversioner
Traceback (most recent call last):
File "setup.py", line 44, in <module>
vcversioner={"version_module_paths" : ["jsonschema/_version.py"]},
File "/home/test/buildroot/output/host/usr/lib/python3.5/distutils/core.py", line 108, in setup
_setup_distribution = dist = klass(attrs)
File "build/bdist.linux-x86_64/egg/setuptools/dist.py", line 268, in __init__
File "build/bdist.linux-x86_64/egg/setuptools/dist.py", line 313, in fetch_build_eggs File "build/bdist.linux-x86_64/egg/pkg_resources/__init__.py", line 846, in resolve
File "build/bdist.linux-x86_64/egg/pkg_resources/__init__.py", line 1091, in best_match File "build/bdist.linux-x86_64/egg/pkg_resources/__init__.py", line 1103, in obtain
File "build/bdist.linux-x86_64/egg/setuptools/dist.py", line 380, in fetch_build_egg
File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 633, in easy_install
distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('vcversioner')
make: *** [/home/test/buildroot/output/build/host-python-jsonschema-2.5.1/.stamp_built] Error 1
Here is python-vcversioner.mk:
################################################################################
#
# python-vcversioner # ################################################################################
PYTHON_VCVERSIONER_VERSION = 2.16.0.0PYTHON_VCVERSIONER_SOURCE = vcversioner-$(PYTHON_VCVERSIONER_VERSION).tar.gzPYTHON_VCVERSIONER_SITE = https://pypi.python.org/packages/c5/cc/33162c0a7b28a4d8c83da07bc2b12cee58c120b4a9e8bba31c41c8d35a16PYTHON_VCVERSIONER_SETUP_TYPE = setuptoolsPYTHON_VCVERSIONER_LICENSE = ISC License (ISCL)
$(eval $(host-python-package))
And python-vcversioner.hash:
# md5 from https://pypi.python.org/pypi/vcversioner/json, sha256 locally computed md5 aab6ef5e0cf8614a1b1140ed5b7f107d vcversioner-2.16.0.0.tar.gz sha256 dae60c17a479781f44a4010701833f1829140b1eeccd258762a74974aa06e19b vcversioner-2.16.0.0.tar.gz
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com