Bump libuv to version 1.42.0 as required by python3-uvloop 0.16. Add python3-uvloop 0.16, which is a much faster replacement for the python asyncio event loop. The performance improvements on embedded systems are well worthwhile the effort. Changes since V2: - Corrected licenses and added license files David Jander (2): libuv version bump 1.34.0 -> 1.42.0 python3-uvloop: new package .../autogen.sh | 0 rules/libuv.make | 4 +- rules/python3-uvloop.in | 10 ++++ rules/python3-uvloop.make | 60 +++++++++++++++++++ 4 files changed, 72 insertions(+), 2 deletions(-) rename patches/{libuv-v1.34.0 => libuv-v1.42.0}/autogen.sh (100%) create mode 100644 rules/python3-uvloop.in create mode 100644 rules/python3-uvloop.make -- 2.32.0
Needed for python3-uvloop Signed-off-by: David Jander <david@protonic.nl> --- patches/{libuv-v1.34.0 => libuv-v1.42.0}/autogen.sh | 0 rules/libuv.make | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) rename patches/{libuv-v1.34.0 => libuv-v1.42.0}/autogen.sh (100%) diff --git a/patches/libuv-v1.34.0/autogen.sh b/patches/libuv-v1.42.0/autogen.sh similarity index 100% rename from patches/libuv-v1.34.0/autogen.sh rename to patches/libuv-v1.42.0/autogen.sh diff --git a/rules/libuv.make b/rules/libuv.make index 96f22a042..8a9cbacb6 100644 --- a/rules/libuv.make +++ b/rules/libuv.make @@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBUV) += libuv # # Paths and names # -LIBUV_VERSION := 1.34.0 -LIBUV_MD5 := 811ebe06c326e788ac7adf062328f3f1 +LIBUV_VERSION := 1.42.0 +LIBUV_MD5 := 484dec4a06e183c20be815019ce9ddd0 LIBUV := libuv-v$(LIBUV_VERSION) LIBUV_SUFFIX := tar.gz LIBUV_URL := https://dist.libuv.org/dist/v$(LIBUV_VERSION)/$(LIBUV).$(LIBUV_SUFFIX) -- 2.32.0
This is an ultra-fast replacement for the python3 asyncio event loop. Signed-off-by: David Jander <david@protonic.nl> --- rules/python3-uvloop.in | 10 +++++++ rules/python3-uvloop.make | 60 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 rules/python3-uvloop.in create mode 100644 rules/python3-uvloop.make diff --git a/rules/python3-uvloop.in b/rules/python3-uvloop.in new file mode 100644 index 000000000..6f937a31b --- /dev/null +++ b/rules/python3-uvloop.in @@ -0,0 +1,10 @@ +## SECTION=python3 + +config PYTHON3_UVLOOP + tristate + select PYTHON3 + select HOST_CYTHON3 + select LIBUV + prompt "python3-uvloop" + help + Ultra fast asyncio event loop diff --git a/rules/python3-uvloop.make b/rules/python3-uvloop.make new file mode 100644 index 000000000..875efc203 --- /dev/null +++ b/rules/python3-uvloop.make @@ -0,0 +1,60 @@ +# -*-makefile-*- +# +# Copyright (C) 2019 by David Jander <david@protonic.nl> +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_PYTHON3_UVLOOP) += python3-uvloop + +# +# Paths and names +# +PYTHON3_UVLOOP_VERSION := v0.16.0 +PYTHON3_UVLOOP_MD5 := d70d003f73f034e4fecdda2078fed6f3 +PYTHON3_UVLOOP := python3-uvloop-$(PYTHON3_UVLOOP_VERSION) +PYTHON3_UVLOOP_SUFFIX := tar.gz +PYTHON3_UVLOOP_URL := https://github.com/MagicStack/uvloop/archive/$(PYTHON3_UVLOOP_VERSION).$(PYTHON3_UVLOOP_SUFFIX) +PYTHON3_UVLOOP_SOURCE := $(SRCDIR)/$(PYTHON3_UVLOOP).$(PYTHON3_UVLOOP_SUFFIX) +PYTHON3_UVLOOP_DIR := $(BUILDDIR)/$(PYTHON3_UVLOOP) +PYTHON3_UVLOOP_LICENSE := Apache-2.0 OR MIT +PYTHON3_UVLOOP_LICENSE_FILES := \ + file://LICENSE-APACHE;md5=57700cee6d14d45039259183f3c50ef1 \ + file://LICENSE-MIT;md5=3bd0b2e751776b370b2151ac508af939 + +# ---------------------------------------------------------------------------- +# Prepare +# ---------------------------------------------------------------------------- + +PYTHON3_UVLOOP_CONF_TOOL := python3 +PYTHON3_UVLOOP_MAKE_OPT := build build_py build_ext --use-system-libuv +PYTHON3_UVLOOP_INSTALL_OPT := build_ext --use-system-libuv install --prefix=/usr + +# ---------------------------------------------------------------------------- +# Target-Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/python3-uvloop.targetinstall: + @$(call targetinfo) + + @$(call install_init, python3-uvloop) + @$(call install_fixup, python3-uvloop, PRIORITY, optional) + @$(call install_fixup, python3-uvloop, SECTION, base) + @$(call install_fixup, python3-uvloop, AUTHOR, "David Jander <david@protonic.nl>") + @$(call install_fixup, python3-uvloop, DESCRIPTION, missing) + + @$(call install_glob, python3-uvloop, 0, 0, -, \ + /usr/lib/python$(PYTHON3_MAJORMINOR)/site-packages/uvloop, *.pyc) + + @$(call install_glob, python3-uvloop, 0, 0, -, \ + /usr/lib/python$(PYTHON3_MAJORMINOR)/site-packages/uvloop, *.so) + + @$(call install_finish, python3-uvloop) + + @$(call touch) + +# vim: syntax=make -- 2.32.0
Thanks, applied as 668456fe16194666b316629c0ff36e269c981e51.
Michael
[sent from post-receive hook]
On Mon, 09 May 2022 08:29:21 +0200, David Jander <david@protonic.nl> wrote:
> This is an ultra-fast replacement for the python3 asyncio event loop.
>
> Signed-off-by: David Jander <david@protonic.nl>
> Message-Id: <20220506111256.1533831-3-david@protonic.nl>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
>
> diff --git a/rules/python3-uvloop.in b/rules/python3-uvloop.in
> new file mode 100644
> index 000000000000..6f937a31bc92
> --- /dev/null
> +++ b/rules/python3-uvloop.in
> @@ -0,0 +1,10 @@
> +## SECTION=python3
> +
> +config PYTHON3_UVLOOP
> + tristate
> + select PYTHON3
> + select HOST_CYTHON3
> + select LIBUV
> + prompt "python3-uvloop"
> + help
> + Ultra fast asyncio event loop
> diff --git a/rules/python3-uvloop.make b/rules/python3-uvloop.make
> new file mode 100644
> index 000000000000..f63a9e28c8f0
> --- /dev/null
> +++ b/rules/python3-uvloop.make
> @@ -0,0 +1,57 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2019 by David Jander <david@protonic.nl>
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# We provide this package
> +#
> +PACKAGES-$(PTXCONF_PYTHON3_UVLOOP) += python3-uvloop
> +
> +#
> +# Paths and names
> +#
> +PYTHON3_UVLOOP_VERSION := v0.16.0
> +PYTHON3_UVLOOP_MD5 := d70d003f73f034e4fecdda2078fed6f3
> +PYTHON3_UVLOOP := python3-uvloop-$(PYTHON3_UVLOOP_VERSION)
> +PYTHON3_UVLOOP_SUFFIX := tar.gz
> +PYTHON3_UVLOOP_URL := https://github.com/MagicStack/uvloop/archive/$(PYTHON3_UVLOOP_VERSION).$(PYTHON3_UVLOOP_SUFFIX)
> +PYTHON3_UVLOOP_SOURCE := $(SRCDIR)/$(PYTHON3_UVLOOP).$(PYTHON3_UVLOOP_SUFFIX)
> +PYTHON3_UVLOOP_DIR := $(BUILDDIR)/$(PYTHON3_UVLOOP)
> +PYTHON3_UVLOOP_LICENSE := Apache-2.0 OR MIT
> +PYTHON3_UVLOOP_LICENSE_FILES := \
> + file://LICENSE-APACHE;md5=57700cee6d14d45039259183f3c50ef1 \
> + file://LICENSE-MIT;md5=3bd0b2e751776b370b2151ac508af939
> +
> +# ----------------------------------------------------------------------------
> +# Prepare
> +# ----------------------------------------------------------------------------
> +
> +PYTHON3_UVLOOP_CONF_TOOL := python3
> +PYTHON3_UVLOOP_MAKE_OPT := build build_py build_ext --use-system-libuv
> +PYTHON3_UVLOOP_INSTALL_OPT := build_ext --use-system-libuv install --prefix=/usr
> +
> +# ----------------------------------------------------------------------------
> +# Target-Install
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/python3-uvloop.targetinstall:
> + @$(call targetinfo)
> +
> + @$(call install_init, python3-uvloop)
> + @$(call install_fixup, python3-uvloop, PRIORITY, optional)
> + @$(call install_fixup, python3-uvloop, SECTION, base)
> + @$(call install_fixup, python3-uvloop, AUTHOR, "David Jander <david@protonic.nl>")
> + @$(call install_fixup, python3-uvloop, DESCRIPTION, missing)
> +
> + @$(call install_glob, python3-uvloop, 0, 0, -, \
> + /usr/lib/python$(PYTHON3_MAJORMINOR)/site-packages/uvloop, *.pyc *.so)
> +
> + @$(call install_finish, python3-uvloop)
> +
> + @$(call touch)
> +
> +# vim: syntax=make