summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-devtools/python/python-setuptools.inc4
-rw-r--r--meta/recipes-devtools/python/python3-setuptools/0001-ScriptWriter-create-more-efficient-usr-bin-wrappers-signoff-included.patch62
2 files changed, 65 insertions, 1 deletions
diff --git a/meta/recipes-devtools/python/python-setuptools.inc b/meta/recipes-devtools/python/python-setuptools.inc
index 9322ca9a05..3222de7079 100644
--- a/meta/recipes-devtools/python/python-setuptools.inc
+++ b/meta/recipes-devtools/python/python-setuptools.inc
@@ -10,7 +10,9 @@ inherit pypi
SRC_URI_append_class-native = " file://0001-conditionally-do-not-fetch-code-by-easy_install.patch"
-SRC_URI += "file://0001-change-shebang-to-python3.patch"
+SRC_URI += "file://0001-change-shebang-to-python3.patch \
+ file://0001-ScriptWriter-create-more-efficient-usr-bin-wrappers-signoff-included.patch \
+ "
SRC_URI[md5sum] = "6e9de90b242fdd60ef59f497424ce13a"
SRC_URI[sha256sum] = "145fa62b9d7bb544fce16e9b5a9bf4ab2032d2f758b7cd674af09a92736aff74"
diff --git a/meta/recipes-devtools/python/python3-setuptools/0001-ScriptWriter-create-more-efficient-usr-bin-wrappers-signoff-included.patch b/meta/recipes-devtools/python/python3-setuptools/0001-ScriptWriter-create-more-efficient-usr-bin-wrappers-signoff-included.patch
new file mode 100644
index 0000000000..7e931c845c
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-setuptools/0001-ScriptWriter-create-more-efficient-usr-bin-wrappers-signoff-included.patch
@@ -0,0 +1,62 @@
+From aae8cd3de3f289cea3db01212579913c925191e8 Mon Sep 17 00:00:00 2001
+From: Lauri Tirkkonen <lauri.tirkkonen.ext@nokia.com>
+Date: Thu, 26 Mar 2020 14:24:25 +0000
+Subject: [PATCH] ScriptWriter: create more efficient /usr/bin wrappers
+
+Upstream setuptools writes scripts to /usr/bin that do insanely much
+stuff at runtime. https://github.com/pypa/setuptools/issues/510
+
+Since the script entry points are already known at build time, we can
+just write those directly into the /usr/bin wrapper, avoiding the
+expensive 'pkg_resources' import at runtime. The idea is from
+https://github.com/ninjaaron/fast-entry_points but patched directly into
+the native build of setuptools here, so that all Python modules under
+bitbake automatically use it without needing additional build time
+dependencies.
+
+Upstream-Status: Pending
+
+Signed-off-by: Lauri Tirkkonen <lauri.tirkkonen.ext@nokia.com>
+Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
+---
+ setuptools/command/easy_install.py | 14 ++++++--------
+ 1 file changed, 6 insertions(+), 8 deletions(-)
+
+diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py
+index 8fba7b41..03a72714 100755
+--- a/setuptools/command/easy_install.py
++++ b/setuptools/command/easy_install.py
+@@ -2023,17 +2023,12 @@ class ScriptWriter(object):
+ """
+
+ template = textwrap.dedent(r"""
+- # EASY-INSTALL-ENTRY-SCRIPT: %(spec)r,%(group)r,%(name)r
+- __requires__ = %(spec)r
+- import re
+ import sys
+- from pkg_resources import load_entry_point
++
++ from %(module)s import %(ep0)s
+
+ if __name__ == '__main__':
+- sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
+- sys.exit(
+- load_entry_point(%(spec)r, %(group)r, %(name)r)()
+- )
++ sys.exit(%(entrypoint)s())
+ """).lstrip()
+
+ command_spec_class = CommandSpec
+@@ -2068,6 +2063,9 @@ class ScriptWriter(object):
+ for type_ in 'console', 'gui':
+ group = type_ + '_scripts'
+ for name, ep in dist.get_entry_map(group).items():
++ module = ep.module_name
++ ep0 = ep.attrs[0]
++ entrypoint = '.'.join(ep.attrs)
+ cls._ensure_safe_name(name)
+ script_text = cls.template % locals()
+ args = cls._get_script_args(type_, name, header, script_text)
+--
+2.24.1
+