The recoll RPM requires both Python 2 and Python 3. Except in very special circumstances, there is no need for one package to drag in both Python stacks. Usually, this is a packaging error: for example, a stray "/usr/bin/python" shebang in a Python 3 package can introduce a Python 2 dependency. Please split your package, or remove the stray dependencies. There is a section on shebangs in the Python RPM Porting Guide [0] which covers this issue. It's ok to do this in Rawhide only, however, it would be greatly appreciated if you could push it to Fedora 27 as well. If anything is unclear, or if you need any kind of assistance, you can ask on IRC (#fedora-python on Freenode), or reply here. We'll be happy to help investigating or fixing this issue! [0] http://python-rpm-porting.readthedocs.io/en/latest/application-modules.html#are-shebangs-dragging-you-down-to-python-2
Hi! This is not a bug, recoll have helper scripts (filters) written in both Python 2 and 3, for recoll to work both stacks are needed. In the future upstream might convert everything to Python 3, however no eta for that to happen.
Thanks for the information.
Part of the release notes for recoll 1.24.0 (see bug #1565866 for release-monitoring's automated "is available" updates, the latest upstream is 1.24.1) reads: * All input handlers should now be compatible with Python3, but still use Python2. So, it sounds like recoll SHOULD be ready to go full Python3, if we were inclined to repackage 1.24.x that way by regexp-updating all of the shebangs during rpmbuild.
hi! I have talked to upstream maintainer, next release will use Python 3 only, he had to reimplement some filters as some were Python 2 only. Release should be available long before Fedora 30 is here.
Re-opening, then. What is the status for Fedora 31?
(In reply to Petr Viktorin from comment #5) > Re-opening, then. > What is the status for Fedora 31? Current recoll-1.25.16-1.fc30.x86_64 in Fedora 30 includes both Python2 and Python3 modules together in the same package, but all files are present in both packages. All of the filters in /usr/share/recoll/filters/ use python3 shebangs: $ grep usr/bin/python /usr/share/recoll/filters/* /usr/share/recoll/filters/hotrecoll.py:#!/usr/bin/python2 /usr/share/recoll/filters/ppt-dump.py:#!/usr/bin/python3 /usr/share/recoll/filters/rcl7z:#!/usr/bin/python3 /usr/share/recoll/filters/rclabw.py:#!/usr/bin/python3 /usr/share/recoll/filters/rclaudio:#!/usr/bin/python3 /usr/share/recoll/filters/rclbasehandler.py:#!/usr/bin/python3 /usr/share/recoll/filters/rclchm:#!/usr/bin/python3 /usr/share/recoll/filters/rcldia:#!/usr/bin/python3 /usr/share/recoll/filters/rcldjvu.py:#!/usr/bin/python3 /usr/share/recoll/filters/rcldoc.py:#!/usr/bin/python3 /usr/share/recoll/filters/rclepub:#!/usr/bin/python3 /usr/share/recoll/filters/rclepub1:#!/usr/bin/python3 /usr/share/recoll/filters/rclfb2.py:#!/usr/bin/python3 /usr/share/recoll/filters/rclgenxslt.py:#!/usr/bin/python3 /usr/share/recoll/filters/rclgnm.py:#!/usr/bin/python3 /usr/share/recoll/filters/rclics:#!/usr/bin/python3 /usr/share/recoll/filters/rclimg.py:#!/usr/bin/python3 /usr/share/recoll/filters/rclinfo:#!/usr/bin/python3 /usr/share/recoll/filters/rclkar:#!/usr/bin/python3 /usr/share/recoll/filters/rcllatinclass.py:#!/usr/bin/python3 /usr/share/recoll/filters/rclokulnote.py:#!/usr/bin/python3 /usr/share/recoll/filters/rclopxml.py:#!/usr/bin/python3 /usr/share/recoll/filters/rclpdf.py:#!/usr/bin/python3 /usr/share/recoll/filters/rclppt.py:#!/usr/bin/python3 /usr/share/recoll/filters/rclpython:#!/usr/bin/python3 /usr/share/recoll/filters/rclrar:#!/usr/bin/python3 /usr/share/recoll/filters/rclrtf.py:#!/usr/bin/python3 /usr/share/recoll/filters/rclsoff-flat.py:#!/usr/bin/python3 /usr/share/recoll/filters/rclsoff.py:#!/usr/bin/python3 /usr/share/recoll/filters/rclsvg.py:#!/usr/bin/python3 /usr/share/recoll/filters/rcltar:#!/usr/bin/python3 /usr/share/recoll/filters/rcltext.py:#!/usr/bin/python3 /usr/share/recoll/filters/rclwar:#!/usr/bin/python3 /usr/share/recoll/filters/rclxls.py:#!/usr/bin/python3 /usr/share/recoll/filters/rclxml.py:#!/usr/bin/python3 /usr/share/recoll/filters/rclxmp.py:#!/usr/bin/python3 /usr/share/recoll/filters/rclzip:#!/usr/bin/python3 /usr/share/recoll/filters/recoll-we-move-files.py:#!/usr/bin/python3 /usr/share/recoll/filters/xls-dump.py:#!/usr/bin/python3 /usr/share/recoll/filters/xlsxmltocsv.py:#!/usr/bin/python3 So, recoll in F30 is already fully migrated to Python3. The F31 builds can just drop /usr/lib/64/python2.7/site-packages/recoll* as no longer needed.
(In reply to "FeRD" (Frank Dana) from comment #6) > All of the filters in /usr/share/recoll/filters/ use python3 > shebangs: "...except hotrecoll.py." (I have no idea how I missed that one.) > $ grep usr/bin/python /usr/share/recoll/filters/* > /usr/share/recoll/filters/hotrecoll.py:#!/usr/bin/python2 The comments at the top of the file say: # wnck does not have a python3 binding as far as I can see (or at # least it's not packaged by, e.g. Debian. So python2 only for now. So it sounds like that script will just have to be dropped when Python 2 goes away. (It's not a filter anyway, it's a hotkey-bindable control script for the Recoll GUI. So, no loss of Recoll functionality without it.)
Python 2 deps has been removed from recoll package: https://src.fedoraproject.org/rpms/recoll/c/8d38facf90397231648ab49f2508bc566e2acd61?branch=master
Thank you. I have noticed the build dependency is still there: BuildRequires: python2-devel BuildRequires: python2-setuptools From this line it seems the Python 2 bits are built an removed: rm -rf %{buildroot}%{python2_sitearch} Any chance to build entirely without Python 2?
Yeah, this requires more work, need to patch the auto* generated files, will have a look.
More clean up done: https://koji.fedoraproject.org/koji/buildinfo?buildID=1348238 https://src.fedoraproject.org/rpms/recoll/c/52d72dfc3fbe5b5b7ad0f7728869a4da4b74d3be?branch=master
Thank You!
*** Bug 1738807 has been marked as a duplicate of this bug. ***