%if 0%{?el6} || 0%{?el7} %{!?__python2: %global __python2 /usr/bin/python2} %{!?python2_version: %global python2_version 2.6} %{!?python2_sitelib: %global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} %{!?python2_sitearch: %global python2_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} %else %global with_python3 1 %endif %if 0%{?el7} || 0%{?fedora} %{!?with_doc: %global with_doc 1} %endif %global obspy_programs dataless2resp dataless2xseed flinn-engdahl indexer mopad mseed-recordanalyzer plot print reftek-rescue runtests scan sds-report xseed2dataless %global srcname obspy %global commit 240248b8ad33b3d9979d1d8c4a3e0e950c637730 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: python-%{srcname} Version: 1.1.0 Release: 1%{?dist} Summary: A Python Toolbox for seismology/seismological observatories Group: Development/Libraries License: LGPLv3 URL: https://www.obspy.org/ Source0: https://github.com/obspy/obspy/archive/%{commit}/%{name}-%{commit}.tar.gz BuildRequires: python2-devel BuildRequires: python-setuptools BuildRequires: python2-future >= 0.12.4 BuildRequires: libmseed-devel >= 2.19.4 BuildRequires: numpy >= 1.6.1 BuildRequires: python-mock BuildRequires: scipy >= 0.9.0 BuildRequires: python-lxml %if 0%{?fedora} BuildRequires: python2-matplotlib %else BuildRequires: python-matplotlib %endif BuildRequires: python-basemap BuildRequires: python-basemap-data BuildRequires: python-basemap-data-hires BuildRequires: python-sqlalchemy BuildRequires: python-decorator BuildRequires: python-requests # Tests %if 0%{?fedora} BuildRequires: python-flake8 >= 2 BuildRequires: pyproj BuildRequires: python-pep8-naming BuildRequires: gdal-python %endif BuildRequires: python-nose # Documentation %if 0%{?with_doc} BuildRequires: help2man #%if 0%%{?with_python3} #BuildRequires: python3-sphinx #BuildRequires: python3-sphinx-theme-bootstrap #BuildRequires: python3-pybtex #%else BuildRequires: python-sphinx %if 0%{?fedora} BuildRequires: python2-sphinx-bootstrap-theme %else BuildRequires: python-sphinx-theme-bootstrap %endif BuildRequires: python-pybtex #%endif %endif # with_doc %if 0%{?with_python3} BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-future >= 0.12.4 BuildRequires: python3-numpy >= 1.6.1 BuildRequires: python3-mock BuildRequires: python3-scipy >= 0.9.0 BuildRequires: python3-lxml BuildRequires: python3-matplotlib BuildRequires: python3-basemap BuildRequires: python3-sqlalchemy BuildRequires: python3-decorator BuildRequires: python3-requests BuildRequires: python3-flake8 >= 2 BuildRequires: python3-pyproj BuildRequires: python3-pep8-naming %if 0%{?fedora} BuildRequires: gdal-python3 %endif BuildRequires: python3-nose %endif # with_python3 Requires: python2-future Requires: numpy Requires: scipy Requires: python-lxml %if 0%{?fedora} Requires: python2-matplotlib %else Requires: python-matplotlib %endif Requires: python-basemap Requires: python-sqlalchemy Requires: python-decorator Requires: python-requests # These two are for matplotlib only Requires: python-mock Requires: python-nose %if 0%{?with_python3} %global __provides_exclude_from ^(%{python_sitearch}|%{python3_sitearch})/.*\\.so$ %else %global __provides_exclude_from ^%{python_sitearch}/.*\\.so$ %endif %description ObsPy is an open-source project dedicated to provide a Python framework for processing seismological data. It provides parsers for common file formats, clients to access data centers and seismological signal processing routines which allow the manipulation of seismological time series (see Beyreuther et al. 2010, Megies et al. 2011). The goal of the ObsPy project is to facilitate rapid application development for seismology. %if 0%{?with_python3} %package -n python3-%{srcname} Summary: A Python Toolbox for seismology/seismological observatories Group: Development/Libraries Requires: python3-future Requires: python3-numpy Requires: python3-scipy Requires: python3-lxml Requires: python3-matplotlib Requires: python3-basemap Requires: python3-sqlalchemy Requires: python3-decorator Requires: python3-requests # These two are for matplotlib only Requires: python3-mock Requires: python3-nose %description -n python3-%{srcname} ObsPy is an open-source project dedicated to provide a Python framework for processing seismological data. It provides parsers for common file formats, clients to access data centers and seismological signal processing routines which allow the manipulation of seismological time series (see Beyreuther et al. 2010, Megies et al. 2011). The goal of the ObsPy project is to facilitate rapid application development for seismology. %endif # with_python3 %if 0%{?with_doc} %package doc Summary: A Python Toolbox for seismology/seismological observatories Group: Documentation %description doc Documentation for ObsPy. %endif # with_doc %prep %setup -q -n %{srcname}-%{commit} echo %{version} > obspy/RELEASE-VERSION %if 0%{?with_python3} rm -rf %{py3dir} cp -a . %{py3dir} find %{py3dir} -name '*.py' | xargs sed -i '1s|^#!python|#!%{__python3}|' %endif # with_python3 find -name '*.py' | xargs sed -i '1s|^#!python|#!%{__python2}|' %build CFLAGS="%{optflags}" %{__python2} setup.py --with-system-libmseed build %if 0%{?with_doc} %{__python2} setup.py build_man %endif # with_doc %if 0%{?with_python3} pushd %{py3dir} CFLAGS="%{optflags}" %{__python3} setup.py --with-system-libmseed build %if 0%{?with_doc} %{__python3} setup.py build_man %endif # with_doc popd %endif # with_python3 %install # Must do the python2 install first because the scripts in /usr/bin are # overwritten with every setup.py install (and we want the python3 version # to be the default). %{__python2} setup.py install --skip-build --root %{buildroot} pushd %{buildroot}%{_bindir} for prog in %{obspy_programs}; do mv obspy-${prog} obspy-${prog}-%{python2_version} ln -s obspy-${prog}-%{python2_version} obspy-${prog}-2 %if 0%{!?with_python3} ln -s obspy-${prog}-2 obspy-${prog} %endif done popd %if 0%{?with_doc} %{__python2} setup.py install_man --skip-build --root %{buildroot} pushd %{buildroot}%{_mandir}/man1 for prog in %{obspy_programs}; do mv obspy-${prog}.1 obspy-${prog}-%{python2_version}.1 ln -s obspy-${prog}-%{python2_version}.1 obspy-${prog}-2.1 %if 0%{!?with_python3} ln -s obspy-${prog}-2.1 obspy-${prog}.1 %endif done popd #%if 0%{!?with_python3} pushd misc/docs PYTHONPATH="%{buildroot}%{python2_sitearch}" make html PYTHON="%{__python2}" rm build/html/.buildinfo popd %endif #%endif # with_doc %if 0%{?with_python3} pushd %{py3dir} %{__python3} setup.py install --skip-build --root %{buildroot} %if 0%{?with_doc} %{__python3} setup.py install_man --skip-build --root %{buildroot} %endif # with_doc popd pushd %{buildroot}%{_bindir} for prog in %{obspy_programs}; do mv obspy-${prog} obspy-${prog}-%{python3_version} ln -s obspy-${prog}-%{python3_version} obspy-${prog}-3 ln -s obspy-${prog}-3 obspy-${prog} done popd %if 0%{?with_doc} pushd %{buildroot}%{_mandir}/man1 for prog in %{obspy_programs}; do mv obspy-${prog}.1 obspy-${prog}-%{python3_version}.1 ln -s obspy-${prog}-%{python3_version}.1 obspy-${prog}-3.1 ln -s obspy-${prog}-3.1 obspy-${prog}.1 done popd #pushd misc/docs #PYTHONPATH="%{buildroot}%{python3_sitearch}" make html PYTHON="%{__python3}" SPHINXBUILD=sphinx-build-%{python3_version} #rm build/html/.buildinfo #popd %endif # with_doc %endif # with_python3 %check %if 0%{?fedora} PYTHONPATH="%{buildroot}%{python2_sitearch}" PATH="%{buildroot}%{_bindir}:$PATH" \ obspy-runtests-2 -d %else PYTHONPATH="%{buildroot}%{python2_sitearch}" PATH="%{buildroot}%{_bindir}:$PATH" \ OBSPY_NO_FLAKE8=yes obspy-runtests-2 -d %endif %if 0%{?with_python3} pushd %{py3dir} PYTHONPATH="%{buildroot}%{python3_sitearch}" PATH="%{buildroot}%{_bindir}:$PATH" \ obspy-runtests-3 -d popd %endif # with_python3 %files %if 0%{?el6} %doc README.md CHANGELOG.txt CONTRIBUTING.md LICENSE.txt %else %doc README.md CHANGELOG.txt CONTRIBUTING.md %license LICENSE.txt %endif %if 0%{!?with_python3} %{_bindir}/%{srcname}-dataless2resp %{_bindir}/%{srcname}-dataless2xseed %{_bindir}/%{srcname}-flinn-engdahl %{_bindir}/%{srcname}-indexer %{_bindir}/%{srcname}-mopad %{_bindir}/%{srcname}-mseed-recordanalyzer %{_bindir}/%{srcname}-plot %{_bindir}/%{srcname}-print %{_bindir}/%{srcname}-reftek-rescue %{_bindir}/%{srcname}-runtests %{_bindir}/%{srcname}-scan %{_bindir}/%{srcname}-sds-report %{_bindir}/%{srcname}-xseed2dataless %endif # !with_python3 %{_bindir}/%{srcname}-dataless2resp-2 %{_bindir}/%{srcname}-dataless2xseed-2 %{_bindir}/%{srcname}-flinn-engdahl-2 %{_bindir}/%{srcname}-indexer-2 %{_bindir}/%{srcname}-mopad-2 %{_bindir}/%{srcname}-mseed-recordanalyzer-2 %{_bindir}/%{srcname}-plot-2 %{_bindir}/%{srcname}-print-2 %{_bindir}/%{srcname}-reftek-rescue-2 %{_bindir}/%{srcname}-runtests-2 %{_bindir}/%{srcname}-scan-2 %{_bindir}/%{srcname}-sds-report-2 %{_bindir}/%{srcname}-xseed2dataless-2 %{_bindir}/%{srcname}-dataless2resp-%{python2_version} %{_bindir}/%{srcname}-dataless2xseed-%{python2_version} %{_bindir}/%{srcname}-flinn-engdahl-%{python2_version} %{_bindir}/%{srcname}-indexer-%{python2_version} %{_bindir}/%{srcname}-mopad-%{python2_version} %{_bindir}/%{srcname}-mseed-recordanalyzer-%{python2_version} %{_bindir}/%{srcname}-plot-%{python2_version} %{_bindir}/%{srcname}-print-%{python2_version} %{_bindir}/%{srcname}-reftek-rescue-%{python2_version} %{_bindir}/%{srcname}-runtests-%{python2_version} %{_bindir}/%{srcname}-scan-%{python2_version} %{_bindir}/%{srcname}-sds-report-%{python2_version} %{_bindir}/%{srcname}-xseed2dataless-%{python2_version} %if 0%{?with_doc} %if 0%{!?with_python3} %{_mandir}/man1/%{srcname}-dataless2resp.1* %{_mandir}/man1/%{srcname}-dataless2xseed.1* %{_mandir}/man1/%{srcname}-flinn-engdahl.1* %{_mandir}/man1/%{srcname}-indexer.1* %{_mandir}/man1/%{srcname}-mopad.1* %{_mandir}/man1/%{srcname}-mseed-recordanalyzer.1* %{_mandir}/man1/%{srcname}-plot.1* %{_mandir}/man1/%{srcname}-print.1* %{_mandir}/man1/%{srcname}-reftek-rescue.1* %{_mandir}/man1/%{srcname}-runtests.1* %{_mandir}/man1/%{srcname}-scan.1* %{_mandir}/man1/%{srcname}-sds-report.1* %{_mandir}/man1/%{srcname}-xseed2dataless.1* %endif # !with_python3 %{_mandir}/man1/%{srcname}-dataless2resp-2.1* %{_mandir}/man1/%{srcname}-dataless2xseed-2.1* %{_mandir}/man1/%{srcname}-flinn-engdahl-2.1* %{_mandir}/man1/%{srcname}-indexer-2.1* %{_mandir}/man1/%{srcname}-mopad-2.1* %{_mandir}/man1/%{srcname}-mseed-recordanalyzer-2.1* %{_mandir}/man1/%{srcname}-plot-2.1* %{_mandir}/man1/%{srcname}-print-2.1* %{_mandir}/man1/%{srcname}-reftek-rescue-2.1* %{_mandir}/man1/%{srcname}-runtests-2.1* %{_mandir}/man1/%{srcname}-scan-2.1* %{_mandir}/man1/%{srcname}-sds-report-2.1* %{_mandir}/man1/%{srcname}-xseed2dataless-2.1* %{_mandir}/man1/%{srcname}-dataless2resp-%{python2_version}.1* %{_mandir}/man1/%{srcname}-dataless2xseed-%{python2_version}.1* %{_mandir}/man1/%{srcname}-flinn-engdahl-%{python2_version}.1* %{_mandir}/man1/%{srcname}-indexer-%{python2_version}.1* %{_mandir}/man1/%{srcname}-mopad-%{python2_version}.1* %{_mandir}/man1/%{srcname}-mseed-recordanalyzer-%{python2_version}.1* %{_mandir}/man1/%{srcname}-plot-%{python2_version}.1* %{_mandir}/man1/%{srcname}-print-%{python2_version}.1* %{_mandir}/man1/%{srcname}-reftek-rescue-%{python2_version}.1* %{_mandir}/man1/%{srcname}-runtests-%{python2_version}.1* %{_mandir}/man1/%{srcname}-scan-%{python2_version}.1* %{_mandir}/man1/%{srcname}-sds-report-%{python2_version}.1* %{_mandir}/man1/%{srcname}-xseed2dataless-%{python2_version}.1* %endif # with_doc %{python2_sitearch}/%{srcname}* %if 0%{?with_doc} %files doc %doc misc/docs/build/html %endif # with_doc %if 0%{?with_python3} %files -n python3-%{srcname} %doc README.md CHANGELOG.txt CONTRIBUTING.md %license LICENSE.txt %{_bindir}/%{srcname}-dataless2resp %{_bindir}/%{srcname}-dataless2xseed %{_bindir}/%{srcname}-flinn-engdahl %{_bindir}/%{srcname}-indexer %{_bindir}/%{srcname}-mopad %{_bindir}/%{srcname}-mseed-recordanalyzer %{_bindir}/%{srcname}-plot %{_bindir}/%{srcname}-print %{_bindir}/%{srcname}-reftek-rescue %{_bindir}/%{srcname}-runtests %{_bindir}/%{srcname}-scan %{_bindir}/%{srcname}-sds-report %{_bindir}/%{srcname}-xseed2dataless %{_bindir}/%{srcname}-dataless2resp-3 %{_bindir}/%{srcname}-dataless2xseed-3 %{_bindir}/%{srcname}-flinn-engdahl-3 %{_bindir}/%{srcname}-indexer-3 %{_bindir}/%{srcname}-mopad-3 %{_bindir}/%{srcname}-mseed-recordanalyzer-3 %{_bindir}/%{srcname}-plot-3 %{_bindir}/%{srcname}-print-3 %{_bindir}/%{srcname}-reftek-rescue-3 %{_bindir}/%{srcname}-runtests-3 %{_bindir}/%{srcname}-scan-3 %{_bindir}/%{srcname}-sds-report-3 %{_bindir}/%{srcname}-xseed2dataless-3 %{_bindir}/%{srcname}-dataless2resp-%{python3_version} %{_bindir}/%{srcname}-dataless2xseed-%{python3_version} %{_bindir}/%{srcname}-flinn-engdahl-%{python3_version} %{_bindir}/%{srcname}-indexer-%{python3_version} %{_bindir}/%{srcname}-mopad-%{python3_version} %{_bindir}/%{srcname}-mseed-recordanalyzer-%{python3_version} %{_bindir}/%{srcname}-plot-%{python3_version} %{_bindir}/%{srcname}-print-%{python3_version} %{_bindir}/%{srcname}-reftek-rescue-%{python3_version} %{_bindir}/%{srcname}-runtests-%{python3_version} %{_bindir}/%{srcname}-scan-%{python3_version} %{_bindir}/%{srcname}-sds-report-%{python3_version} %{_bindir}/%{srcname}-xseed2dataless-%{python3_version} %if 0%{?with_doc} %{_mandir}/man1/%{srcname}-dataless2resp.1* %{_mandir}/man1/%{srcname}-dataless2xseed.1* %{_mandir}/man1/%{srcname}-flinn-engdahl.1* %{_mandir}/man1/%{srcname}-indexer.1* %{_mandir}/man1/%{srcname}-mopad.1* %{_mandir}/man1/%{srcname}-mseed-recordanalyzer.1* %{_mandir}/man1/%{srcname}-plot.1* %{_mandir}/man1/%{srcname}-print.1* %{_mandir}/man1/%{srcname}-reftek-rescue.1* %{_mandir}/man1/%{srcname}-runtests.1* %{_mandir}/man1/%{srcname}-scan.1* %{_mandir}/man1/%{srcname}-sds-report.1* %{_mandir}/man1/%{srcname}-xseed2dataless.1* %{_mandir}/man1/%{srcname}-dataless2resp-3.1* %{_mandir}/man1/%{srcname}-dataless2xseed-3.1* %{_mandir}/man1/%{srcname}-flinn-engdahl-3.1* %{_mandir}/man1/%{srcname}-indexer-3.1* %{_mandir}/man1/%{srcname}-mopad-3.1* %{_mandir}/man1/%{srcname}-mseed-recordanalyzer-3.1* %{_mandir}/man1/%{srcname}-plot-3.1* %{_mandir}/man1/%{srcname}-print-3.1* %{_mandir}/man1/%{srcname}-reftek-rescue-3.1* %{_mandir}/man1/%{srcname}-runtests-3.1* %{_mandir}/man1/%{srcname}-scan-3.1* %{_mandir}/man1/%{srcname}-sds-report-3.1* %{_mandir}/man1/%{srcname}-xseed2dataless-3.1* %{_mandir}/man1/%{srcname}-dataless2resp-%{python3_version}.1* %{_mandir}/man1/%{srcname}-dataless2xseed-%{python3_version}.1* %{_mandir}/man1/%{srcname}-flinn-engdahl-%{python3_version}.1* %{_mandir}/man1/%{srcname}-indexer-%{python3_version}.1* %{_mandir}/man1/%{srcname}-mopad-%{python3_version}.1* %{_mandir}/man1/%{srcname}-mseed-recordanalyzer-%{python3_version}.1* %{_mandir}/man1/%{srcname}-plot-%{python3_version}.1* %{_mandir}/man1/%{srcname}-print-%{python3_version}.1* %{_mandir}/man1/%{srcname}-reftek-rescue-%{python3_version}.1* %{_mandir}/man1/%{srcname}-runtests-%{python3_version}.1* %{_mandir}/man1/%{srcname}-scan-%{python3_version}.1* %{_mandir}/man1/%{srcname}-sds-report-%{python3_version}.1* %{_mandir}/man1/%{srcname}-xseed2dataless-%{python3_version}.1* %endif # with_doc %{python3_sitearch}/%{srcname}* %endif # with_python3 %changelog * Fri Oct 27 2017 Elliott Sales de Andrade 1.1.0-1 - Update to latest release. - Stop unbundling evalresp. * Fri Jul 14 2017 Elliott Sales de Andrade 1.0.3-2 - Patch in support for Matplotlib 2. * Fri Mar 3 2017 Elliott Sales de Andrade 1.0.3-1 - New upstream release * Wed Oct 19 2016 Elliott Sales de Andrade 1.0.2-3 - Fix compatibility with newer libmseed - Patch several mseed issues * Thu Sep 22 2016 Elliott Sales de Andrade 1.0.2-2 - Fix broken entry point * Wed Aug 3 2016 Elliott Sales de Andrade 1.0.2-1 - New upstream release * Sat Mar 26 2016 Elliott Sales de Andrade 1.0.1-2 - Remove gdal-python3 BR for Fedora 22, which doesn't support it - Fix build against NumPy 1.11 * Sat Mar 26 2016 Elliott Sales de Andrade 1.0.1-1 - New upstream release * Sun Feb 28 2016 Elliott Sales de Andrade 1.0.0-3 - Update future dependency to match official Fedora/EPEL naming * Sat Feb 20 2016 Elliott Sales de Andrade 1.0.0-2 - Build documentation on Python 2 again * Sat Feb 20 2016 Elliott Sales de Andrade 1.0.0-1 - New upstream release - Make Python 3 the default binary if available - Build documentation with Python 3 if available - Add python-mock and python-nose to requirements since matplotlib falsely needs it - Stop building documentation against mlpy - Remove suds-jurko dependency * Sat May 16 2015 Elliott Sales de Andrade 0.10.2-2 - Add BR on python-pybtex - Patch to build with NumPy 1.4 * Fri May 15 2015 Elliott Sales de Andrade 0.10.2-1 - New upstream release * Fri Mar 20 2015 Elliott Sales de Andrade 0.10.1-1 - New upstream release * Thu Mar 19 2015 Elliott Sales de Andrade 0.10.0-2 - Fix error in stored version * Thu Mar 19 2015 Elliott Sales de Andrade 0.10.0-1 - Initial RPM release