Blob Blame History Raw
%global pypi_name distro

# EPEL7 support: default Python is Python 2, and Python2 packages prefix
# is unversioned.
%if 0%{?rhel} && 0%{?rhel} <= 7
%global py2_namespace python
%global with_python3 0
%else
%global py2_namespace python2
%global with_python3 1
%endif


Name:           python-%{pypi_name}
Version:        1.0.0
Release:        6%{?dist}
Summary:        Linux Distribution - a Linux OS platform information API

License:        ASL 2.0
URL:            https://github.com/nir0s/distro
Source0:        https://files.pythonhosted.org/packages/source/d/%{pypi_name}/%{pypi_name}-%{version}.tar.gz
BuildArch:      noarch
 
BuildRequires:  python-setuptools
BuildRequires:  python2-devel

%if 0%{with_python3}
BuildRequires:  python3-setuptools
BuildRequires:  python3-devel
%endif

%description
The distro (for: Linux Distribution) package provides information about the
Linux distribution it runs on, such as a reliable machine-readable ID, or
version information.

It is a renewed alternative implementation for Python's original
platform.linux_distribution function, but it also provides much more
functionality. An alternative implementation became necessary because
Python 3.5 deprecated this function, and Python 3.7 is expected to remove it
altogether. Its predecessor function platform.dist was already deprecated since
Python 2.6 and is also expected to be removed in Python 3.7. Still, there are
many cases in which access to that information is needed. See Python issue 1322
for more information.

%package -n     python2-%{pypi_name}
Summary:        Linux Distribution - a Linux OS platform information API
%{?python_provide:%python_provide python2-%{pypi_name}}
 
Requires:       python-setuptools
Requires:       /usr/bin/lsb_release

%description -n python2-%{pypi_name}
The distro (for: Linux Distribution) package provides information about the
Linux distribution it runs on, such as a reliable machine-readable ID, or
version information.

It is a renewed alternative implementation for Python's original
platform.linux_distribution function, but it also provides much more
functionality. An alternative implementation became necessary because
Python 3.5 deprecated this function, and Python 3.7 is expected to remove it
altogether. Its predecessor function platform.dist was already deprecated since
Python 2.6 and is also expected to be removed in Python 3.7. Still, there are
many cases in which access to that information is needed. See Python issue 1322
for more information.

This package provides python2 module.

%if 0%{with_python3}
%package -n     python3-%{pypi_name}
Summary:        Linux Distribution - a Linux OS platform information API
%{?python_provide:%python_provide python3-%{pypi_name}}
 
Requires:       python3-setuptools
Requires:       /usr/bin/lsb_release

%description -n python3-%{pypi_name}
The distro (for: Linux Distribution) package provides information about the
Linux distribution it runs on, such as a reliable machine-readable ID, or
version information.

It is a renewed alternative implementation for Python's original
platform.linux_distribution function, but it also provides much more
functionality. An alternative implementation became necessary because
Python 3.5 deprecated this function, and Python 3.7 is expected to remove it
altogether. Its predecessor function platform.dist was already deprecated since
Python 2.6 and is also expected to be removed in Python 3.7. Still, there are
many cases in which access to that information is needed. See Python issue 1322
for more information.

This package provides python3 module.
%endif

%prep
%autosetup -n %{pypi_name}-%{version}
# Remove bundled egg-info
rm -rf %{pypi_name}.egg-info

%build
%py2_build
%if 0%{with_python3}
%py3_build
%endif

%install
# Must do the subpackages' install first because the scripts in /usr/bin are
# overwritten with every setup.py install.
%py2_install
cp %{buildroot}/%{_bindir}/distro %{buildroot}/%{_bindir}/distro-2
ln -sf %{_bindir}/distro-2 %{buildroot}/%{_bindir}/distro-%{python2_version}

%if 0%{with_python3}
%py3_install
cp %{buildroot}/%{_bindir}/distro %{buildroot}/%{_bindir}/distro-3
ln -sf %{_bindir}/distro-3 %{buildroot}/%{_bindir}/distro-%{python3_version}
%endif

%files -n python2-%{pypi_name}
%doc README.rst
# not included in tar.gz
# see https://github.com/nir0s/distro/issues/139
#%license LICENSE
%if ! 0%{with_python3}
%{_bindir}/distro
%endif
%{_bindir}/distro-2
%{_bindir}/distro-%{python2_version}

%{python2_sitelib}/%{pypi_name}.py*
%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info

%if 0%{with_python3}
%files -n python3-%{pypi_name}
%doc README.rst
#%license LICENSE
%{_bindir}/distro
%{_bindir}/distro-3
%{_bindir}/distro-%{python3_version}
%{python3_sitelib}/__pycache__/*
%{python3_sitelib}/%{pypi_name}.py
%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
%endif

%changelog
* Thu Oct 06 2016 Miroslav Suchý <msuchy@redhat.com> 1.0.0-6
- polish spec according the package review

* Wed Oct 05 2016 Miroslav Suchý 1.0.0-5
- use python3 in /usr/bin/distro on Fedoras

* Wed Oct 05 2016 Miroslav Suchý 1.0.0-4
- use python3 in /usr/bin/distro on Fedoras

* Wed Oct 05 2016 Miroslav Suchý 1.0.0-3
- python2 subpackages only on rhel
- correct description

* Wed Oct 05 2016 Miroslav Suchý 1.0.0-2
- require lsb_release

* Wed Oct 05 2016 Miroslav Suchý 1.0.0-1
- initial packaging