All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [git commit branch/2020.05.x] package/python-aenum: drop test_v3.py file for python 2.x to fix pycompile issue
@ 2020-10-05  6:03 Peter Korsgaard
  0 siblings, 0 replies; only message in thread
From: Peter Korsgaard @ 2020-10-05  6:03 UTC (permalink / raw)
  To: buildroot

commit: https://git.buildroot.net/buildroot/commit/?id=01f3310569e502aeb6f412efb13e362f3225e65d
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/2020.05.x

Fixes:
http://autobuild.buildroot.net/results/4ca459d54545c0e20b0f0cdc63bd81844ecd7f36/

aenum has conditional logic to load python 3.x code located in test_v3.py:

if pyver >= 3.0:
    from aenum.test_v3 import TestEnumV3, TestOrderV3, TestNamedTupleV3

And contains logic in setup.py to drop that file during setup.py install if
building for python 2.x:

py3_only = ('aenum/test_v3.py', )
..
if __name__ == '__main__':
    if 'install' in sys.argv:
        import os, sys
	..
        if sys.version_info[0] != 3:
            for file in py3_only:
                try:
                    os.unlink(file)

But this doesn't work in Buildroot as pkg-python.dk first does setup.py
build (which copies test_v3.py to the build directory) before setup.py
install, so test_v3.py gets installed, leading to errors from pycompile:

error:   File "/usr/lib/python2.7/site-packages/aenum/test_v3.py", line 12
    class MagicAutoNumberEnum(Enum, settings=AutoNumber):
                                            ^
SyntaxError: invalid syntax

As a workaround, add a hook to drop it from the target directory when
building for python 2.x.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit 753c031977cfda84237366a98098bde828692f33)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
 package/python-aenum/python-aenum.mk | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/package/python-aenum/python-aenum.mk b/package/python-aenum/python-aenum.mk
index 1d5322ef41..97fcbb5e86 100644
--- a/package/python-aenum/python-aenum.mk
+++ b/package/python-aenum/python-aenum.mk
@@ -11,4 +11,13 @@ PYTHON_AENUM_SETUP_TYPE = setuptools
 PYTHON_AENUM_LICENSE = BSD-3-Clause
 PYTHON_AENUM_LICENSE_FILES = aenum/LICENSE
 
+ifeq ($(BR2_PACKAGE_PYTHON),y)
+# only needed/valid for python 3.x
+define PYTHON_AENUM_RM_PY3_FILE
+	rm -f $(TARGET_DIR)/usr/lib/python*/site-packages/aenum/test_v3.py
+endef
+
+PYTHON_AENUM_POST_INSTALL_TARGET_HOOKS += PYTHON_AENUM_RM_PY3_FILE
+endif
+
 $(eval $(python-package))

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2020-10-05  6:03 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-05  6:03 [Buildroot] [git commit branch/2020.05.x] package/python-aenum: drop test_v3.py file for python 2.x to fix pycompile issue Peter Korsgaard

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.