Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1737641 - chirp fails to install due to missing Python 2 dependencies
Summary: chirp fails to install due to missing Python 2 dependencies
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: chirp
Version: 31
Hardware: Unspecified
OS: Unspecified
unspecified
low
Target Milestone: ---
Assignee: Richard Shaw
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: F31FailsToInstall F32FailsToInstall PY2FTBI
TreeView+ depends on / blocked
 
Reported: 2019-08-05 23:17 UTC by Miro Hrončok
Modified: 2019-12-26 02:34 UTC (History)
5 users (show)

Fixed In Version: chirp-20191206-1.fc31
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-12-19 01:23:09 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Miro Hrončok 2019-08-05 23:17:03 UTC
$ mock -r fedora-rawhide-x86_64 init
$ mock -r fedora-rawhide-x86_64 install chirp
Problem: conflicting requests
 - nothing provides python2dist(future) needed by chirp-20190718-2.fc31.noarch

Please fix this, preferably by fixing bz1731397.

Comment 1 Richard Shaw 2019-08-06 00:08:35 UTC
I just sent an email on the chirp discussion list. We'll see what they say.

Comment 2 Miro Hrončok 2019-08-13 15:06:59 UTC
Any answer from the mailing list?

In preparation for the Python 2 EOL, we are removing all non-installable Python 2 packages:
https://fedoraproject.org/wiki/Changes/F31_Mass_Python_2_Package_Removal#Removing_non-installable_packages_from_the_distro

This bug is still in the NEW state and the package does not install. Please indicate you are working on a fix by setting the state to ASSIGNED. When this bug is four weeks in the NEW state, the package may be orphaned.

Note that you don't have to actually fix this right now, setting the bug to ASSIGNED will just mark this as being worked on, so I'll know it is being taken care of. If this happens too quickly, feel free to reach to me any time for help (with specific problems).

Thank You!

Comment 3 Ben Cotton 2019-08-13 17:02:46 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle.
Changing version to 31.

Comment 4 Ben Cotton 2019-08-13 17:08:23 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle.
Changing version to '31'.

Comment 5 Richard Shaw 2019-08-14 01:09:03 UTC
Changing to ASSIGNED to buy some time but I haven't heard anything from upstream.

https://chirp.danplanet.com/issues/495

Comment 6 Miro Hrončok 2019-08-14 08:24:59 UTC
May I recommend to resurrect python2dist(future) for Fedora 31?

Comment 7 Miro Hrončok 2019-08-21 15:47:08 UTC
See https://fedoraproject.org/wiki/Changes/F31_Mass_Python_2_Package_Removal#Removing_non-installable_packages_from_the_distro

"Packages still failing to install due to a missing Python 2 dependency will be retired at Beta Freeze, assuming they have a Bugzilla bug open for at least 2 weeks. The package maintainer may postpone this retirement to the Final Freeze by promising to fix it until then."

Let me know if this package shall not be retired yet. The beta freeze is at 2019-08-29, the final freeze is at 2019-10-08.

Comment 8 Miro Hrončok 2019-08-28 11:36:33 UTC
Richard wanted to buy some time, so I'm not retiring this package yet. Richard, please either fix this by the Final Freeze or request a freeze exception.

Comment 9 Miro Hrončok 2019-10-04 19:43:22 UTC
The Final Freeze is at 2019-10-08. This package still fails to install:


Error: 
 Problem: conflicting requests
  - nothing provides python2dist(future) needed by chirp-20190812-1.fc31.noarch



I intent to retire the package from f31 and master at 2019-10-07, let me know if I should not.

Comment 10 Richard Shaw 2019-10-05 12:03:35 UTC
Still no response from upstream. I'll just have to unretire it when they get their act together.

Comment 11 Miro Hrončok 2019-10-07 10:07:11 UTC
Ok. Doing it. Let me know if the return happens after 8+ weeks, I'll gladly help you get it reviewed.

