python: upgrade to 3.6+ |
|||
Issue descriptionwe're currently at python-3.4 in the sdk. we want to get up to at least python-3.6 for our long term py3 plans.
,
Oct 25
Yesterday (and continuing today) I attempted to upgrade to python-3.6 in the SDK, keeping python-3.4 co-installed during the upgrade process. The effort has proven to be a long exercise in yak-shaving. I think this may require Portage skills that I lack. vapier, have you also begun doing the upgrade? Regardless, do you have any general advice on how to a Python upgrade? (Such as, it may be better to force-remerge @world rather than remerge merely the affected ebuilds?).
,
Oct 26
i haven't started work here simply adding a new version of python shouldn't require any reemerging of packages. we have USE flags to control what versions of python get used and those should be pinning people to the existing 2.7 or 3.4 version. it might be that some packages aren't correctly utilizing those eclasses or USE flags and should be updated, but that should be one off costs. when we do switch from 3.4 to 3.6, it would involve a profile change which should automatically trigger rebuilds for all the corresponding packages. can you upload your CL which just upgrades python ?
,
Nov 2
I'll upload CLs that install Python 3.6. As proof that it's functional, I'll also upload CLs that upgrade to meson-0.46.
,
Jan 13
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/016e873144e89f81e143dbbd810ee8cd3e39c520 commit 016e873144e89f81e143dbbd810ee8cd3e39c520 Author: Chad Versace <chadversary@chromium.org> Date: Sun Jan 13 21:52:21 2019 dev-lang/python-2.7: Install symlinks for python-exec Install the following symlinks: ${libdir}/python-exec/python-2.7/ |-- python |-- python2 |-- python-config |-- python2-config |-- pydoc |-- pydoc2 |-- 2to3 In particular, the 'python' and 'python2' symlinks are needed to safely uprev app-eselect/eselect-python. If the symlinks are missing, newer eselect refuses to select python2.7 as the system's default python, and instead falls back to whatever Python version has the required symlinks installed to ${libdir}/python-exec. Currently in the Chrome OS SDK, eselect would fallback to python3.4 as the default, which breaks the world. BUG=chromium:884766 TEST=sudo emerge dev-lang/python:2.7; # confirm python versions remain unchanged python --version # expect 2.7 python2 --version # expect 2.7 Change-Id: I596c9eef5e234b107d514b7a2882af17675125a9 Reviewed-on: https://chromium-review.googlesource.com/1315770 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Chad Versace <chadversary@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org> [rename] https://crrev.com/016e873144e89f81e143dbbd810ee8cd3e39c520/dev-lang/python/python-2.7.10-r7.ebuild [modify] https://crrev.com/016e873144e89f81e143dbbd810ee8cd3e39c520/dev-lang/python/python-2.7.10.ebuild
,
Jan 19
(4 days ago)
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/9c71f3c065b96262243a7f2c25823e7fecf5a7b1 commit 9c71f3c065b96262243a7f2c25823e7fecf5a7b1 Author: Chad Versace <chadversary@chromium.org> Date: Sat Jan 19 08:14:02 2019 dev-lang/python-3.6.5: Add 3.6 alongside 3.4 Add python-3.6 to the sdk, but do not replace python-3.4. The primary motivation is that meson-0.45 dropped support for python-3.4 and requires at least python-3.5. I dropped all the ChromeOS-specific cross-compile patches from python-3.4.7-r2.ebuild; I did not forward-port them to python-3.6.5.ebuild. Those patches did not work, even when "cross-compiling" to an x86_64 sysroot, such as BOARD=eve. As evidence, the following commands prove both fail, proving the patches do not work: $ emerge-eve =dev-lang/python-3.4.7-r2 $ ebuild-eve python-3.4.7-r2.ebuild compile The upgrade plan for Python is that sdk will continue to use python-3.4 as the default Python version until all dependencies of virtual/target-sdk support USE=python_targets_python3_6. Until then, we can selectively enable USE=python_targets_python3_6 in package.use for the packages that do not support python-3.4. BUG=chromium:884766 TEST=# Verify no conflicts pre-merge sudo emerge -p1UND @world dev-lang/python:3.6 # Install sudo emerge dev-lang/python:3.6 # Verify no surprise conflicts post-merge sudo emerge -p1UND @world # Confirm that 3.4 remains installed and that each wrapper points # to the same version as before. python --version # expect 2.7 python2 -- version # expect 2.7 python3 --version # expect 3.4 python3.4 --version # expect 3.4 python3.6 --version # expect 3.6 Change-Id: Ibaf383ffe5260ac64aed4f72e435ad927569e755 Reviewed-on: https://chromium-review.googlesource.com/1315771 Commit-Ready: Chad Versace <chadversary@chromium.org> Tested-by: Chad Versace <chadversary@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org> Reviewed-by: Daniel Campello <campello@chromium.org> [add] https://crrev.com/9c71f3c065b96262243a7f2c25823e7fecf5a7b1/dev-lang/python/files/python-3.6.5-hash-unaligned.patch [add] https://crrev.com/9c71f3c065b96262243a7f2c25823e7fecf5a7b1/dev-lang/python/files/python-3.5-distutils-OO-build.patch [add] https://crrev.com/9c71f3c065b96262243a7f2c25823e7fecf5a7b1/dev-lang/python/python-3.6.5.ebuild [add] https://crrev.com/9c71f3c065b96262243a7f2c25823e7fecf5a7b1/dev-lang/python/files/python-3.6.5-ldshared.patch [modify] https://crrev.com/9c71f3c065b96262243a7f2c25823e7fecf5a7b1/dev-lang/python/Manifest [add] https://crrev.com/9c71f3c065b96262243a7f2c25823e7fecf5a7b1/dev-lang/python/files/python-3.6.5-libressl-compatibility.patch [add] https://crrev.com/9c71f3c065b96262243a7f2c25823e7fecf5a7b1/dev-lang/python/files/3.6.5-disable-nis.patch |
|||
►
Sign in to add a comment |
|||
Comment 1 by gurcheta...@chromium.org
, Oct 25