Python Wheels in fedora
Starting with Fedora 22, Python packages will have the option to install itself into buildroot via Python wheels.[1] Wheels are the new binary distribution format for python modules, note that as such they are not suitable for use as Source archive. The text below describes the minimal specfile changes needed, if wheel installation is desired.
BuildRequires
The package has to BuildRequire python-pip and python-wheel:
BuildRequires: python-pip BuildRequires: python-wheel %if %{?with_python3} BuildRequires: python3-pip BuildRequires: python3-wheel %endif
Build section
The package has to use the bdist_wheel command, instead of install, this creates a wheel in the dist directory. A minimal build section thus becomes:
%{__python2} setup.py bdist_wheel %if 0%{?with_python3} pushd %{py3dir} %{__python3} setup.py bdist_wheel popd %endif
Install section
Packages has to use pip to install the newly created wheel. A minimal install section thus becomes:
%if 0%{?with_python3} pushd %{py3dir} pip3 install -I dist/%{python3_wheelname} --root %{buildroot} --strip-file-prefix popd %endif pip2 install -I dist/%{python2_wheelname} --root %{buildroot} --strip-file-prefix
The --strip-file-prefix option is currently downstream only modification that strips given prefix from files in wheel RECORD.[2]
Files section
You may also need to add the following entries to the files section:
%{python2_sitelib}/%{name}-%{version}.dist-info/ %{python3_sitelib}/%{name}-%{version}.dist-info/