Bug 1750911
| Summary: | python36-tabulate (mistakenly) requires python3.4 | ||
|---|---|---|---|
| Product: | [Fedora] Fedora EPEL | Reporter: | Ling Li <liling> |
| Component: | python-tabulate | Assignee: | Raphael Groner <projects.rg> |
| Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | epel7 | CC: | carlwgeorge, cstratak, igor.raits, mhroncok, neuro-sig, projects.rg, python-sig, rbean, steve.traylen |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | python-tabulate-0.8.3-8.el7 | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2019-10-01 03:20:47 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
Ling Li
2019-09-10 17:59:04 UTC
Thanks for testing. TBH I don't know either why the wrong python version gets associated. Will investigate, maybe the bug is deeper inside python or rpmbuild. Reproducible with a scratch build but no idea what happens. Provides: python3-tabulate = 0.8.3-7.el7 python36-tabulate = 0.8.3-7.el7 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: /usr/bin/python3.4 python(abi) = 3.6 ... Provides: python34-tabulate = 0.8.3-7.el7 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: /usr/bin/python3.4 python(abi) = 3.4 Maybe a real bug inside the build chain? Reassigning to get help from the other maintainers. This is a packaging error.
%install
%{?with_python2: %py2_install}
%py3_install
%{?python3_other_pkgversion: %py3_other_install}
This does in the follwoing order:
- install /usr/bin/tabulate with python2 shebang
- install /usr/bin/tabulate with python3.6 shebang
- install /usr/bin/tabulate with python3.4 shebang
And this:
%files -n python%{python3_pkgversion}-%{modname}
...
%{_bindir}/%{modname}
...
%if 0%{?python3_other_pkgversion}
...
%{_bindir}/%{modname}
...
%endif
Puts /usr/bin/tabulate with python3.4 shebang to both packages.
Miro, thanks for the analysis and explanation. > Puts /usr/bin/tabulate with python3.4 shebang to both packages. We'd have to use a suffix then for the installed binaries? Is there any default version? https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_multiple_python_runtimes https://fedoraproject.org/wiki/PackagingDrafts:Python3EPEL#Modules > scripts/entry-points https://fedoraproject.org/wiki/PackagingDrafts:Python3EPEL#All_Packages What does the executable actually do? (In reply to Miro Hrončok from comment #5) > What does the executable actually do? The binary's a command line tool: "tabulate - Pretty-print tabulate data." No idea if there are more|less options as mentioned in this quickly found manpage: https://bitbucket.org/astanin/python-tabulate/src/a4c22260a8b01c9cafd57de9465ba45394a4c027/tabulate.py#lines-1456 https://dokk.org/manpages/tabulate.1 My educated guess is that the user of the command doesn't nee to care what python version runs it at all. Keep it in python36-tabulate only:
%install
%{?with_python2: %py2_install}
%{?python3_other_pkgversion: %py3_other_install}
# Make sure the executables are owned by py3
rm -f %{buildroot}%{_bindir}/*
%py3_install
And only list %{_bindir}/%{modname} in %files -n python%{python3_pkgversion}-%{modname}
> Keep it in python36-tabulate only
Agreed.
Reporter, do you agree, too?
I only use tabulate as a module, not with command line. So I agree that only keeping it with python36-tabulate is reasonable. OK, a new build and update is on the way. Well, the branches epel7 and master are now really diverged. Maybe we'd consider to merge? FEDORA-EPEL-2019-2a015b2414 has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2019-2a015b2414 python-tabulate-0.8.3-8.el7 has been pushed to the Fedora EPEL 7 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-EPEL-2019-2a015b2414 python-tabulate-0.8.3-8.el7 has been pushed to the Fedora EPEL 7 stable repository. If problems still persist, please make note of it in this bug report. |