Blob Blame History Raw
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}

# rhel6's python-sphinx cannot build manual pages
%if 0%{?rhel} && 0%{?rhel} <= 6
  %define enable_python_manpage 0
%else
  %define enable_python_manpage 1
%endif

%if 0%{?fedora} || 0%{?rhel} > 7
  %define with_python3 1
%else
  # EL doesn't have Python 3
  %define with_python3 0
%endif

%if 0%{?suse_version}
  %define python2_devel python-devel
  %define libdw_devel libdw-devel
  %define libelf_devel libelf-devel
%else
  %define python2_devel python2-devel
  %define libdw_devel elfutils-devel
  %define libelf_devel elfutils-libelf-devel
%endif

Name: satyr
Version: 0.24
Release: 2%{?dist}
Summary: Tools to create anonymous, machine-friendly problem reports
Group: System Environment/Libraries
License: GPLv2+
URL: https://github.com/abrt/satyr
Source0: https://github.com/abrt/%{name}/archive/%{version}/%{name}-%{version}.tar.xz
BuildRequires: %{python2_devel}
%if 0%{?with_python3}
BuildRequires: python3-devel
%endif # if with_python3
BuildRequires: %{libdw_devel}
BuildRequires: %{libelf_devel}
BuildRequires: binutils-devel
BuildRequires: rpm-devel
BuildRequires: libtool
BuildRequires: doxygen
BuildRequires: pkgconfig
BuildRequires: automake
BuildRequires: gcc-c++
BuildRequires: gdb
%if %{?enable_python_manpage}
BuildRequires: python-sphinx
%endif

Patch0001: 0001-normalization-actualize-list-of-functions.patch
#Patch0002: 0002-testsuite-add-testcase-for-ARM-kernel-oops-bz.patch
Patch0003: 0003-elfutils-Add-missing-stubs-from-earlier-commit.patch
#Patch0004: 0004-makefile-add-make-release-subcommands.patch
#Patch0005: 0005-allow-to-build-python3-for-rhel8.patch

%description
Satyr is a library that can be used to create and process microreports.
Microreports consist of structured data suitable to be analyzed in a fully
automated manner, though they do not necessarily contain sufficient information
to fix the underlying problem. The reports are designed not to contain any
potentially sensitive data to eliminate the need for review before submission.
Included is a tool that can create microreports and perform some basic
operations on them.

%package devel
Summary: Development libraries for %{name}
Group: Development/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release}

%description devel
Development libraries and headers for %{name}.

%package -n python2-satyr
%{?python_provide:%python_provide python2-satyr}
# Remove before F30
Provides: %{name}-python = %{version}-%{release}
Provides: %{name}-python%{?_isa} = %{version}-%{release}
Obsoletes: %{name}-python < %{version}-%{release}
Summary: Python bindings for %{name}
Group: Development/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release}

%description -n python2-satyr
Python bindings for %{name}.

%if 0%{?with_python3}
%package -n python3-satyr
%{?python_provide:%python_provide python3-satyr}
# Remove before F30
Provides: %{name}-python3 = %{version}-%{release}
Provides: %{name}-python3%{?_isa} = %{version}-%{release}
Obsoletes: %{name}-python3 < %{version}-%{release}
Summary: Python 3 bindings for %{name}
Group: Development/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release}

%description -n python3-satyr
Python 3 bindings for %{name}.
%endif # if with_python3

%prep
%setup -q

%build
%configure \
%if ! %{?enable_python_manpage}
        --disable-python-manpage \
%endif
%if ! %{?with_python3}
        --without-python3 \
%endif
        --disable-static \
        --enable-doxygen-docs

make %{?_smp_mflags}

%install
make install DESTDIR=%{buildroot}

# Remove all libtool archives (*.la) from modules directory.
find %{buildroot} -name "*.la" | xargs rm --

%check
make check || {
    # find and print the logs of failed test
    # do not cat tests/testsuite.log because it contains a lot of bloat
    find tests/testsuite.dir -name "testsuite.log" -print -exec cat '{}' \;
    exit 1
}

%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig

%files
%doc README NEWS COPYING
%{_bindir}/satyr
%{_mandir}/man1/%{name}.1*
%{_libdir}/libsatyr.so.3*

