Blob Blame History Raw
%if 0%{?fedora}
%global with_python3 1
%endif

Name:           httpie
Version:        0.9.3
Release:        4%{?dist}
Summary:        A Curl-like tool for humans

Group:          Applications/Internet
License:        BSD
URL:            http://httpie.org/
Source0:        http://pypi.python.org/packages/source/h/httpie/httpie-%{version}.tar.gz
BuildArch:      noarch

BuildRequires:  python2-devel

# Needed so we can build the manpage with help2man without fataling.
BuildRequires:  python-pygments
BuildRequires:  python-requests
%if 0%{?fedora}
BuildRequires:  help2man
%endif

%if 0%{?with_python3}
BuildRequires:  python3-devel

# Needed so we can build the manpage with help2man without fataling.
BuildRequires:  python3-pygments
BuildRequires:  python3-requests
%endif

%description
HTTPie is a CLI HTTP utility built out of frustration with existing tools. The
goal is to make CLI interaction with HTTP-based services as human-friendly as
possible.

HTTPie does so by providing an http command that allows for issuing arbitrary
HTTP requests using a simple and natural syntax and displaying colorized
responses.

%package -n python2-httpie
Summary:        A Curl-like tool for humans
Group:          Applications/Internet
%{?python_provide:%python_provide python2-httpie}
%if 0%{?with_python3}
# Then the python3 package below will provide "httpie"
%else
# Otherwise, the python2 package here will provide it.
Provides:       httpie%{?_isa} = %{version}-%{release}
Obsoletes:      httpie < 0.9.3-2
%endif

Requires:       python2
Requires:       python-pygments
Requires:       python-requests

%description -n python2-httpie
HTTPie is a CLI HTTP utility built out of frustration with existing tools. The
goal is to make CLI interaction with HTTP-based services as human-friendly as
possible.

HTTPie does so by providing an http command that allows for issuing arbitrary
HTTP requests using a simple and natural syntax and displaying colorized
responses.


%if 0%{?with_python3}
%package -n python3-httpie
Summary:        A Curl-like tool for humans
Group:          Applications/Internet
%{?python_provide:%python_provide python3-httpie}
Provides:       httpie%{?_isa} = %{version}-%{release}
Obsoletes:      httpie < 0.9.3-2

Requires:       python3
Requires:       python3-pygments
Requires:       python3-requests

%description -n python3-httpie
HTTPie is a CLI HTTP utility built out of frustration with existing tools. The
goal is to make CLI interaction with HTTP-based services as human-friendly as
possible.

HTTPie does so by providing an http command that allows for issuing arbitrary
HTTP requests using a simple and natural syntax and displaying colorized
responses.
%endif

%prep
%setup -q
sed -i '/#!\/usr\/bin\/env/d' %{name}/__main__.py

# Fedora currently only ships with Pygments 1.4 but httpie wants 1.5.
# Also, RHEL currently only ships with Pygments 1.1.
# However, it seems to work just fine with lower versions.
sed -i 's/Pygments>=1.5/Pygments>=1.1/' setup.py

sed -i 's/requests>=2.0.0/requests>=1.1.0/' setup.py

%if 0%{?with_python3}
rm -rf %{py3dir}
cp -a . %{py3dir}
%endif

%build
%{__python2} setup.py build

%if 0%{?with_python3}
pushd %{py3dir}
%{__python3} setup.py build
popd
%endif

%install
%if 0%{?with_python3}
pushd %{py3dir}
%{__python3} setup.py install --skip-build --root %{buildroot}
mv %{buildroot}/%{_bindir}/http %{buildroot}/%{_bindir}/python3-http
popd
%endif

%{__python2} setup.py install --root %{buildroot}
mv %{buildroot}/%{_bindir}/http %{buildroot}/%{_bindir}/python2-http

export PYTHONPATH=%{buildroot}%{python2_sitelib}

# Create a link to the default executable
%if 0%{?with_python3}
ln -s python3-http %{buildroot}/%{_bindir}/http
%else
ln -s python2-http %{buildroot}/%{_bindir}/http
%endif