Comment 12 Michal Ambroz 2019-11-21 02:43:51 UTC
Hello Miro / Richard,
I believe it was too draconic to remove retire this functional package - please any chance to ressurrect this package? 
Having python2-future is not essential for running chirp. 
Python-futureIt is used just by one driver out of hundreds and it fails gracefully.
I believe there are more ways how to deal with this:
- move to weak dependencies (so people if they really want that particular driver can install with pip)
- remove the /usr/lib/python2.7/site-packages/chirp/drivers/tk8180.py driver from the package for now

Here is the affected code - it tries to load and fails gracefully:\
try:
    from builtins import bytes
    has_future = True
except ImportError:
    has_future = False
    LOG.warning('python-future package is not '
                'available; %s requires it' % __name__)

Comment 13 Richard Shaw 2019-11-21 02:55:24 UTC
I'm not particularly happy about it as it's a package I use, but some dependencies were retired that did not apply for a python 2 exception so there wasn't much I could do.

I would recommend that you (politely) explain your displeasure on the chirp mailing list. There has been some effort to convert to python 3 but there has not been much activity for a few months last I checked.

Comment 14 Miro Hrončok 2019-11-21 09:16:22 UTC
Michal, this is no longer my choice.

If you want to do that, you would need two things:


 1. ask for a FESCo exception that also explains what dependencies you need and approximately for how long
 2. unretire the package via a releng ticket (after 1. happens)



Dependency info from Fedora 29:

$ repoquery --releasever=29 --repo={fedora,updates{,-testing}} --requires chirp
/usr/bin/python2
pygtk2
python(abi) = 2.7
python2-libxml2
python2-pyserial
python2-suds
python2dist(future)
python2dist(pyserial)
python2dist(suds-jurko)


Before you proceed with the exception request, I ask that you filter this list and let me know what is only recommended. Than I ask you to talk to the package maintainers of the dependencies and ask them whether they are willing to maintain their Python 2 packages for chirp or give them to you.

As a side note, it was recently unfortunately said by legal that Fedora packages cannot recommend stuff that is not packaged in Fedora (for that given release). In practice, one cannot recommend python2dist(future) in Fedora 32, if no package in Fedora 32 provides it.

Comment 15 Michal Ambroz 2019-11-30 02:27:17 UTC
Hello Miro,
thanks for info - it was usefull.

I was not so much speaking about F32 - the future of python2 packages is clear and more than future is missing there. 
Let's hope that chirp will move to python3 before next release of Fedora.

I was more talking about the current stable F31 ... dependencies there are already released and only thing missing there is python2dist(future).
Removing /usr/lib/python2.7/site-packages/chirp/drivers/tk8180.py from the chirp package would suffice the python2 dependencies in F31 for now.
Michal

Comment 16 Miro Hrončok 2019-11-30 09:17:40 UTC
From my point of view, feel free to unretire chirp on Fedora 31, given you can make it installable.

Comment 17 Richard Shaw 2019-11-30 14:01:03 UTC
I honestly haven't dug into it that far. Are you saying that only one radio driver requires python-future?

I had considered (and even attempted locally) of trying to beat chirp into Python 3 compatibility but it wasn't straightforward and I don't want to be responsible for bricking someones $1000 radio.

