Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 673038 - dev-python/nautilus-python: switch to python3
Summary: dev-python/nautilus-python: switch to python3
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Linux Gnome Desktop Team
URL:
Whiteboard:
Keywords: PullRequest
Depends on:
Blocks: py3-tracker, python-3-incompatible 710106
  Show dependency tree
 
Reported: 2018-12-12 19:14 UTC by Mart Raudsepp
Modified: 2020-02-18 21:05 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mart Raudsepp gentoo-dev 2018-12-12 19:14:54 UTC
nautilus-python is a nautilus extension that in turn adds support for having nautilus extensions written in python. Due to the nature of it, we can't really build it with support for multiple python versions at once, thus it is a python-single-r1.eclass package.
Currently it only has python2_7 in PYTHON_COMPAT, and it'd be good to be able to add python3_5 and up. However, we can't, because all packages (and users manually installed extensions) shipping nautilus extensions written in python could break, if their python code isn't compatible with python3, or any python modules the extension uses aren't python3-ready and properly installed as such.

Basically we need to first make all the consumers compatible with both python2 and python3 together somehow, then add python3 support, and eventually phase out python2 support (so we don't need to worry about python2 + python3 compatibility together anymore). I fear this might end up impossible to express via deps in some cases (as we mustn't dep on nautilus-python[${PYTHON_USEDEP}] because it's python-single-r1), and we'll instead really need to do a coordinated switch via having a nautilus-python revision that supports only python2, another revision that supports only python3, having everything in tree depend on the appropriate nautilus-python revision (older or newer than the cutoff point), and then releasing that out of p.mask and later stabling in a coordinated all-at-once manner.

These are my thoughts on the topic, but I don't have the time to work on this myself, as there are other things to do - like getting us nautilus-3.30.

However this is the reason I did not add python3 versions to PYTHON_COMPAT and will try to block such tries if they don't also deal with the concerns raised herein.
Comment 1 Larry the Git Cow gentoo-dev 2018-12-12 19:16:58 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ac8f81058889929409edf7bc66b96a6ded4ea92c

commit ac8f81058889929409edf7bc66b96a6ded4ea92c
Author:     Mart Raudsepp <leio@gentoo.org>
AuthorDate: 2018-12-12 18:53:16 +0000
Commit:     Mart Raudsepp <leio@gentoo.org>
CommitDate: 2018-12-12 19:15:48 +0000

    dev-python/nautilus-python: bump to 1.2.2
    
    Maintainer timeout, plus I co-maintain nautilus itself.
    No python3 support is introduced yet, as that would break
    existing packages in tree without a more careful migration
    process.
    
    Closes: https://bugs.gentoo.org/665764
    Bug: https://bugs.gentoo.org/673038
    Signed-off-by: Mart Raudsepp <leio@gentoo.org>
    Package-Manager: Portage-2.3.52, Repoman-2.3.11

 dev-python/nautilus-python/Manifest                |  1 +
 .../nautilus-python/nautilus-python-1.2.2.ebuild   | 37 ++++++++++++++++++++++
 2 files changed, 38 insertions(+)
Comment 2 jonas.licht 2020-02-18 21:00:42 UTC
I opened a PR where I bumped the version and added the python3 target.
As I see these packages are depend on nautilus-python:
  * gnome-extra/gnome-shell-extension-gsconnect
  * net-misc/owncloud-client
  * net-misc/nextcloud-client
  * app-antivirus/clamtk

I tested gsconnect and owncloud-client with both Python Versions and haven't  encountered a problem.
I didn't test the nextcloud-client because I haven't build qtwebengine yet,
but if you are looking into the python source file [0], you would find a detection for python3.

The clamtk uses a PYTHON_USEDEP and I update to a python3 compatible version in 710106.

[0] https://github.com/nextcloud/desktop/blob/master/shell_integration/nautilus/syncstate.py