While trying to upgrade the BitBake recipes for python-semver (Python 2 and Python 3) from version 2.8.1 to 2.9.1, I've encountered the following error which seems to have been introduced by commit 017e296#diff-2eeaed663bd0d25b7e608891384b7298L39-R39.
Here is the relevant BitBake log for Python 3.7:
ERROR: Execution of '/yocto/build/3.0-zeus/bbb/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/python3-semver/2.9.1-r0/temp/run.do_configure.28554' failed with exit code 1:
running clean
Traceback (most recent call last):
File "setup.py", line 101, in <module>
entry_points={"console_scripts": ["pysemver = semver:main"]},
File "/yocto/build/3.0-zeus/bbb/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/python3-semver/2.9.1-r0/recipe-sysroot-native/usr/lib/python3.7/site-packages/setuptools/__init__.py", line 145, in setup
return distutils.core.setup(**attrs)
File "/yocto/build/3.0-zeus/bbb/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/python3-semver/2.9.1-r0/recipe-sysroot-native/usr/lib/python3.7/distutils/core.py", line 148, in setup
dist.run_commands()
File "/yocto/build/3.0-zeus/bbb/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/python3-semver/2.9.1-r0/recipe-sysroot-native/usr/lib/python3.7/distutils/dist.py", line 966, in run_commands
self.run_command(cmd)
File "/yocto/build/3.0-zeus/bbb/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/python3-semver/2.9.1-r0/recipe-sysroot-native/usr/lib/python3.7/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "setup.py", line 41, in run
super(CleanCommand, self).run()
File "/yocto/build/3.0-zeus/bbb/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/python3-semver/2.9.1-r0/recipe-sysroot-native/usr/lib/python3.7/distutils/cmd.py", line 176, in run
% self.__class__)
RuntimeError: abstract method -- subclass <class '__main__.Clean'> must override
WARNING: exit code 1 from a shell command.
And here is the corresponding log for Python 2.7:
ERROR: Execution of '/yocto/build/3.0-zeus/bbb/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/python-semver/2.9.1-r0/temp/run.do_configure.32044' failed with exit code 1:
running clean
Traceback (most recent call last):
File "setup.py", line 101, in <module>
entry_points={"console_scripts": ["pysemver = semver:main"]},
File "/yocto/build/3.0-zeus/bbb/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/python-semver/2.9.1-r0/recipe-sysroot-native/usr/lib/python2.7/site-packages/setuptools/__init__.py", line 145, in setup
return distutils.core.setup(**attrs)
File "/yocto/build/3.0-zeus/bbb/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/python-semver/2.9.1-r0/recipe-sysroot-native/usr/lib/python2.7/distutils/core.py", line 151, in setup
dist.run_commands()
File "/yocto/build/3.0-zeus/bbb/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/python-semver/2.9.1-r0/recipe-sysroot-native/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/yocto/build/3.0-zeus/bbb/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/python-semver/2.9.1-r0/recipe-sysroot-native/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "setup.py", line 41, in run
super(CleanCommand, self).run()
TypeError: super() argument 1 must be type, not classobj
WARNING: exit code 1 from a shell command.
Looking at the documentation for super() in Python 3 and Python 2 makes me wonder if super(CleanCommand, self).run() might be a typo and should have been super(Clean, self).run().
Changing super(CleanCommand, self).run() to super(Clean, self).run() apparently solves the problem for Python 3. For Python 2, the error message stays more or less the same:
ERROR: Execution of '/yocto/build/3.0-zeus/bbb/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/python-semver/2.9.1-r0/temp/run.do_configure.2883' failed with exit code 1:
running clean
Traceback (most recent call last):
File "setup.py", line 101, in <module>
entry_points={"console_scripts": ["pysemver = semver:main"]},
File "/yocto/build/3.0-zeus/bbb/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/python-semver/2.9.1-r0/recipe-sysroot-native/usr/lib/python2.7/site-packages/setuptools/__init__.py", line 145, in setup
return distutils.core.setup(**attrs)
File "/yocto/build/3.0-zeus/bbb/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/python-semver/2.9.1-r0/recipe-sysroot-native/usr/lib/python2.7/distutils/core.py", line 151, in setup
dist.run_commands()
File "/yocto/build/3.0-zeus/bbb/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/python-semver/2.9.1-r0/recipe-sysroot-native/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/yocto/build/3.0-zeus/bbb/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/python-semver/2.9.1-r0/recipe-sysroot-native/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "setup.py", line 41, in run
super(Clean, self).run()
TypeError: super() argument 1 must be type, not classobj
WARNING: exit code 1 from a shell command.
While trying to upgrade the BitBake recipes for python-semver (Python 2 and Python 3) from version 2.8.1 to 2.9.1, I've encountered the following error which seems to have been introduced by commit 017e296#diff-2eeaed663bd0d25b7e608891384b7298L39-R39.
Here is the relevant BitBake log for Python 3.7:
And here is the corresponding log for Python 2.7:
Looking at the documentation for
super()in Python 3 and Python 2 makes me wonder ifsuper(CleanCommand, self).run()might be a typo and should have beensuper(Clean, self).run().Changing
super(CleanCommand, self).run()tosuper(Clean, self).run()apparently solves the problem for Python 3. For Python 2, the error message stays more or less the same: