In an effort to follow the Python2 deprecation on the 1st of January 2020, here is a listing of current Buildroot packages that depend on Python2 (as of master during the [developer days at FOSDEM 2020])
Non Python packages
These packages integrate with Python2: either they contain scripts written in Python, or they install Python libraries as byproducts.
- alsa-lib (install Python module with option BR2_PACKAGE_ALSA_LIB_PYTHON): To be tested
crudini:currently in v0.9, can be bumped to 0.9.3 which adds py3 support. Patch series pending: https://patchwork.ozlabs.org/project/buildroot/list/?series=156917DONE ! dstat: currently in v0.7.3, can be bumped to v0.7.4 which adds py3 supportDONE! fail2ban: at a first glance, does not seem to support Python3 !Support was added in commit 2d666026385573286371a0f5d9f4b5e0d80f723b
- gdb: seems to be compatible with both Python 2 and 3, but not sure since which version
gnuradio: currently in v188.8.131.52, can be bumped to v3.8+ which supports Python 3. Work can resume from these patches: http://patchwork.ozlabs.org/patch/1158469/ and http://patchwork.ozlabs.org/patch/1158470/ New series under review: https://patchwork.ozlabs.org/project/buildroot/list/?series=153798 (+ 1 patch that got lost alone: https://patchwork.ozlabs.org/patch/1224753/)DONE!
- jailhouse: no clear indication, but there are some signs towards Python 3 support (https://github.com/siemens/jailhouse/blob/master/pyjailhouse/extendedenum.py#L12-L21)
Kodi: Upstream announces an ongoing effort to move to Python3 in the upcoming v19: https://kodi.wiki/view/Migration_to_Python_3. Only Python2 for now !DONE!
- libdnet: latest release v1.11 dates back from 2005, and only talks about Py2.3 or 2.4. There is most probably no Python3 support, because the latter was released in 2008
- nmap: the ndiff utility is still tied to Python2, syntactically incompatible with Python3. There is a pull request to replace ndiff with pyndiff
- pcm-tools: the pmu-query script is still tied to Python2, syntactically incompatible with Python3
supervisor: currently in v3.1.4, support for Python3 was added in v4.0.0 (https://github.com/Supervisor/supervisor/blob/master/CHANGES.rst#400-2019-04-05)DONE! gstreamer1/gst1-validate: Patch for Python3 sent http://patchwork.ozlabs.org/patch/1185306/DONE!
(TBD) These packages are Python libraries that can then be imported by Python scripts
Python in the build system
These packages use Python in their build process, hence requiring host-python (or host-python3). We aim at removing dependencies on host-python(2) where possible, and therefore remove conditionals such as illustrated below. This should instead unconditionnally depend on host-python3 now:
ifeq ($(BR2_PACKAGE_PYTHON) FOO_DEPENDENCIES += host-python else FOO_DEPENDENCIES += host-python3 endif
At the moment, the following packages reference host-python(2). In the following list, the packages that are underlined have been migrated and tested with only host-python3 by Titouan. This will be posted soon in a series to the mailing list.
- canfestival: uses its script objdictgen as part of the build process. The whole code base is still syntactically Python3 incompatible. A patch to remove the package is now available.
- spidermonkey: Removed! Spidermonkey was only used for Polkit which now used duktape as the backend.
- wpewebkit There is a pending pull request to replace host-python with host-python3. wpewebkit compiles without issue with host-python3
- xcb-proto, host-xcb-proto
The waf-package infrastructure has been fully migrated to host-python3
All packages using SCons (no dedicated infrastructure) have been migrated to host-python3