# Generate man pages for everything
%if 0%{?fedora}
mkdir -p %{buildroot}/%{_mandir}/man1
help2man --no-discard-stderr %{buildroot}/%{_bindir}/http > %{buildroot}/%{_mandir}/man1/http.1
help2man --no-discard-stderr %{buildroot}/%{_bindir}/python2-http > %{buildroot}/%{_mandir}/man1/python2-http.1
%if 0%{?with_python3}
help2man --no-discard-stderr %{buildroot}/%{_bindir}/python3-http > %{buildroot}/%{_mandir}/man1/python3-http.1
%endif
%endif


%files -n python2-httpie
%doc README.rst
%license LICENSE
%{python2_sitelib}/%{name}/
%{python2_sitelib}/%{name}-%{version}*

%if 0%{?with_python3}
%{_bindir}/python2-http
%if 0%{?fedora}
%{_mandir}/man1/python2-http.1*
%endif
%else
%{_bindir}/http
%{_bindir}/python2-http
%if 0%{?fedora}
%{_mandir}/man1/http.1*
%{_mandir}/man1/python2-http.1*
%endif
%endif

%if 0%{?with_python3}
%files -n python3-httpie
%doc README.rst
%license LICENSE
%{python3_sitelib}/%{name}/
%{python3_sitelib}/%{name}-%{version}*

%{_bindir}/http
%{_bindir}/python3-http
%if 0%{?fedora}
%{_mandir}/man1/http.1*
%{_mandir}/man1/python3-http.1*
%endif
%endif

%changelog
* Fri Jun 03 2016 Ricky ELrod <relrod@redhat.com> - 0.9.3-4
- Add proper Obsoletes for rhbz#1329226.

* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Mon Jan 04 2016 Ralph Bean <rbean@redhat.com> - 0.9.3-2
- Modernize python macros and subpackaging.
- Move LICENSE to %%license macro.
- Make python3 the default on modern Fedora.

* Mon Jan 04 2016 Ralph Bean <rbean@redhat.com> - 0.9.3-1
- new version

* Tue Nov 10 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.2-3
- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5

* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Thu Mar 26 2015 Ricky Elrod <relrod@redhat.com> - 0.9.2-1
- Latest upstream release.

* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.8.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Wed May 28 2014 Kalev Lember <kalevlember@gmail.com> - 0.8.0-2
- Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4

* Fri Jan 31 2014 Ricky Elrod <codeblock@fedoraproject.org> - 0.8.0-1
- Latest upstream release.

* Fri Oct 4 2013 Ricky Elrod <codeblock@fedoraproject.org> - 0.7.2-2
- Add in patch to work without having python-requests 2.0.0.

* Sat Sep 28 2013 Ricky Elrod <codeblock@fedoraproject.org> - 0.7.2-1
- Latest upstream release.

* Thu Sep 5 2013 Ricky Elrod <codeblock@fedoraproject.org> - 0.6.0-7
- Only try building the manpage on Fedora, since RHEL's help2man doesn't
  have the --no-discard-stderr flag.

* Thu Sep 5 2013 Ricky Elrod <codeblock@fedoraproject.org> - 0.6.0-6
- Loosen the requirement on python-pygments.

* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.6.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

* Tue Jul 2 2013 Ricky Elrod <codeblock@fedoraproject.org> - 0.6.0-4
- python-requests 1.2.3 exists in rawhide now.

* Sun Jun 30 2013 Ricky Elrod <codeblock@fedoraproject.org> - 0.6.0-3
- Patch to use python-requests 1.1.0 for now.

* Sat Jun 29 2013 Ricky Elrod <codeblock@fedoraproject.org> - 0.6.0-2
- Update to latest upstream release.

* Mon Apr 29 2013 Ricky Elrod <codeblock@fedoraproject.org> - 0.5.0-2
- Fix changelog messup.

* Mon Apr 29 2013 Ricky Elrod <codeblock@fedoraproject.org> - 0.5.0-1
- Update to latest upstream release.

* Mon Apr 8 2013 Ricky Elrod <codeblock@fedoraproject.org> - 0.4.1-3
- Fix manpage generation by exporting PYTHONPATH.

* Tue Mar 26 2013 Ricky Elrod <codeblock@fedoraproject.org> - 0.4.1-2
- Include Python3 support, and fix other review blockers.

* Mon Mar 11 2013 Ricky Elrod <codeblock@fedoraproject.org> - 0.4.1-1
- Update to latest upstream release

* Thu Jul 19 2012 Ricky Elrod <codeblock@fedoraproject.org> - 0.2.5-1
- Initial build.