%files devel
# The complex pattern below (instead of simlpy *) excludes Makefile{.am,.in}:
%doc apidoc/html/*.{html,png,css,js}
%{_includedir}/satyr/
%{_libdir}/libsatyr.so
%{_libdir}/pkgconfig/satyr.pc

%files -n python2-satyr
%dir %{python_sitearch}/%{name}
%{python_sitearch}/%{name}/*

%if %{?enable_python_manpage}
%{_mandir}/man3/satyr-python.3*
%endif

%if 0%{?with_python3}
%files -n python3-satyr
%dir %{python3_sitearch}/%{name}
%{python3_sitearch}/%{name}/*
%endif

%changelog
* Mon Dec 04 2017 Matej Habrnal <mhabrnal@redhat.com> 0.24-2
- actualize list of normalized functions (#1509086)
- elfutils: Add missing stubs from earlier commit

* Wed Nov 1 2017 Julius Milan <jmilan@redhat.com> 0.24-1
- New upstream version
  - Allow to report unpackaged problems
  - apidoc: generate html docs using doxygen
  - Fix parsing of subset of arm kernel oopses

* Wed Sep 6 2017 Martin Kutlak <mkutlak@redhat.com> - 0.23-9
- Python 3 binary package renamed to python3-satyr
  See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3

* Sun Aug 20 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 0.23-8
- Add Provides for the old name without %%_isa

* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 0.23-7
- Python 2 binary package renamed to python2-satyr
  See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3

* Fri Aug 11 2017 Igor Gnatenko <ignatenko@redhat.com> - 0.23-6
- Rebuilt after RPM update (№ 3)

* Thu Aug 10 2017 Igor Gnatenko <ignatenko@redhat.com> - 0.23-5
- Rebuilt for RPM soname bump

* Thu Aug 10 2017 Igor Gnatenko <ignatenko@redhat.com> - 0.23-4
- Rebuilt for RPM soname bump

* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.23-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild

* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.23-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Mon Mar 13 2017 Matej Habrnal <mhabrnal@redhat.com> 0.23-1
- New upstream version
  - Allow rpm to be optional at build time
  - Do not use deprecated fedorahosted.org

* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.22-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Mon Dec 19 2016 Miro Hrončok <mhroncok@redhat.com> - 0.22-2
- Rebuild for Python 3.6

* Wed Dec 14 2016 Jakub Filak <jakub@thefilaks.net> 0.22-1
- New upstream version
  - Added support fof JavaScript (V8) stack traces
  - Most parts of the in-hook core unwinder callable under unprivileged user
  - GDB core unwinder limits number of unwound frames
  - Fixed a pair of compile warnings - Chris Redmon <credmonster@gmail.com>

* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.21-2
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages

* Wed May 18 2016 Matej Habrnal <mhabrnal@redhat.com> - 0.20-1
- New upstream version
  - Introduce 'serial' field in uReport
  - normalization: actualize list of functions

* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.20-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

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

* Thu Sep 17 2015 Matej Habrnal <mhabrnal@redhat.com> 0.20-1
- New upstream version
  - Don't parse SO files as source_files
  - Add support for OS Variant
  - Fix the missing frame build_id and file_name
  - Bugfixes

* Sun Jul 26 2015 Kevin Fenzi <kevin@scrye.com> 0.19-2
- Rebuild for new librpm

* Tue Jul 07 2015 Martin Milata <mmilata@redhat.com> 0.19-1
- New upstream version
  - Enhancements to GDB parser: Thread ID, C++ template arguments
  - Tests and bugfixes

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

* Tue Jun 09 2015 Martin Milata <mmilata@redhat.com> - 0.18-1
- New upstream version
  - Remove function fingerprinting
  - New kernel taint flags
  - Normalization tweaks
  - More secure core stacktraces from core hook

* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 0.16-3
- Rebuilt for GCC 5 C++11 ABI change

* Sat Feb 21 2015 Till Maas <opensource@till.name> - 0.16-2
- Rebuilt for Fedora 23 Change
  https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code

* Fri Feb 20 2015 Martin Milata <mmilata@redhat.com> 0.16-1
- New upstream version
  - Add support for unwinding from core dump hook
  - Add support for Ruby uReports
  - Bugfixes

* Fri Nov 07 2014 Jakub Filak <jfilak@redhat.com> 0.15-2
- Add function name into reason text for kernel page faults

* Tue Oct 07 2014 Jakub Filak <jfilak@redhat.com> 0.15-1
- New upstream version
  - uReport enhancements (DESKTOP_SESSION, auth_data, missing values)
  - Enhance the backtrace quality algorithm to tackle MiniDebuginfo
  - Support unusual Python and Java exceptions
  - Deal with infinite recursion in backtraces
  - Bugfixes

* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.14-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild

* Wed Aug 13 2014 Martin Milata <mmilata@redhat.com> 0.14-2
- Fix unwinding of stacktraces containing VDSO frame

* Tue Jun 10 2014 Martin Milata <mmilata@redhat.com> 0.14-1
- New upstream version
  - Ported to elfutils-0.158 unwinder API
  - Frame fingerprinting disabled
  - Bugfixes

* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.13-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Thu Jan 09 2014 Rex Dieter <rdieter@fedoraproject.org> 0.13-3
- track api, abi/soname in %%files, so bumps aren't a surprise

* Tue Jan 07 2014 Martin Milata <mmilata@redhat.com> 0.13-2
- Fix build against elfutils-0.158

* Tue Jan 07 2014 Martin Milata <mmilata@redhat.com> 0.13-1
- New upstream version
  - Kerneloops parser support for ppc64 and s390
  - Kerneloops hashing

* Tue Dec 10 2013 Martin Milata <mmilata@redhat.com> 0.12-1
- New upstream version
  - JVM frames normalization
  - Add C++ symbol demangling
  - Unsigned overflow bugfixes
  - Fix malformed uReports for Java

* Sat Oct 26 2013 Jakub Filak <jfilak@redhat.com> 0.11-1
- New upstream version
  - Make all python objects hashable
  - Improve memory management in rpm module
  - Extend the list of normalized functions
  - Add command for debugging duphashes to satyr utility

* Thu Oct 03 2013 Jakub Filak <jfilak@redhat.com> 0.10-1
- New upstream version
  - Fix a segmentation fault in sr_rpm_package_uniq()
  - Respect kernel flavor when parsing package name
  - Parse backtrace without Thread header
  - Fix koops json output if there are no modules
  - Add support for multiple koops stacks

* Wed Sep 11 2013 Jakub Filak <jfilak@redhat.com> 0.9-1
- New upstream version
  - Enrich koops uReport data with koops text and kernel version.
  - Improve koops modules handling.

* Wed Aug 28 2013 Richard Marko<rmarko@redhat.com> 0.8-1
- New upstream version
  - Added support for json de/serialization of reports and stacktraces.
  - Library version number increased, as the interface changed since the last release

* Mon Aug 26 2013 Martin Milata <mmilata@redhat.com> 0.7-1
- New upstream version
  - Fix couple of crashes (#997076, #994747)

* Mon Jul 29 2013 Martin Milata <mmilata@redhat.com> 0.6-1
- New upstream version
  - Do not export internal function symbols.

* Thu Jul 25 2013 Martin Milata <mmilata@redhat.com> 0.5-2
- Remove libunwind dependency altogether, always use GDB for unwinding.

* Thu Jul 25 2013 Jakub Filak <jfilak@redhat.com> 0.5-1
- Added function that creates core stacktrace from GDB output. Several bugfixes.

* Tue Jul 09 2013 Martin Milata <mmilata@redhat.com> 0.4-2
- Fix failing tests (failure manifests only on s390x)

* Mon Jul 08 2013 Martin Milata <mmilata@redhat.com> 0.4-1
- New upstream version
  - Added features needed by ABRT
  - Support for uReport2
  - Major C and Python API changes
- Patch for python-2.6 compatibility

* Tue Apr 02 2013 Dan Horák <dan[at]danny.cz> 0.3-2
- libunwind exists only on selected arches

* Mon Mar 25 2013 Martin Milata <mmilata@redhat.com> 0.3-1
- New upstream version
  - Bug fixes
  - Build fixes for older systems
- Do not require libunwind on rhel

* Mon Mar 18 2013 Martin Milata <mmilata@redhat.com> 0.2-1
- Documentation and spec cleanup
- Build fixes (build against RPM)

* Mon Aug 30 2010 Karel Klic <kklic@redhat.com> 0.1-1
- Upstream package spec file