Bug 1314529 - python2-bashate - requires both python2 and python3
python2-bashate - requires both python2 and python3
Status: CLOSED RAWHIDE
Product: Fedora
Classification: Fedora
Component: python-bashate (Show other bugs)
24
Unspecified Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: hguemar
Fedora Extras Quality Assurance
:
Depends On:
Blocks: PYTHON3
  Show dependency treegraph
 
Reported: 2016-03-03 15:32 EST by William Moreno
Modified: 2016-06-25 21:45 EDT (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2016-06-25 21:45:43 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description William Moreno 2016-03-03 15:32:23 EST
Hi, there is a issue with the spec:

%install
%py2_install

%if 0%{with_python3}
%py3_install
%endif

And then in both packages:
%{_bindir}/%{pypi_name}

This mean you are including in the python2 subpackage a executable than requires the python3 version of this package, you must update your spec to something like:

%install
%py2_install
mv %buildroot/%{_bindir}/%{pypi_name} %buildroot/%{_bindir}/%{pypi_name}-py2

and then in the python2 subpackage
%{_bindir}/%{pypi_name}-py2

See:
https://fedoraproject.org/wiki/Packaging:Python#Avoiding_collisions_between_the_python_2_and_python_3_stacks
Comment 1 Petr Viktorin 2016-03-04 04:53:37 EST
Actually, the guidelines specify how the scripts should be named, so that users can use a sane "default" but also explicitly request a specific version:
https://fedoraproject.org/wiki/Packaging:Python#Naming

There are two cases:
1) If the script works the same under both python2 and python3, only the python3 scripts can be packaged

2) Otherwise, there should be /usr/bin/script, /usr/bin/script-2, /usr/bin/script-2.7 for Python 2, and /usr/bin/script-3, /usr/bin/script-3.5 for Python 3.
You can do that like this:

%py3_install
mv %{buildroot}/%{_bindir}/%{pypi_name} %{buildroot}/%{_bindir}/%{pypi_name}-3 
ln -s %{buildroot}/%{_bindir}/%{pypi_name}-3 %{buildroot}/%{_bindir}/%{pypi_name}-%{python3_version}

%py2_install
ln -s %{buildroot}/%{_bindir}/%{pypi_name} %{buildroot}/%{_bindir}/%{pypi_name}-%2
ln -s %{buildroot}/%{_bindir}/%{pypi_name} %{buildroot}/%{_bindir}/%{pypi_name}-%{python2_version}
Comment 2 hguemar 2016-06-25 18:48:22 EDT
Reassigning to myself as provenpackager.
Comment 3 hguemar 2016-06-25 21:45:43 EDT
Updated to 0.5.1, I fixed the symlinks, now default binary is python3 version.

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