Red Hat Bugzilla – Bug 1024357
cloud-init: Use Python 3 instead of Python 2
Last modified: 2015-03-12 13:50:19 EDT
Hi, we would like to use Python 3 on the default installation instead of Python 2 on Fedora 22.
According to FESCo, we should firstly focus on the cloud image.
From that perspective, your package is considered as IMPORTANT - that means, is has to be updated to Python 3, for our intention come true.
The goal here is, that for F22 you should use Python 3 instead of Python 2 in this package.
Please, help us update to Python 3 flawlessly.
Check if upstream already support Python 3, if yes, use it and add the support to the package.
If upstream doesn't support Python 3 yet, encourage it to do so by sending patches and offering your help.
When upstream is dead or unwilling to support Python 3, say so and we can solve the problem together.
Chances are, that you ARE the upstream. In that case, everything is easier, just do it yourself.
There is a table on wiki, that should list your package. Chances are, that you can see an upstream link that covers the problem. Anyway, please update the table with information you know.
I offer my help with this task, so if you have no idea, how to work on this, or it is just not your priority, don't hesitate to ask for help.
(As you've already realized, this is a bulk text, so if something is not quite exact about your package, sorry for that, just ask)
Hi Garrett, for our Python 3 as default feature, we would really need cloud-init to use Python 3 in rawhide (F22) by 24.2.
Upstream already merged the patches, but didn't yet made a release. Would you please take what is in upstream bazaar and package it as a pre-release, so we can make it in time? I'm almost sure next release will hit use before the release of Fedora 22, so we can ship a non pre-release package for it once available.
I'm also willing to do the packaging if you let me.
s/hit use/hit us/
Upstream's python3 work is still very much ongoing, so while this may be okay for rawhide, I am reluctant to simply dump code that is this unstable into F22 because it carries such a high risk of breaking cloud image testing completely. Cloud-init updates have historically been quite conservative because we can't update a cloud image once it has shipped. A few people are working on a system for shipping updated images, but that isn't ready yet.
There are a couple ways we could work on that without breaking F22, though:
1. Build against python3 in rawhide and update F22 if ready before beta.
2. Build against python3 in a COPR and update F22 if ready before beta.
Either way, this should definitely go into rawhide, and a COPR shouldn't be too much work. What do you think?
Would it make sense to switch to Python 3 now and if some serious bugs are introduced, then switch back to Python 2 before Beta? At this point, so many packages have been switched that I'd say switching them back would mean more work for us than helping you fix cloud-init if it breaks.
But of course it's your decision and I understand your POV, so we'll help you no matter which way you choose.
After updating the package to cloud-init's current mainline code I grabbed the latest F22 cloud base image out of koji, updated cloud-init, updated libselinux-python3 with a fix for bug 1195004, and installed dhcp-client, which was, for whatever reason, missing. At that point I had something I could boot and log into on EC2. Looks like we've got our starting point. 8^)
Note: All that, running on Python 3 powered cloud-inid
BTW the specfile is here: https://github.com/gholms/cloud-init-rpmspec
Ok, so it seems that we'll have to revert after all for F22 . Please only build this for F23 (so this doesn't need to be built today). Thanks.
I built this in rawhide for now. Let's stick with stable cloud-init in F22 until libselinux-python3 works well enough to not break things.
This bug appears to have been reported against 'rawhide' during the Fedora 22 development cycle.
Changing version to '22'.
More information and reason for this action is here: