NoMorePython2: Difference between revisions
From Yocto Project
				
				
				Jump to navigationJump to search
				
				RossBurton (talk | contribs) No edit summary  | 
				RossBurton (talk | contribs)   (→Broken)  | 
				||
| Line 30: | Line 30: | ||
=== Broken ===  | === Broken ===  | ||
* python3-pycairo (appears to just need a Waf update)  | * python3-pycairo (appears to just need a Waf update)  | ||
** Waf uses Python 2 by default  | |||
** Add waf-native to oe-core  | ** Add waf-native to oe-core  | ||
** Extend waf class to invoke waf-native using Python 3  | ** Extend waf class to invoke waf-native using Python 3  | ||
| Line 35: | Line 36: | ||
* webkitgtk  | * webkitgtk  | ||
* ovmf  | * ovmf  | ||
* eglinfo   | * eglinfo-x11 eglinfo-fb (same as python3-pycairo, uses Waf)  | ||
=== Needs Python 2, actively refuses to use Python 3 ===  | === Needs Python 2, actively refuses to use Python 3 ===  | ||
Revision as of 11:53, 3 August 2017
No More Python 2!
Problem Statement
Python 2 is in maintenance mode and everyone should shift to Python 3. We've made the move in OpenEmbedded Core so that core-image-sato doesn't pull in Python 2, but Python 2 is still needed during the build.
Goal
To be able to build first core-image-sato and then world of OpenEmbedded Core without Python 2 being present on the host, or being built via python-native.
Method
One option is to just remove Python 2 from your build host. Whilst this works, unless you're building inside a container this might not be feasible. The next best thing is to make the binary not executable briefly for the test builds. Sadly you can't remove Python 2 from HOSTTOOLS as several upstreams will explicitly poke around /usr/bin looking for a Python to run.
Status
Patches Ready
- ca-certificates
 - libsoup
 - grub
 - pseudo
 - ninja
 
To Review
- xcb-proto (do all callers use py3)
 - texinfo-dummy-native (does it still work)
 
Broken
- python3-pycairo (appears to just need a Waf update)
- Waf uses Python 2 by default
 - Add waf-native to oe-core
 - Extend waf class to invoke waf-native using Python 3
 - Use waf class in python3-pycairo
 
 - webkitgtk
 - ovmf
 - eglinfo-x11 eglinfo-fb (same as python3-pycairo, uses Waf)
 
Needs Python 2, actively refuses to use Python 3
- apr
 - qemu