Comment 18 Michal Ambroz 2019-12-05 09:19:15 UTC
(In reply to Richard Shaw from comment #17)
> I honestly haven't dug into it that far. Are you saying that only one radio
> driver requires python-future?
Yes, that is what I said. According the "grep -R" the only module, which uses the "import future" or "from future import" is the tk8180.py dirver.
Removing it will stop possibility to manage the tk8180 radio (one of cca 300 possible radios)


> I had considered (and even attempted locally) of trying to beat chirp into
> Python 3 compatibility but it wasn't straightforward and I don't want to be
> responsible for bricking someones $1000 radio.
I totally understand ... this will be tricky to test without the radios and even with them. 

It is paradox that using python-future aims to make this transition from pyton2 to python3 smother so it will be much easier to switch tk8180.py because it is already using modern python3 streams and byte-arrays, but we do not have that package now in Fedora. What a shame.

Michal

Comment 19 Richard Shaw 2019-12-05 15:53:01 UTC
Ok, I verified that python-future is the only dependency we're missing. 

Miro, how do we unretire on f31 only?

Comment 20 Miro Hrončok 2019-12-05 15:54:07 UTC
when you open the releng ticket, explicitly ask for f31 only.

Comment 21 Miro Hrončok 2019-12-05 15:59:21 UTC
(In reply to Michal Ambroz from comment #18)
> It is paradox that using python-future aims to make this transition from
> pyton2 to python3 smother so it will be much easier to switch tk8180.py
> because it is already using modern python3 streams and byte-arrays, but we
> do not have that package now in Fedora. What a shame.

Well, I have recommended to resurrect that package in Fedora 31:

(Miro Hrončok in comment #6)
> May I recommend to resurrect python2dist(future) for Fedora 31?

However, nobody did that. The Python team have not asked for python2dist(future) to be removed at that point. It was done by the maintainer. Have you attempted to communicate with them? Your attitude about this, saying "What a shame" without looking into the thing is very demotivating. I always try to help you resolve your case, yet you seem to not miss any opportunity to demoralize.

Comment 22 Richard Shaw 2019-12-05 16:02:28 UTC
Submitted

https://pagure.io/releng/issue/9085

Comment 23 Richard Shaw 2019-12-09 16:09:47 UTC
Just to update everyone, almost there. I have updated the f31 branch and could commit changes but still can't do builds in koji just yet.

Comment 24 Fedora Update System 2019-12-10 12:58:27 UTC
FEDORA-2019-214df2629b has been submitted as an update to Fedora 31. https://bodhi.fedoraproject.org/updates/FEDORA-2019-214df2629b

Comment 25 Fedora Update System 2019-12-11 01:41:46 UTC
chirp-20191206-1.fc31 has been pushed to the Fedora 31 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-214df2629b

Comment 26 Michal Ambroz 2019-12-18 12:47:42 UTC
(In reply to Miro Hrončok from comment #21)
> Your attitude about this, saying "What a shame" without looking into the thing is very
> demotivating. 
> I always try to help you resolve your case, yet you seem to
> not miss any opportunity to demoralize.
Hello Miro,
yes I should have used "pity" word rather than "shame".
I am sorry if you took this comment personally as complain about your work and I publicly apologize to you if you understood it like that.
You helped a lot with my python packages and I see you are helping with others like this one as well - thank you for that. 

As python2-future aim is to make the transition from python2 to python3 smooth, I believe that it would be beneficial for Fedora to keep this python2 library as long as we support the python2 runtime.

@@sagitter@@ please can you bring some light to topic why the python2-future was dropped from F31+? 
For the tool/library making transition from python2 to python3 smother, wouldn't it make more sense to ask FESCO for exemption for that package to make the transition simpler?
Having both python3-future and python2-future libraries installed gives python developers/users benefit of being able to simply run/switch/test the same code-base with both python2 _AND_ python3 runtime and ultimately allows transition to python3.

Best regards
Michal Ambroz

Comment 27 Petr Viktorin 2019-12-18 16:58:56 UTC
> Having both python3-future and python2-future libraries installed gives python developers/users benefit of being able to simply run/switch/test the same code-base with both python2 _AND_ python3 runtime

Which packages would this benefit?
If it's a package in Fedora, there should be an exception for that package (and python2-future should be included, if needed).
If it's for something not in Fedora, users should be able to install python2-future from pip (or wherever else they get their dependencies from).

What am I missing?



> ultimately allows transition to python3.

How much more time are you talking about?
If it's some finite amount of time, and there's actual progress toward the transition, let's talk.

Comment 28 Antonio T. (sagitter) 2019-12-18 17:59:36 UTC
> @@sagitter@@ please can you bring some light to topic why the python2-future was dropped from F31+?

Keeping a python2 package on F32 requires a FESCO exception.
F31 was the right moment for a definitive transition.

Do you still need python2-future on F31?

> For the tool/library making transition from python2 to python3 smother, wouldn't it make more sense to ask FESCO for exemption for that package to make the transition simpler?

FESCO exception is not for a simpler transition (transition is already happened) but for special/unavoidable dependencies.

Comment 29 Fedora Update System 2019-12-19 01:23:09 UTC
chirp-20191206-1.fc31 has been pushed to the Fedora 31 stable repository. If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.