mfabik / rpms / satyr

Forked from rpms/satyr 3 years ago
Clone
742a38
%{!?python2_sitearch: %global python2_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
742a38
742a38
%if 0%{?fedora} || 0%{?rhel} > 7
742a38
# Enable python3 build by default
742a38
%bcond_without python3
742a38
%else
742a38
%bcond_with python3
742a38
%endif
742a38
742a38
%if 0%{?rhel} > 7 || 0%{?fedora} > 28
742a38
# Disable python2 build by default
742a38
%bcond_with python2
742a38
%else
742a38
%bcond_without python2
742a38
%endif
742a38
742a38
%if 0%{?suse_version}
742a38
  %define python2_sitearch %{python_sitearch}
742a38
  %define python2_devel python-devel
742a38
  %define libdw_devel libdw-devel
742a38
  %define libelf_devel libelf-devel
742a38
%else
742a38
  %define python2_devel python2-devel
742a38
  %define libdw_devel elfutils-devel
742a38
  %define libelf_devel elfutils-libelf-devel
742a38
%endif
742a38
742a38
Name: satyr
742a38
Version: 0.26
742a38
Release: 2%{?dist}
742a38
Summary: Tools to create anonymous, machine-friendly problem reports
742a38
License: GPLv2+
742a38
URL: https://github.com/abrt/satyr
742a38
Source0: https://github.com/abrt/%{name}/archive/%{version}/%{name}-%{version}.tar.xz
742a38
%if %{with python2}
742a38
BuildRequires: %{python2_devel}
742a38
%endif # with python2
742a38
%if %{with python3}
742a38
BuildRequires: python3-devel
742a38
%endif # with python3
742a38
BuildRequires: %{libdw_devel}
742a38
BuildRequires: %{libelf_devel}
742a38
BuildRequires: binutils-devel
742a38
BuildRequires: rpm-devel
742a38
BuildRequires: libtool
742a38
BuildRequires: doxygen
742a38
BuildRequires: pkgconfig
742a38
BuildRequires: automake
742a38
BuildRequires: gcc-c++
742a38
BuildRequires: gdb
742a38
%if %{with python2}
742a38
BuildRequires: python2-sphinx
742a38
%endif # with python2
742a38
%if %{with python3}
742a38
BuildRequires: python3-sphinx
742a38
%endif # with python3
742a38
742a38
# git is need for '%%autosetup -S git' which automatically applies all the
742a38
# patches above. Please, be aware that the patches must be generated
742a38
# by 'git format-patch'
742a38
BuildRequires: git
742a38
742a38
Patch0001: 0001-Anonymize-paths-in-frames.patch
742a38
Patch0002: 0002-testsuite-Correct-syntax-for-gdb-backtrace-command.patch
742a38
742a38
742a38
%description
742a38
Satyr is a library that can be used to create and process microreports.
742a38
Microreports consist of structured data suitable to be analyzed in a fully
742a38
automated manner, though they do not necessarily contain sufficient information
742a38
to fix the underlying problem. The reports are designed not to contain any
742a38
potentially sensitive data to eliminate the need for review before submission.
742a38
Included is a tool that can create microreports and perform some basic
742a38
operations on them.
742a38
742a38
%package devel
742a38
Summary: Development libraries for %{name}
742a38
Requires: %{name}%{?_isa} = %{version}-%{release}
742a38
742a38
%description devel
742a38
Development libraries and headers for %{name}.
742a38
742a38
%if %{with python2}
742a38
%package -n python2-satyr
742a38
%{?python_provide:%python_provide python2-satyr}
742a38
# Remove before F30
742a38
Provides: %{name}-python = %{version}-%{release}
742a38
Provides: %{name}-python%{?_isa} = %{version}-%{release}
742a38
Obsoletes: %{name}-python < 0.24
742a38
Summary: Python bindings for %{name}
742a38
Requires: %{name}%{?_isa} = %{version}-%{release}
742a38
742a38
%description -n python2-satyr
742a38
Python bindings for %{name}.
742a38
%endif #with python2
742a38
742a38
%if %{with python3}
742a38
%package -n python3-satyr
742a38
%{?python_provide:%python_provide python3-satyr}
742a38
# Remove before F30
742a38
Provides: %{name}-python3 = %{version}-%{release}
742a38
Provides: %{name}-python3%{?_isa} = %{version}-%{release}
742a38
Obsoletes: %{name}-python3 < 0.24
742a38
Summary: Python 3 bindings for %{name}
742a38
Requires: %{name}%{?_isa} = %{version}-%{release}
742a38
742a38
%description -n python3-satyr
742a38
Python 3 bindings for %{name}.
742a38
%endif # if with python3
742a38
742a38
%prep
742a38
# http://www.rpm.org/wiki/PackagerDocs/Autosetup
742a38
# Default '__scm_apply_git' is 'git apply && git commit' but this workflow
742a38
# doesn't allow us to create a new file within a patch, so we have to use
742a38
# 'git am' (see /usr/lib/rpm/macros for more details)
742a38
%define __scm_apply_git(qp:m:) %{__git} am
742a38
%autosetup -S git
742a38
742a38
%build
742a38
%configure \
742a38
%if %{without python2}
742a38
        --without-python2 \
742a38
%endif # with python2
742a38
%if %{without python3}
742a38
        --without-python3 \
742a38
%endif # with python3
742a38
%{?_without_python2} \
742a38
        --disable-static \
742a38
        --enable-doxygen-docs
742a38
742a38
make %{?_smp_mflags}
742a38
742a38
%install
742a38
make install DESTDIR=%{buildroot}
742a38
742a38
# Remove all libtool archives (*.la) from modules directory.
742a38
find %{buildroot} -name "*.la" | xargs rm --
742a38
742a38
%check
742a38
make check|| {
742a38
    # find and print the logs of failed test
742a38
    # do not cat tests/testsuite.log because it contains a lot of bloat
742a38
    find tests/testsuite.dir -name "testsuite.log" -print -exec cat '{}' \;
742a38
    exit 1
742a38
}
742a38
742a38
%if 0%{?fedora} > 27
742a38
# ldconfig is not needed
742a38
%else
742a38
%post -p /sbin/ldconfig
742a38
%postun -p /sbin/ldconfig
742a38
%endif
742a38
742a38
%files
742a38
%doc README NEWS
742a38
%license COPYING
742a38
%{_bindir}/satyr
742a38
%{_mandir}/man1/%{name}.1*
742a38
%{_libdir}/lib*.so.*
742a38
742a38
%files devel
742a38
# The complex pattern below (instead of simlpy *) excludes Makefile{.am,.in}:
742a38
%doc apidoc/html/*.{html,png,css,js}
742a38
%{_includedir}/*
742a38
%{_libdir}/lib*.so
742a38
%{_libdir}/pkgconfig/*
742a38
742a38
%if %{with python2}
742a38
%files -n python2-satyr
742a38
%dir %{python2_sitearch}/%{name}
742a38
%{python2_sitearch}/%{name}/*
742a38
%{_mandir}/man3/satyr-python.3*
742a38
%endif # with python2
742a38
742a38
%if 0%{?with_python3}
742a38
%files -n python3-satyr
742a38
%dir %{python3_sitearch}/%{name}
742a38
%{python3_sitearch}/%{name}/*
742a38
%endif
742a38
742a38
%changelog
742a38
* Fri Jun 29 2018 Matej Habrnal <mhabrnal@redhat.com> 0.26-2
742a38
- Anonymize paths in frames
742a38
- Test fix: correct syntax for gdb backtrace command
742a38
742a38
* Tue Apr 17 2018 Matej Habrnal <mhabrnal@redhat.com> 0.26-1
742a38
- spec: fix Allow python2 to be optional at build time
742a38
- Allow python2 to be optional at build time
742a38
- normalization: actualize list of functions
742a38
- Append Python interpreter as related package
742a38
- makefile: create .tar.xz with make release
742a38
742a38
* Thu Jan 18 2018 Martin Kutlak <mkutlak@redhat.com> 0.25-1
742a38
- New upstream version
742a38
 - Normalization: actualize list of functions
742a38
 - Fix some compilation warnings
742a38
 - Allow to build python3 for rhel8
742a38
 - Makefile: add make release-* subcommands
742a38
 - Elfutils: Add missing stubs from earlier commit
742a38
742a38
* Wed Nov 1 2017 Julius Milan <jmilan@redhat.com> 0.24-1
742a38
- New upstream version
742a38
  - Allow to report unpackaged problems
742a38
  - apidoc: generate html docs using doxygen
742a38
  - Fix parsing of subset of arm kernel oopses
742a38
742a38
* Mon Mar 13 2017 Matej Habrnal <mhabrnal@redhat.com> 0.23-1
742a38
- New upstream version
742a38
  - Allow rpm to be optional at build time
742a38
  - Do not use deprecated fedorahosted.org
742a38
742a38
* Thu Dec 1 2016 Jakub Filak <jakub@thefilaks.net> 0.22-1
742a38
- New upstream version
742a38
  - Added support fof JavaScript (V8) stack traces
742a38
  - Most parts of the in-hook core unwinder callable under unprivileged user
742a38
  - GDB core unwinder limits number of unwound frames
742a38
  - Fixed a pair of compile warnings - Chris Redmon <credmonster@gmail.com>
742a38
742a38
* Wed May 18 2016 Matej Habrnal <mhabrnal@redhat.com> 0.21-1
742a38
- New upstream version
742a38
  - Introduce 'serial' field in uReport
742a38
  - normalization: actualize list of functions