On Thu, Feb 7, 2019 at 11:04 PM Milan Zamazal <mzama...@redhat.com> wrote:
>
> Hi, there have been efforts by different Vdsm developers to port Vdsm to
> Python 3.  I've joined the efforts recently and I focused on the aim to
> make Vdsm running (not necessarily working correctly initially) on
> Python 3, in order to better understand all the related problems and to
> test Python 3 compatibility (among other) on a running Vdsm instance.
>
> I can currently start Vdsm on Python 3, although it can't communicate
> with clients yet (such as Engine), see below.  FWIW, here is what I had
> to do to make Vdsm at least installable and startable with Python 3.
>
> I use Fedora 28 as the platform.  The primary reason is that ovirt.org
> provides for Fedora 28 all the non-Vdsm oVirt packages needed to run
> Vdsm on the host.
>
> Direct host installation doesn't work for me yet with Python 3.  It
> might be a nice next goal but there is an added complexity in requiring
> proper support in all the related oVirt packages, not just Vdsm.  It's
> better to have a basically working Vdsm first.  So I had installed the
> host with Python 2 Vdsm and then upgraded Vdsm to Python 3 version.
>
> One non-Vdsm Python package required by Vdsm and not yet ported to
> Python 3 is sanlock-python.  There is an ongoing work on Python 3 port
> at https://pagure.io/fork/mcsontos/sanlock/commits/dev-mcsontos-python3.
> I didn't know about it so I used my own hack that made sanlock Python
> module at least importable on Python 3.  Let's discuss it on
> sanlock-devel.
>
> Regarding Vdsm itself, there are several areas to fix.  First, there are
> compatibility problems in Python code.  I started making some fixes in a
> patch series starting with https://gerrit.ovirt.org/97019.  Please note
> there are other Python 3 patches by other Vdsm developers.  I hope that
> once we branch out 4.3, we can start merging the patches to master
> quickly and better coordinate our efforts.
>
> Then there are other changes to Vdsm needed, which I don't have patches
> for (just my ugly private hacks):

I believe that +Gal Zaidman has few patches for these in his drawer.
He has postponed his work due to 4.3 stabilitzation.


>
> - All the /usr/bin/python2 shebangs must be replaced with
>   /usr/bin/python3.  We should find a good way to solve and automated
>   that, perhaps as part of the installation process depending on Python
>   version selected.
>
> - configure.ac must be adjusted:
>
>   + AM_PATH_PYTHON([3.6])
>   + AC_PATH_PROG([PYTHON_CONFIG], [python3-config])
>   + AX_PYTHON_MODULE([six], [fatal], python3)
>
>   It should be easy to make a patch for that.
>
> - The following changes in vdsm.spec.in are needed:
>
>   + Dependencies on Python packages must be adjusted.
>   + python3_sitelib must be used instead of python_sitelib for Python 3.
>   + Byte compiled files are placed into __pycache__ subdirectories by
>     Python 3 and they must be installed.
>
>   It would be nice to have patches for that so that we can build
>   Python 3 rpm's easily.
>
> That's it at the moment.  Most compatibility problems in Python code are
> easy to fix once they are identified.  One important exception is bytes
> versus strings -- that's going to be delicate.
>
> The bytes versus strings problem is very present in communication
> code -- such as vdsm/rpc/http.py, vdsm/sslutils.py, etc.  While strings
> constants are typically used in the code, the communication means work
> with bytes.  This mismatch prevents Vdsm from communicating with the
> clients, so it would be very useful if someone could look at it and fix
> the code (one of the harder parts would probably be to decide where to
> keep bytes and where to already convert them to strings).
>
> HTH.  As more people are involved in porting Vdsm to Python 3, it might
> be useful to coordinate all the efforts here, to avoid duplicate work,
> to share findings and to speed up the process.

Indeed. We may also try to revive Trello usage.
Would you add relevant tasks to https://trello.com/b/tHeO1BFW/py3-vdsm ?


>
> Thanks,
> Milan
> _______________________________________________
> Devel mailing list -- devel@ovirt.org
> To unsubscribe send an email to devel-le...@ovirt.org
> Privacy Statement: https://www.ovirt.org/site/privacy-policy/
> oVirt Code of Conduct: 
> https://www.ovirt.org/community/about/community-guidelines/
> List Archives: 
> https://lists.ovirt.org/archives/list/devel@ovirt.org/message/MRGBB2VJJX6DTUJ65UYEGAWFFGDW55VQ/
_______________________________________________
Devel mailing list -- devel@ovirt.org
To unsubscribe send an email to devel-le...@ovirt.org
Privacy Statement: https://www.ovirt.org/site/privacy-policy/
oVirt Code of Conduct: 
https://www.ovirt.org/community/about/community-guidelines/
List Archives: 
https://lists.ovirt.org/archives/list/devel@ovirt.org/message/UXN6VLKOOUUY7NZM5PKZHXMTOVQ5DOZB/

Reply via email to