# (blino) FIXME: switch back to 1 when systemd is installable %define with_systemd 0 %define lib_major 0 %define lib_name %mklibname %{name} %{lib_major} %define libreport %mklibname report %{lib_major} %define libreportgtk %mklibname report-gtk %{lib_major} %define lib_name_devel %mklibname %{name} -d %define lib_report_devel %mklibname report -d %define _disable_ld_no_undefined 1 Summary: Automatic bug detection and reporting tool Name: abrt Version: 2.0.2 Release: %mkrel 4 License: GPLv2+ Group: System/Base URL: https://fedorahosted.org/abrt/ Source: https://fedorahosted.org/released/abrt/%{name}-%{version}.tar.gz Source1: abrt.init Source2: 00abrt.sh Source3: 00abrt.csh Source4: abrt-debuginfo-install Source5: abrt-ccpp.init Source6: abrt-oops.init Patch0: abrt-1.1.14-format_security.patch # (fc) disable package signature check Patch2: abrt_disable_gpgcheck.diff # (blino) use Mageia bugzilla (adapted from Mandriva patch from fcrozat) # (blino) parse /etc/release (adapted from Mandriva patch from fcrozat) # FIXME: check the query is still correct when bugzilla is deployed # FIXME: check the parsing is ok Patch3: abrt-mageiabugzilla.patch # (pt) generate stacktrace twice to get missing -debug packages #Patch5: abrt-1.1.14-debug.patch # (fc) disable nspluginwrapper-i386 (Mdv bug #59237) Patch7: abrt-2.0.2-nspluginwrapper.patch # (fc) fix for non UTF-8 locale Patch8: abrt-2.0.2-nonutf8-locale.patch # (eugeni): disable kernel oops cron plugin by default (mdv #61986) #Patch12: abrt-1.1.14-disable_oops_scanner.patch # Fedora patches Patch100: remove_libreport_python.patch Patch101: blacklist.patch Patch102: allow_bz_for_koops.patch Patch103: retrace_addr.patch Patch104: retrace_client_flush.patch #Patch105: prgname.patch BuildRequires: dbus-devel libdbus-glib-devel BuildRequires: gtk2-devel BuildRequires: curl-devel BuildRequires: rpm-devel BuildRequires: sqlite-devel > 3.0 BuildRequires: desktop-file-utils #BuildRequires: nss-devel BuildRequires: libnotify-devel BuildRequires: xmlrpc-c-devel BuildRequires: xmlrpc-c BuildRequires: file-devel BuildRequires: python-devel BuildRequires: gettext BuildRequires: polkit-1-devel BuildRequires: libzip-devel, libtar-devel, bzip2-devel, zlib-devel BuildRequires: intltool BuildRequires: gnome-common BuildRequires: bison BuildRequires: asciidoc BuildRequires: xmlto BuildRequires: libgnome-keyring-devel %if %{?with_systemd} BuildRequires: systemd-units %endif Requires: %{lib_name} >= %{version}-%{release} Requires(pre): rpm-helper Requires(post): rpm-helper Requires(preun): rpm-helper Requires(postun): rpm-helper Obsoletes: abrt-plugin-catcut < 1.1.13 Obsoletes: abrt-plugin-sqlite3 < 1.1.18 # required for transition from 1.1.13, can be removed after some time Obsoletes: abrt-plugin-runapp < 1.1.18 Obsoletes: abrt-plugin-filetransfer < 1.1.18 Obsoletes: abrt-plugin-sosreport < 1.1.18 %description %{name} is a tool to help users to detect defects in applications and to create a bug report with all informations needed by maintainer to fix it. It uses plugin system to extend its functionality. %pre %_pre_useradd %{name} %{_sysconfdir}/%{name} /bin/nologin %_pre_groupadd %{name} %{name} %post %_post_service %{name}d %if %{?with_systemd} # Enable (but don't start) the units by default /bin/systemctl enable %{name}d.service >/dev/null 2>&1 || : %endif %posttrans service abrtd condrestart >/dev/null 2>&1 || : %preun %_preun_service %{name}d %if %{?with_systemd} if [ "$1" -eq "0" ] ; then /bin/systemctl stop %{name}d.service >/dev/null 2>&1 || : /bin/systemctl disable %{name}d.service >/dev/null 2>&1 || : fi %endif %postun %_postun_userdel %{name} %_postun_groupdel %{name} %{name} %if %{?with_systemd} if [ $1 -ge 1 ] ; then # On upgrade, reload init system configuration if we changed unit files /bin/systemctl daemon-reload >/dev/null 2>&1 || : fi %endif %files -f %{name}.lang %defattr(-,root,root,-) %doc README COPYING #systemd %if %{?with_systemd} /lib/systemd/system/%{name}d.service %endif %{_sbindir}/%{name}d %{_sbindir}/%{name}-server %{_bindir}/%{name}-debuginfo-install %{_bindir}/%{name}-action-analyze-core.py %{_bindir}/%{name}-handle-upload %{_bindir}/%{name}-handle-crashdump %{_bindir}/%{name}-action-save-package-data %{_bindir}/%{name}-retrace-client %{_bindir}/bug-reporting-wizard %config(noreplace) %{_sysconfdir}/%{name}/%{name}.conf %config(noreplace) %{_sysconfdir}/%{name}/gpg_keys %config(noreplace) %{_sysconfdir}/dbus-1/system.d/dbus-%{name}.conf %config(noreplace) %{_sysconfdir}/%{name}/%{name}_event.conf %ghost %attr(0666, -, -) %{_localstatedir}/run/%{name}/abrt.socket %ghost %attr(0644, -, -) %{_localstatedir}/run/%{name}d.pid %{_initrddir}/%{name}d #%dir %attr(0755, %{name}, %{name}) %{_localstatedir}/cache/%{name} %dir /var/run/%{name} %dir %{_sysconfdir}/%{name} %dir %{_sysconfdir}/%{name}/plugins %dir %{_sysconfdir}/%{name}/events.d %dir %{_sysconfdir}/%{name}/events %{_mandir}/man8/%{name}d.8.* %{_mandir}/man5/%{name}.conf.5.* %{_mandir}/man5/%{name}_event.conf.5.* %{_mandir}/man7/%{name}-plugins.7.* %{_datadir}/dbus-1/system-services/com.redhat.%{name}.service #-------------------------------------------------------------------- %package -n %{lib_name} Summary: Libraries for %{name} Group: System/Libraries %description -n %{lib_name} Libraries for %{name}. %files -n %{lib_name} %defattr(-,root,root,-) %{_libdir}/libabrt*.so.* %{_libdir}/libbtparser.so.* #-------------------------------------------------------------------- %package -n %{lib_name_devel} Summary: Development libraries for %{name} Group: Development/C Requires: %{lib_name} = %{version}-%{release} Requires: abrt = %{version}-%{release} Obsoletes: %{_lib}abrt0-devel %description -n %{lib_name_devel} Development libraries and headers for %{name}. %files -n %{lib_name_devel} %defattr(-,root,root,-) %{_includedir}/abrt/* %{_includedir}/btparser/* %{_libdir}/libabrt*.so %{_libdir}/libbtparser.so #FIXME: this should go to libreportgtk-devel package %{_libdir}/libreportgtk.so %{_libdir}/pkgconfig/%{name}.pc %{_libdir}/pkgconfig/btparser.pc #-------------------------------------------------------------------- %package gui Summary: %{name}'s gui Group: Graphical desktop/Other Requires: %{name} = %{version}-%{release} Requires: dbus-python, pygtk2.0, pygtk2.0-libglade Requires: python-gobject Requires: gnome-python-desktop %description gui GTK+ wizard for convenient bug reporting. %files gui %defattr(-,root,root,-) %{_bindir}/%{name}-gui %{_datadir}/%{name} %{_datadir}/applications/%{name}.desktop %{_datadir}/icons/hicolor/*/*/*.png %{_bindir}/%{name}-applet %{_sysconfdir}/xdg/autostart/%{name}-applet.desktop #-------------------------------------------------------------------- %package addon-ccpp Summary: %{name}'s C/C++ addon Group: System/Libraries Requires: elfutils Requires: %{name} = %{version}-%{release} %description addon-ccpp This package contains hook for C/C++ crashed programs and %{name}'s C/C++ analyzer plugin. %post addon-ccpp chown -R abrt:abrt %{_localstatedir}/cache/abrt-di #if [ $1 -eq 1 ]; then /sbin/chkconfig --add abrt-ccpp #fi %if %{?with_systemd} if [ "$1" -eq "0" ] ; then /bin/systemctl stop abrt-ccpp.service >/dev/null 2>&1 || : /bin/systemctl disable abrt-ccpp.service >/dev/null 2>&1 || : fi %endif %posttrans addon-ccpp service abrt-ccpp condrestart >/dev/null 2>&1 || : %preun addon-ccpp if [ "$1" -eq "0" ] ; then service abrt-ccpp stop >/dev/null 2>&1 /sbin/chkconfig --del abrt-ccpp fi #systemd (not tested): %if %{?with_systemd} if [ "$1" -eq "0" ] ; then /bin/systemctl stop abrt-ccpp.service >/dev/null 2>&1 || : /bin/systemctl disable abrt-ccpp.service >/dev/null 2>&1 || : fi %endif %files addon-ccpp %defattr(-,root,root,-) %config(noreplace) %{_sysconfdir}/%{name}/plugins/CCpp.conf %dir %attr(0775, abrt, abrt) %{_localstatedir}/cache/abrt-di %{_initrddir}/abrt-ccpp %{_libdir}/abrt-hook-ccpp %{_sysconfdir}/profile.d/00abrt.* %{_bindir}/abrt-action-analyze-c %{_bindir}/abrt-action-trim-files %attr(2755, abrt, abrt) %{_bindir}/abrt-action-install-debuginfo %{_bindir}/abrt-action-install-debuginfo.py* %{_bindir}/abrt-action-generate-backtrace %{_bindir}/abrt-action-analyze-backtrace %{_bindir}/abrt-action-list-dsos.py* %{_sysconfdir}/%{name}/events.d/ccpp_events.conf %{_sysconfdir}/%{name}/events/analyze_LocalGDB.xml %{_sysconfdir}/%{name}/events/reanalyze_LocalGDB.xml %{_sysconfdir}/%{name}/events/analyze_RetraceServer.xml %{_sysconfdir}/%{name}/events/reanalyze_RetraceServer.xml %{_mandir}/man*/abrt-action-trim-files.* %{_mandir}/man*/abrt-action-generate-backtrace.* %{_mandir}/man*/abrt-action-analyze-backtrace.* #-------------------------------------------------------------------- %package addon-kerneloops Summary: %{name}'s kerneloops addon Group: System/Libraries Requires: curl Requires: %{name} = %{version}-%{release} #Obsoletes: kerneloops %description addon-kerneloops This package contains plugin for collecting kernel crash information and reporter plugin which sends this information to specified server, usually to kerneloops.org. %post addon-kerneloops if [ $1 -eq 1 ]; then /sbin/chkconfig --add abrt-oops fi %posttrans addon-kerneloops service abrt-oops condrestart >/dev/null 2>&1 || : %preun addon-kerneloops if [ "$1" -eq "0" ] ; then service abrt-oops stop >/dev/null 2>&1 /sbin/chkconfig --del abrt-oops fi #systemd (not tested): %if %{?with_systemd} if [ "$1" -eq "0" ] ; then /bin/systemctl stop abrt-oops.service >/dev/null 2>&1 || : /bin/systemctl disable abrt-oops.service >/dev/null 2>&1 || : fi %endif %files addon-kerneloops %defattr(-,root,root,-) %config(noreplace) %{_sysconfdir}/%{name}/plugins/Kerneloops.conf %config(noreplace) %{_sysconfdir}/%{name}/events.d/koops_events.conf %{_sysconfdir}/%{name}/events/report_Kerneloops.xml %{_initrddir}/abrt-oops %{_mandir}/man7/abrt-KerneloopsReporter.7.* %{_bindir}/abrt-dump-oops %{_bindir}/abrt-action-analyze-oops %{_bindir}/abrt-action-kerneloops #-------------------------------------------------------------------- %package plugin-logger Summary: %{name}'s logger reporter plugin Group: System/Libraries Requires: %{name} = %{version}-%{release} %description plugin-logger The simple reporter plugin which writes a report to a specified file. %files plugin-logger %defattr(-,root,root,-) %{_sysconfdir}/%{name}/events/report_Logger.conf %{_bindir}/abrt-action-print %{_mandir}/man7/%{name}-Logger.7.* %{_mandir}/man*/%{name}-action-print.* #-------------------------------------------------------------------- %package plugin-mailx Summary: %{name}'s mailx reporter plugin Group: System/Libraries Requires: %{name} = %{version}-%{release} Requires: mailx %description plugin-mailx The simple reporter plugin which sends a report via mailx to a specified email address. %files plugin-mailx %defattr(-,root,root,-) %{_sysconfdir}/%{name}/events/report_Mailx.xml %{_sysconfdir}/%{name}/events.d/mailx_events.conf %{_bindir}/abrt-action-mailx %{_mandir}/man7/%{name}-Mailx.7.* %{_mandir}/man*/%{name}-action-mailx.* #-------------------------------------------------------------------- %package plugin-bugzilla Summary: %{name}'s bugzilla plugin Group: System/Libraries Requires: %{name} = %{version}-%{release} %description plugin-bugzilla Plugin to report bugs into the bugzilla. %files plugin-bugzilla %defattr(-,root,root,-) %config(noreplace) %{_sysconfdir}/%{name}/plugins/Bugzilla.conf %{_sysconfdir}/%{name}/events/report_Bugzilla.xml %config(noreplace) %{_sysconfdir}/%{name}/events/report_Bugzilla.conf # FIXME: remove with the old gui %{_mandir}/man7/abrt-Bugzilla.7.* %{_bindir}/abrt-action-bugzilla #-------------------------------------------------------------------- %package plugin-reportuploader Summary: %{name}'s ticketuploader plugin Group: System/Libraries Requires: %{name} = %{version}-%{release} Obsoletes: plugin-ticketuploader < 1.1.13 Provides: plugin-ticketuploader = %{version}-%{release} %description plugin-reportuploader Plugin to report bugs into anonymous FTP site associated with ticketing system. %files plugin-reportuploader %defattr(-,root,root,-) %config(noreplace) %{_sysconfdir}/%{name}/plugins/Upload.conf %{_mandir}/man7/abrt-Upload.7.* %{_bindir}/abrt-action-upload #-------------------------------------------------------------------- %package addon-python Summary: %{name}'s addon for catching and analyzing Python exceptions Group: System/Libraries Requires: %{name} = %{version}-%{release} %description addon-python This package contains python hook and python analyzer plugin for handling uncaught exception in python programs. %files addon-python %defattr(-,root,root,-) %config(noreplace) %{_sysconfdir}/%{name}/plugins/Python.conf %{_bindir}/abrt-action-analyze-python %{py_puresitedir}/abrt*.py* %{py_puresitedir}/*.pth #-------------------------------------------------------------------- %package cli Summary: %{name}'s command line interface Group: Graphical desktop/Other Requires: %{name} = %{version}-%{release} Requires: %{name}-addon-kerneloops Requires: %{name}-addon-ccpp, %{name}-addon-python Requires: %{name}-plugin-bugzilla, %{name}-plugin-logger %description cli This package contains simple command line client for controlling abrt daemon over the sockets. %files cli %defattr(-,root,root,-) %{_bindir}/abrt-cli %{_mandir}/man1/abrt-cli.1.* %{_sysconfdir}/bash_completion.d/abrt-cli.bash #-------------------------------------------------------------------- %package desktop Summary: Virtual package to install all necessary packages for usage from desktop environment Group: Graphical desktop/Other # This package gets installed when anything requests bug-buddy - # happens when users upgrade Fn to Fn+1; # or if user just wants "typical desktop installation". # Installing abrt-desktop should result in the abrt which works without # any tweaking in abrt.conf (IOW: all plugins mentioned there must be installed) Requires: %{name} = %{version}-%{release} Requires: %{name}-addon-kerneloops Requires: %{name}-addon-ccpp, %{name}-addon-python # Default config of addon-ccpp requires gdb Requires: gdb >= 7.0-3 Requires: %{name}-gui Requires: %{name}-plugin-logger, %{name}-plugin-bugzilla #Obsoletes: bug-buddy #Provides: bug-buddy %description desktop Virtual package to make easy default installation on desktop environments. %files desktop %defattr(-,root,root,-) #-------------------------------------------------------------------- %package -n %libreport Summary: Libraries for reporting crashes to different targets Group: System Environment/Libraries %description -n %libreport Libraries providing API for reporting different problems in applications to different bug targets like bugzilla, ftp, trac, etc... %files -n %libreport %defattr(-,root,root,-) %{_libdir}/libreport.so.%{lib_major}* #-------------------------------------------------------------------- %package -n %lib_report_devel Summary: Development libraries and headers for libreport Group: Development/Libraries %description -n %lib_report_devel Development libraries and headers for libreport. %files -n %lib_report_devel %defattr(-,root,root,-) %{_includedir}/report/* %{_libdir}/libreport.so #-------------------------------------------------------------------- # #%package -n libreport-python #%Summary: Python bindings for report-libs. #%Group: System/Libraries # #%description -n libreport-python #Python bindings for report-libs. # #%files -n libreport-python #%defattr(-,root,root,-) #%{python_sitearch}/report/* # #-------------------------------------------------------------------- %package -n %libreportgtk Summary: GTK frontend for libreport Group: System/Libraries %description -n %libreportgtk Applications for reporting bugs using libreport backend. %files -n %libreportgtk %defattr(-,root,root,-) %{_libdir}/libreportgtk.so.%{lib_major}* #-------------------------------------------------------------------- %package retrace-server Summary: %{name}'s retrace server using HTTP protocol Group: Graphical desktop/Other Requires: abrt-addon-ccpp Requires: gdb >= 7.0-3 Requires: apache-mod_wsgi, mod_ssl, python-webob Requires: mock, xz, elfutils, createrepo Requires(preun): /sbin/install-info Requires(post): /sbin/install-info %post retrace-server /sbin/install-info %{_infodir}/abrt-retrace-server %{_infodir}/dir 2> /dev/null || : /usr/sbin/usermod -G mock apache 2> /dev/null || : %preun retrace-server if [ "$1" = 0 ]; then /sbin/install-info --delete %{_infodir}/abrt-retrace-server %{_infodir}/dir 2> /dev/null || : fi %description retrace-server The retrace server provides a coredump analysis and backtrace generation service over a network using HTTP protocol. %files retrace-server %defattr(-,root,root,-) %config(noreplace) %{_sysconfdir}/%{name}/retrace.conf %config(noreplace) %{_sysconfdir}/httpd/conf.d/retrace_httpd.conf %config(noreplace) %{_sysconfdir}/yum.repos.d/retrace.repo %dir %attr(0775, apache, abrt) %{_localstatedir}/spool/abrt-retrace %dir %attr(0755, abrt, abrt) %{_localstatedir}/cache/abrt-retrace %dir %attr(0755, abrt, abrt) %{_localstatedir}/log/abrt-retrace %caps(cap_setuid=ep) %{_bindir}/abrt-retrace-worker %{_bindir}/abrt-retrace-cleanup %{_bindir}/abrt-retrace-reposync %{_bindir}/coredump2packages %{py_puresitedir}/retrace.py* %{_datadir}/abrt-retrace/*.py* %{_datadir}/abrt-retrace/*.wsgi %{_datadir}/abrt-retrace/plugins/*.py* %{_infodir}/abrt-retrace-server* #-------------------------------------------------------------------- %prep %setup -q %apply_patches %build NOCONFIGURE=yes gnome-autogen.sh %configure2_5x \ %if !%{with_systemd} --without-systemdsystemunitdir \ %endif --disable-rpath %make %install rm -rf %{buildroot} %makeinstall_std %find_lang %{name} # remove all .la and .a files find %{buildroot} -name '*.la' -or -name '*.a' | xargs rm -f mkdir -p %{buildroot}/%{_initrddir} install -m 755 %SOURCE1 %{buildroot}/%{_initrddir}/%{name}d install -m 755 %SOURCE5 %{buildroot}/%{_initrddir}/%{name}-ccpp install -m 755 %SOURCE6 %{buildroot}/%{_initrddir}/%{name}-oops mkdir -p %{buildroot}/var/cache/%{name}-di mkdir -p %{buildroot}/var/run/%{name} mkdir -p %{buildroot}/var/spool/%{name} mkdir -p %{buildroot}/var/spool/%{name}-retrace mkdir -p %{buildroot}/var/cache/%{name}-retrace mkdir -p %{buildroot}/var/log/%{name}-retrace mkdir -p %{buildroot}/var/spool/%{name}-upload sed -i 's!@libexec@!%_libdir!' %{buildroot}/%{_initrddir}/%{name}-ccpp # remove fedora gpg key rm -f %{buildroot}%{_sysconfdir}/abrt/gpg_keys touch %{buildroot}%{_sysconfdir}/abrt/gpg_keys # install ulimit disabler mkdir -p %{buildroot}%{_sysconfdir}/profile.d/ install -m755 %SOURCE2 %SOURCE3 %{buildroot}%{_sysconfdir}/profile.d/ desktop-file-install \ --dir %{buildroot}%{_sysconfdir}/xdg/autostart \ src/applet/%{name}-applet.desktop # replace with our own version cat %{SOURCE4} > %{buildroot}/usr/bin/%{name}-debuginfo-install #remove RH specific plugins rm -f %{buildroot}%{_libdir}/%{name}/{RHTSupport.glade,libRHTSupport.so} rm -f %{buildroot}%{_sysconfdir}/%{name}/plugins/RHTSupport.conf rm -f %{buildroot}%{_sysconfdir}/%{name}/events.d/rhtsupport_events.conf rm -f %{buildroot}%{_sysconfdir}/%{name}/events/report_RHTSupport.xml rm -f %{buildroot}%{_bindir}/%{name}-action-rhtsupport # After everything is installed, remove info dir rm -f %{buildroot}%{_infodir}/dir