Blob Blame History Raw
#retrace uid/gid reserved in setup, rhbz #706012
%define retrace_gid_uid 174
%define retrace_home %{_sharedstatedir}/retrace

Summary: Application for remote coredump analysis
Name: retrace-server
Version: 1.24.2
Release: 1%{?dist}
License: GPLv2+

%if 0%{?fedora} >= 29
# There are Python plugins in /usr/share/retrace-server/plugins
%global _python_bytecompile_extra 0
%global py_reproducible_pyc_path %{buildroot}%{python3_sitelib}
BuildRequires: /usr/bin/marshalparser

BuildArch: noarch

BuildRequires: asciidoc
# /usr/bin/df from coreutils is used to calculate free disk space.
BuildRequires: coreutils
BuildRequires: gettext
BuildRequires: gzip
BuildRequires: lsof
BuildRequires: meson
# /usr/bin/ps from procps-ng is used to monitor running workers.
BuildRequires: procps-ng
BuildRequires: python3-devel
BuildRequires: tar
BuildRequires: texinfo
BuildRequires: xmlto
BuildRequires: xz

# These packages are moreover required for the build or tests.
BuildRequires: createrepo_c
BuildRequires: podman
BuildRequires: python3-bugzilla
BuildRequires: python3-dnf
BuildRequires: python3-magic
BuildRequires: python3-pytest
BuildRequires: python3-requests
BuildRequires: python3-requests-gssapi

# /usr/bin/df from coreutils is used to calculate free disk space.
Requires: coreutils
Requires: rsync
Requires: mock >= 1.4.7
Requires: xz
Requires: gzip
Requires: bzip2
Requires: tar
Requires: p7zip
Requires: unzip
Requires: lzop
Requires: lsof
Requires: elfutils
Requires: createrepo_c
# /usr/bin/ps from procps-ng is used to monitor running workers.
Requires: procps-ng
Requires: python3-createrepo_c
Requires: python3-mod_wsgi
Requires: python3-webob
Requires: python3-magic
Requires: python3-requests
Requires: python3-requests-gssapi
Requires: python3-bugzilla
Requires: python3-dnf
Requires: python3-hawkey
Requires: mod_ssl
Requires: sqlite
Requires: crash >= 5.1.7
Requires: wget
Requires: kexec-tools
Requires: distribution-gpg-keys
%if (0%{?rhel} && 0%{?rhel} <= 7) || (0%{?fedora} && 0%{?fedora} <= 27)
Requires(preun): /sbin/install-info
Requires(post): /sbin/install-info
Requires(post): /usr/bin/crontab
Requires(post): /usr/bin/systemctl
Recommends: httpd
Recommends: logrotate
Recommends: rpm
Suggests: podman
Suggests: unar

Obsoletes: abrt-retrace-server < 2.0.3
Provides: abrt-retrace-server = 2.0.3

The retrace server provides a coredump analysis and backtrace
generation service over a network using HTTP protocol.


%meson \
    -Ddocs=enabled \



# Remove byte-compiled python files generated by automake.
# automake uses system's python for all *.py files, even
# for those which needs to be byte-compiled with different
# version (python2/python3).
# rpm can do this work and use the appropriate python version.
find %{buildroot} -name "*.py[co]" -delete

mkdir -p %{buildroot}%{_localstatedir}/cache/%{name}
mkdir -p %{buildroot}%{_localstatedir}/cache/%{name}/kernel
mkdir -p %{buildroot}%{_localstatedir}/cache/%{name}/download
mkdir -p %{buildroot}%{_localstatedir}/log/%{name}
mkdir -p %{buildroot}%{_localstatedir}/spool/%{name}
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
mkdir -p %{buildroot}%{_datadir}/%{name}
mkdir -p %{buildroot}%{_sharedstatedir}/retrace
mkdir -p %{buildroot}%{_libexecdir}/%{name}
mkdir -p %{buildroot}%{_libexecdir}/%{name}/hooks
mkdir -p %{buildroot}%{_libexecdir}/%{name}/hooks/pre_start
mkdir -p %{buildroot}%{_libexecdir}/%{name}/hooks/start
mkdir -p %{buildroot}%{_libexecdir}/%{name}/hooks/pre_prepare_debuginfo
mkdir -p %{buildroot}%{_libexecdir}/%{name}/hooks/post_prepare_debuginfo
mkdir -p %{buildroot}%{_libexecdir}/%{name}/hooks/pre_prepare_environment
mkdir -p %{buildroot}%{_libexecdir}/%{name}/hooks/post_prepare_environment
mkdir -p %{buildroot}%{_libexecdir}/%{name}/hooks/pre_retrace
mkdir -p %{buildroot}%{_libexecdir}/%{name}/hooks/post_retrace
mkdir -p %{buildroot}%{_libexecdir}/%{name}/hooks/success
mkdir -p %{buildroot}%{_libexecdir}/%{name}/hooks/fail
mkdir -p %{buildroot}%{_libexecdir}/%{name}/hooks/pre_remove_task
mkdir -p %{buildroot}%{_libexecdir}/%{name}/hooks/post_remove_task
mkdir -p %{buildroot}%{_libexecdir}/%{name}/hooks/pre_clean_task
mkdir -p %{buildroot}%{_libexecdir}/%{name}/hooks/post_clean_task

%if 0%{?fedora} >= 29
%py_byte_compile %{__python3} %{buildroot}%{_datadir}/%{name}/plugins

rm -f %{buildroot}%{_infodir}/dir

%{find_lang} %{name}

getent group retrace > /dev/null || groupadd -f -g %{retrace_gid_uid} --system retrace
getent passwd retrace > /dev/null || useradd --system -g retrace -u %{retrace_gid_uid} -d %{retrace_home} -s /sbin/nologin retrace
exit 0

%if (0%{?rhel} && 0%{?rhel} <= 7) || (0%{?fedora} && 0%{?fedora} <= 27)
/sbin/install-info %{_infodir}/%{name} %{_infodir}/dir 2> /dev/null || :
/usr/sbin/usermod -a -G mock retrace 2> /dev/null || :

# Migrate old home directory during an upgrade (i.e. $1 == 2) -- if retrace's home
# is /usr/share/retrace change it to /var/lib/retrace.
if [ "$1" = 2 -a "$(getent passwd retrace | cut -d: -f6)" = "%{_datadir}/%{name}" ]
    # Make sure to restart the Apache HTTP Server if it's enabled and
    # running during the upgrade.
    /usr/bin/systemctl is-active --quiet httpd.service ; httpd_active=$?
    [ "$httpd_active" = 0 ] && /usr/bin/systemctl stop httpd.service
    /usr/sbin/usermod --home %{retrace_home} retrace 2> /dev/null || :
    [ "$httpd_active" = 0 ] && /usr/bin/systemctl start httpd.service

if [ "$1" = 1 ]
#add disabled crontab entries to retrace's crontab
    %define retrace_crontab_entry0 "# 0 * * * * /usr/bin/retrace-server-cleanup >> /var/log/retrace-server/cleanup_error.log 2>&1"
    %define retrace_crontab_entry1 "# 0 0,12 * * * /usr/bin/retrace-server-reposync fedora 15 i386 >> /var/log/retrace-server/reposync_error.log 2>&1"
    %define retrace_crontab_entry2 "# 0 2,14 * * * /usr/bin/retrace-server-reposync fedora 15 x86_64 >> /var/log/retrace-server/reposync_error.log 2>&1"
    %define retrace_crontab_entry3 "# 0 4,16 * * * /usr/bin/retrace-server-reposync fedora 16 i386 >> /var/log/retrace-server/reposync_error.log 2>&1"
    %define retrace_crontab_entry4 "# 0 6,18 * * * /usr/bin/retrace-server-reposync fedora 16 x86_64 >> /var/log/retrace-server/reposync_error.log 2>&1"
    %define retrace_crontab_entry5 "# 0 8,20 * * * /usr/bin/retrace-server-reposync fedora rawhide i386 >> /var/log/retrace-server/reposync_error.log 2>&1"
    %define retrace_crontab_entry6 "# 0 10,22 * * * /usr/bin/retrace-server-reposync fedora rawhide x86_64 >> /var/log/retrace-server/reposync_error.log 2>&1"

    (crontab -u retrace -l 2> /dev/null; echo %{retrace_crontab_entry0}; \
     echo %{retrace_crontab_entry1}; echo %{retrace_crontab_entry2}; \
     echo %{retrace_crontab_entry3}; echo %{retrace_crontab_entry4}; \
     echo %{retrace_crontab_entry5}; echo %{retrace_crontab_entry6};) | crontab -u retrace - 2> /dev/null
exit 0

if [ "$1" = 0 ]
%if (0%{?rhel} && 0%{?rhel} <= 7) || (0%{?fedora} && 0%{?fedora} <= 27)
    /sbin/install-info --delete %{_infodir}/retrace-server %{_infodir}/dir 2> /dev/null || :
#comment entries in retrace's crontab
    (crontab -u retrace -l 2> /dev/null | sed "s,^\([^#].*\)$,#\1,g") | crontab -u retrace - 2> /dev/null
exit 0

%files -f %{name}.lang
%config(noreplace) %{_sysconfdir}/httpd/conf.d/%{name}-httpd.conf
%config(noreplace) %{_sysconfdir}/%{name}/%{name}.conf
%config(noreplace) %{_sysconfdir}/%{name}/%{name}-hooks.conf
%config(noreplace) %{_sysconfdir}/%{name}/hooks/debuginfo.conf
%config(noreplace) %{_sysconfdir}/%{name}/hooks/fail.conf
%config(noreplace) %{_sysconfdir}/%{name}/hooks/environment.conf
%config(noreplace) %{_sysconfdir}/%{name}/hooks/retrace.conf
%config(noreplace) %{_sysconfdir}/%{name}/hooks/start.conf
%config(noreplace) %{_sysconfdir}/%{name}/hooks/success.conf
%config(noreplace) %{_sysconfdir}/%{name}/hooks/task.conf
%dir %{_sysconfdir}/logrotate.d
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
%dir %attr(0755,retrace,retrace) %{_localstatedir}/cache/%{name}
%dir %attr(0755,retrace,retrace) %{_localstatedir}/cache/%{name}/kernel
%dir %attr(0755,retrace,retrace) %{_localstatedir}/cache/%{name}/download
%dir %attr(0750,retrace,retrace) %{_localstatedir}/log/%{name}
%dir %attr(0770,retrace,retrace) %{_localstatedir}/spool/%{name}
%dir %{_sysconfdir}/%{name}
%dir %attr(0775,root,retrace) %{_libexecdir}/%{name}
%dir %attr(0755,retrace,retrace) %{_sharedstatedir}/retrace/
%attr(0775,root,retrace) %{_libexecdir}/%{name}/hooks/
%doc %{_mandir}/man1/%{name}-cleanup.1*
%doc %{_mandir}/man1/%{name}-interact.1*
%doc %{_mandir}/man1/%{name}-reposync.1*
%doc %{_mandir}/man1/%{name}-worker.1*
%doc %{_mandir}/man1/%{name}-task.1*
%doc %{_infodir}/%{name}*
%license COPYING

* Tue Oct 18 2022 Packit <> - 1.24.2-1
- Release version 1.24.2-1 (Matěj Grabovský)
- stats: Fix Releases counting by using wildcard at end and add el9 (Dave Wysochanski)
- retrace-server-task: Add exception handling for SSLError (Dave Wysochanski)
- retrace_worker: Try --zero_excluded crash option to gather sys output (Dave Wysochanski)
- retrace_worker: Move --minimal option to end of crash commandline (Dave Wysochanski)
- Update translations (mgrabovsky)
- retrace: Fix Traceback if user's home directory is unavailable (Dave Wysochanski)
- Update translations (mgrabovsky)
- Update translations (mgrabovsky)
- Update translations (mgrabovsky)
- github: Upgrade codecov-action to v3 (Matěj Grabovský)
- config: Add support for RAR archives if the unar tool is installed (Dave Wysochanski)
- spec: Move podman to Suggests (Matěj Grabovský)
- manager: Make FTP file box configurable with UseFTPTasks (Dave Wysochanski)
- manager: Improve HTTP response if UseFTPTasks is set to 0 (Dave Wysochanski)
- manager: Prevent double submit of vmcore or coredump tasks (#461) (DaveWysochanskiRH)
- Update translations (#464) (abrt-bot)
- Add logic to determine if we save a stripped vmcore (audrabaker)
- github: Merge Pylint and Mypy into a single workflow (Matěj Grabovský)
- httpd.conf: Fix lang and locale to UTF-8 (Matěj Grabovský)
- archive: Adjust argument type (Matěj Grabovský)
- container: Rename docker/ to container/ (Matěj Grabovský)
- docker: Update dockerfiles (Matěj Grabovský)
- spec: Ensure bytecompilation reproducibility (Matěj Grabovský)
- retrace: Fix type errors (Matěj Grabovský)
- test_architecture: Fix expected value (Matěj Grabovský)
- Use longer variable names (Matěj Grabovský)
- spec: Add more build-time Python deps (Matěj Grabovský)
- r-s-{plugin-check,task,worker}: Use consistent quotes (Matěj Grabovský)
- test: Add architecture module tests to Meson file (Matěj Grabovský)
- More code style fixes (Matěj Grabovský)
- test: Lint with Pylint; add test for (Matěj Grabovský)
- Various code style fixes (Matěj Grabovský)
- stats: Fix code style (Matěj Grabovský)
- retrace: Move SNAPSHOT_SUFFIXES to archive module (Matěj Grabovský)
- hooks: Use generator expression for list of files (Matěj Grabovský)
- Fix Pylint call and settings (Matěj Grabovský)
- Adjust Pylint config (Matěj Grabovský)
- Refactor reusable components (Matěj Grabovský)
- Use with statements for resource allocation (Matěj Grabovský)
- retrace: Use consistent quote style and meaningful variables (Matěj Grabovský)
- retrace: Add type annotations to local vars (Matěj Grabovský)
- Use longer, meaningful variable names (Matěj Grabovský)
- retrace: Split archs-related code out into separate module (Matěj Grabovský)
- github: CD to build directory for checks (Matěj Grabovský)
- Use double quotes consistently when specifying utf-8 (Dave Wysochanski)
- retrace: Re-use ProcessCommunicateTimeout with makedumpfile (Dave Wysochanski)

* Sat Jul 23 2022 Fedora Release Engineering <> - 1.24.1-4
- Rebuilt for

* Wed Jun 15 2022 Python Maint <> - 1.24.1-3
- Rebuilt for Python 3.11

* Tue Feb 22 2022 Matěj Grabovský <> - 1.24.1-2
- Ensure bytecompilation reproducibility

* Mon Feb 07 2022 Packit Service <> - 1.24.1-1
- Release version 1.24.1-1 (Matěj Grabovský)
- retrace-server-interact: Fix traceback for non-existent gid (Dave Wysochanski)
- Revert "Bump Meson dependency to 0.59.0" (Matěj Grabovský)
- coverage: Set Git root directory (Matěj Grabovský)
- Bump Meson dependency to 0.59.0 (Matěj Grabovský)
- meson: Copy spec file to build directory (Matěj Grabovský)
- bugzilla-query: Shorten lines that exceed 79 columns per PEP-0008 (Dave Wysochanski)
- bugzilla-query: Use 'limit' and search only recently modified bugs (Dave Wysochanski)
- manager: Add existence and permissions check of custom_url to avoid failed tasks (Dave Wysochanski)
- Replace TASK_RETRACE with TASK_COREDUMP and start_retrace with start_coredump (Dave Wysochanski)
- Fix typos (Michal Fabik)
- Update translations (Matěj Grabovský)
- readme: Add Codecov badge (Matěj Grabovský)
- test: Add test cases for human_readable_size() (Matěj Grabovský)
- util: Print 1024 bytes as 1.00 kB (Matěj Grabovský)
- Calculate and upload code coverage to Codecov (Matěj Grabovský)
- retrace-server-task: Improve verbose error message when 'create' fails (Dave Wysochanski)
- retrace: Handle vmware .vmsn kernel version detection with heuristic (Dave Wysochanski)
- manager: Disallow NULL string in custom core location on manager page (Dave Wysochanski)
- man: Cleanup retrace-server-worker man page (Dave Wysochanski)
- retrace-server-task: Fix Traceback with no arguments (Dave Wysochanski)
- test: Fix for Python < 3.8 (Matěj Grabovský)
- Update dependencies (Matěj Grabovský)
- podman: Unify string quotes (Matěj Grabovský)
- test: Expand Podman backend tests (Matěj Grabovský)
- test: Remove old test, create new one (Matěj Grabovský)
- c2p: Improve Pythonic code style (Matěj Grabovský)
- retrace: Escape regex strings properly (Matěj Grabovský)
- create: Be more explicit in calculations (Matěj Grabovský)
- r-s-reposync-faf: Remove obsolete Pylint directive (Matěj Grabovský)
- podman: Pass `check` explicitly to `run()` (Matěj Grabovský)
- Add type annotations where appropriate (Matěj Grabovský)
- retrace,util: Improve code style (Matěj Grabovský)
- config: Iterate dictionary directly (Matěj Grabovský)
- config: Rename variables for conformity (Matěj Grabovský)
- plugin: Rename variables for conformity (Matěj Grabovský)
- pylintrc: Do not warn about missing docstrings (Matěj Grabovský)
- Fix bare `except` occurrences (Matěj Grabovský)
- readme: Add badge for build status (Matěj Grabovský)

* Fri Jan 21 2022 Fedora Release Engineering <> - 1.24.0-4
- Rebuilt for

* Fri Jul 23 2021 Fedora Release Engineering <> - 1.24.0-3
- Rebuilt for

* Fri Jun 04 2021 Python Maint <> - 1.24.0-2
- Rebuilt for Python 3.10

* Mon May 24 2021 Packit Service <> - 1.24.0-1
- Release version 1.24.0-1 (Matěj Grabovský)
- spec: Recommend httpd dependency (Matěj Grabovský)
- retrace: Do not clean c2p_log and Containerfile (Matěj Grabovský)
- spec: Migrate old home directory in post scriptlet (Matěj Grabovský)
- retrace_worker: Fix container name for vmcores (Matěj Grabovský)
- retrace: Rename Dockerfile to Containerfile globally (Matěj Grabovský)
- retrace_worker: Fix paths to vmcore in Podman backend (Matěj Grabovský)
- retrace_worker: Guess OS release from kernelver (Matěj Grabovský)
- retrace_worker: Update arguments to podman run (Matěj Grabovský)
- retrace_worker: Fix undefined variable error (Matěj Grabovský)
- r-s-reposync: Fix type error (Matěj Grabovský)
- config: Add typing annotations (Matěj Grabovský)
- retrace: Major refactoring of Podman backend code (Matěj Grabovský)
- r-s-reposync: Slight refactoring (Matěj Grabovský)
- r-s-reposync-faf: Add logging (Matěj Grabovský)
- retrace: Do not delete Dockerfile and c2p log (Matěj Grabovský)
- retrace: Code style tweaks (Matěj Grabovský)
- retrace_worker: Simplify path construction (Matěj Grabovský)
- retrace: Fix type error (Matěj Grabovský)
- doc: Document metrics feature (Matěj Grabovský)
- retrace: Disable metrics by default (Matěj Grabovský)
- metrics: Add an endpoint exposing task metrics (Matěj Grabovský)
- spec: Add missing dependency on coreutils (Matěj Grabovský)
- retrace: Factor out path to ps (Matěj Grabovský)
- doc: Slight style and info update (Matěj Grabovský)

* Wed Mar 10 2021 Packit Service <> - 1.23.0-1
- Release version 1.23.0-1 (Matěj Grabovský)
- fedora: Add Fedora 34 to version list (Matěj Grabovský)
- retrace: Be more careful when reading task status (Matěj Grabovský)
- retrace_worker: Add backtrace to log when a task fails with error (Pierguido Lambri)
- retrace: Fix "file not found" when the archive contains directories (Pierguido Lambri)
- r-s-cleanup: Improve regex (Matěj Grabovský)
- r-s-cleanup: Use a constant instead of signal number (Matěj Grabovský)
- retrace: Add timeout to Podman commands (Matěj Grabovský)
- retrace: Check if directory exists before iterating (Matěj Grabovský)
- r-s-cleanup: Replace loop with list comprehension (Matěj Grabovský)
- r-s-cleanup: Pretty-print elapsed process time (Matěj Grabovský)
- retrace: Work with elapsed process time in seconds (Matěj Grabovský)
- retrace: Shorten regex for matching workers (Matěj Grabovský)
- retrace: Replace loop with generator (Matěj Grabovský)
- util: Pythonic way to check for suffix (Matěj Grabovský)
- retrace: Minor code style improvements (Matěj Grabovský)
- retrace: Correct stripping of epoch number (Matěj Grabovský)
- util: Repair parsing regexes (Matěj Grabovský)
- test: Prepend to PATH in Meson script (Matěj Grabovský)
- test: Factor out paths to executables (Matěj Grabovský)
- test: Repair test script (Matěj Grabovský)
- test: Code style fixes and cleanup (Matěj Grabovský)
- test: Add Meson script for testing (Matěj Grabovský)
- spec: Update build prerequisites for tests (Matěj Grabovský)
- retrace: Factor out path to Podman executable (Matěj Grabovský)
- hooks: Warn if config directory does not exist (Matěj Grabovský)
- r-s-worker: Don't check user in testing mode (Matěj Grabovský)
- util: Improve regexes for parsing problem data (Matěj Grabovský)
- Update translations (Jenkins Automation Server)
- spec: Recommend logrotate (Michal Židek)
- Update translations (Jenkins Automation Server)

* Wed Jan 27 2021 Fedora Release Engineering <> - 1.22.4-2
- Rebuilt for

* Tue Nov 24 2020 Packit Service <> - 1.22.4-1
- Release version 1.22.4-1 (Matěj Grabovský)
- r-s-reposync-faf: Fix type errors (Matěj Grabovský)
- fedora: Remove old releases before 31 (Matěj Grabovský)
- fedora: Add Fedora 33 to version list (Matěj Grabovský)
- Update translations (Jenkins Automation Server)
- retrace: Do not allocate pseudo-TTY for container (Matěj Grabovský)
- retrace: Slight refactoring in Podman backend (Matěj Grabovský)
- retrace: Remove intermediate Podman containers in build (Matěj Grabovský)
- retrace: More precise argument type (Matěj Grabovský)
- Update translations (Jenkins Automation Server)
- ftp/manager: Add link on manager page and create backlink on ftp page (Dave Wysochanski)
- managertask: Remove unnecessary whitespace at right of notes and backtrace (Dave Wysochanski)
- manager: Rework display of finished, running, and available tasks (Dave Wysochanski)
- manager: reformat manager page to improve readability (Dave Wysochanski)

* Fri Oct 30 2020 Packit Service <> - 1.22.3-1
- new upstream release: 1.22.3

* Fri Oct 23 2020 Packit Service <> - 1.22.2-1
- new upstream release: 1.22.2

* Wed Oct 21 2020 Matěj Grabovský <> 1.22.0-1
- Add support for virtual memory files for vmcores
- Add option to restart an existing task in retrace-server-task and on task manager page
- Disallow users other than 'retrace' to call retrace-server-worker
- Improve error message in case of Kerberos authentication failure
- Revamp task manager web UI
- Revamp GPG verification of package signatures; use keys from distribution-gpg-keys
- Accommodate for multiple debug directories in Fedora 27 and later
- Fix FTP submissions on task manager page
- Fix permissions on dmesg file in task results directory
- Migrate build process to Meson; completely drop Autotools
- Add Tito configuration
- Update translations
- Drop python3-six dependency
- Add build dependencies on gzip, lsof, tar and xz
- Rewrite Dockerfile
- Migrate to calling in place of s.Popen() and
- Use pathlib.Path instead of strings and os.path methods in some places
- Add kernel-only config options 'KernelDebuggerPath' and 'RetraceEnvironment=native'
- Introduce type annotations
- Address issues reported by Pylint
- Other minor code refactoring and cleanup operations

* Wed Oct 21 2020 Matěj Grabovský <> 1.22.0-1
- Add support for virtual memory files for vmcores
- Add option to restart an existing task in retrace-server-task and on task manager page
- Disallow users other than 'retrace' to call retrace-server-worker
- Improve error message in case of Kerberos authentication failure
- Revamp task manager web UI
- Revamp GPG verification of package signatures; use keys from distribution-gpg-keys
- Accommodate for multiple debug directories in Fedora 27 and later
- Fix FTP submissions on task manager page
- Fix permissions on dmesg file in task results directory
- Update translations
- Drop python3-six dependency
- Add build dependencies on gzip, lsof, tar and xz
- Rewrite Dockerfile
- Migrate to calling in place of s.Popen() and
- Use pathlib.Path instead of strings and os.path methods in some places
- Add kernel-only config options 'KernelDebuggerPath' and 'RetraceEnvironment=native'
- Introduce type annotations
- Address issues reported by Pylint
- Other minor code refactoring and cleanup operations

* Fri Feb 07 2020 Michal Fabik <> 1.21.0-1
- README: Add translation status
- translations: Remove zanata config and script
- retrace: Fix bytes has no attribute encode
- Fix error when calling run_crash_cmdline after conversion to run()
- Fix error handling when unknown exception occurs in run_crash_cmdline
- podman: Tweak the Dockerfile for retracing
- Remove rpm2cpio part from podman retrace
- Check for RequireGPGCheck
- Simplify run calls
- Make returncode checks more readable
- Fix container and image cleanup
- Tag podman images with task id
- Replace call() and Popen() with run()
- Fix container cleanup
- Change home dir for user 'retrace'
- Use more meaningful log messages
- Replace os.devnull with subprocess.DEVNULL
- Add podman-specific deployment instructions
- Fix pylint issues
- Run hooks with podman as well
- Add UseFafPackages support in podman
- Fix indentation
- Add exit code to spec file scriptlet
- Add podman as a weak dependency
- Beautify
- Run retrace in podman container
- Create Dockerfiles
- Make mock-specific parts conditional
- Remove test for abrt-gdb-exploitable
- Add RetraceEnvironment config item
- Fix spelling
- Tweak man pages
- Update translations
- r-s-reposync-faf: Fix paths to rpms
- Update (pt) translation
- Update (nl) translation
- Update (de) translation
- Update (bg) translation
- Update (tr) translation
- Update (it) translation
- Add (zh_HK) translation
- r-s-reposync: Replace old way of cmp with key
- Change capitalization of freenode
- Fix build error after change of mock.conf to environment.conf
- hooks: Rename mock hook to environment
- hooks: Add option for per-executable timeouts
- spec: Remove upgrade script moving config to new location
- hooks:config: Load configs from users homedir
- hooks: Move default hook script dir to /usr/libexec
- hooks: Log stdout and stderr of scripts after exception
- hooks: Run hook scripts in parallel processes
- spec: Do not replace configs on reinstall
- hooks: Fix hook timeouts and other exceptions logs
- hooks: Change cwd for hooks to hooks dir
- hooks: Change of retrace hooks
- config: Move retrace-server configuration file
- retrace: Change logging format
- retrace_worker: Remove distro hack from mock config
- dockerfile_local: Install vim
- docker: Update Makefile
- docker: Use sbin/httpd instead of apachectl
- dockerfile_local: Install make
- dockerfile: Update to Fedora 31
- dockerfile: Install mod_ssl
- retrace_worker: Fix file mode to write to file
- retrace-server-worker: Correct import of ArgumentParser

* Tue Oct 29 2019 Michal Fabik <> 1.20.0-1
- Bump Fedora Release in Dockerfile
- retrace_worker: Use kernelver_str var
- retrace_worker: Remove unused variables
- retrace: Remove unused variable
- retrace: Use converted integer value
- retrace: Remove unsused variable
- pylint: Fix wrong indentations
- pylint W0702: Fix-up bare exceptions
- pylint: Fix spacing issues
- Remove Python2/Python3 compatibility code
- pylint E713: Test for membership should be ‘not in’
- retrace: Refactor asterisk imports of retrace
- Translation updates
- Add new translation languages - tr
- Add transtalations from Fedora Zanata
- Remove workdir functionality
- retrace-server-interact: Fix undefined self var
- retrace: Fix undefined vmcore variable
- Fix typos
- Fix typos and minor grammar issues
- Switch to requests-gssapi
- create: Fix strip_extra_pages() invocation
- plugins: Add el8 to versionlist
- plugins: Add plugin for CentOS
- plugins: Update fedora versionlist
- plugins: Update devtoolset version
- stats: Display whole release version
- Use sys.exit instead of exit for retrace-server commands
- Move makedumpfile logic from download_remote into start_vmcore
- Move prepare_debuginfo to KernelVMcore
- Remove call to prepare_debuginfo from retrace-server-interact
- Move get_kernel_release to KernelVMcore
- Move strip_vmcore to KernelVMcore.strip_extra_pages
- Add KernelVMcore.has_extra_pages method
- Move get_vmcore_dump_level to KernelVMcore.get_dump_level
- Handle 'flattened' vmcore format by converting with makedumpfile
- Pass 'results' directory to hook script rather than task_dir.
- Rename 'misc' methods and subdirectory to 'results'.
- delete: Fix typo in function name
- Clean up handling of mock with x86 vmcores in x86_64 environments
- Remove bt_filter from retrace-server
- Remove excess post-retrace crash commands
- Make retrace-server-cleanup more resilient to non-existent tasks
- retrace: Allow tilde in package names
- spec: Use macros instead of environment variables
- Fix module extraction from kernel-debuginfo
- Move ProcessCommunicateTimeout inside run_crash_cmdline
- Move run_crash_cmdline from RetraceWorker to RetraceTask
- Fix backtrace of bt_filter on Python3
- Remove 'utf-8' encoding for run_crash_cmd and change related functions.
- Refactor crash commands run after prepare_debuginfo into run_crash_cmdline helper
- worker: Add string formatting for provided arguments
- worker: Remove unused function
- worker: Use log_error function to log errors
- Fix runaway crash processes due to either corrupted vmcore memory or files.
- Fix backtrace when updating bugzillano from web UI due to use of basestring
- Fix message and code path when we fail to decode the release of vmcore
- spec: Fix test condition for Fedora
- spec: Fix %if conditions
- spec: Add python3-createrepo_c dependency
- retrace_worker: Ignore EEXISTS when symlinking log
- retrace: Replace execfile with exec(open())
- Drop YUM support
- Drop __future__.print_function import
- Drop __future__.division import
- Fix ftp.wsgi for Python3 due to sorted() method change, speed manager load
- Fix get_kernel_release() on Python3
- cleanup: Add check for opened crash files
- Add forgotten encoding
- reposync: Inform why creating of repository failed

* Mon Aug 27 2018 Martin Kutlak <> 1.19.0-1
- docker: Allow building local changes
- docker: Introduce docker
- spec: Require Python3 pkgs of dnf and hawkey
- retrace: Check result of get_nevra_possibilities
- r-s-reposync-faf: Convert generator to list
- spec: Add BuildRequire python3-devel
- r-s-reposync-faf: Generate repo using createrepo_c
- httpd-conf: Set WSGIApplicationGroup to %{GLOBAL}
- r-s-reposync: Use default number of workers
- dnf-comp: Replace yum.misc lib with one from dnf
- py3-comp: Distinguish string and byte values in POST
- py3-comp: Specify encoding for Popen
- py3-comp: Use parentheses for print
- py3-comp: Encode response body as a bytestring
- py3-comp: Convert regexps strings to raw strings
- Migrate retrace-server to python3
- Implement splitFilename function using dnf
- Replace yum with DNF
- Correct syntax for gdb backtrace command
- Refactoring: Too long lines, missing whitespaces
- Add has_coredump() method to RetraceTask and upate get_md5_tasks()
- Modify get_md5_tasks to skip tasks with no vmcores or invalid md5sum files
- Add 'has_vmcore' method to RetraceTask
- spec: Bytecompile r-s plugins explicitly
- spec: Remove automake byte-compiled files
- spec: Correct the file ownership
- do not require install-info on F28+
- Adjust indentation according to pylint recommendation
- py3 compatibility: Replace filter function with a list equivalent
- py3 compatibility: Adjust urllib, urllib2 and urlparse
- Fix missing sys import
- Clean up of unused imports
- py3 compatibility: Adjust imports
- py3 compatibility: Resolution of range and xrange
- py3 compatibility: Replace ConfigParser module with configparser
- py3 compatibility: Classic division
- py3 compatibility: Adjust raise statement syntax
- py3 compatibility: Replace StringIO module with io module
- py3 compatibility: Removal of tuple parameter unpacking
- Refactoring: Missing or bad whitespace
- py3 compatibility: Set literals
- py3 compatibility: Use 'sorted' built-in function
- py3 compatibility: Replacement of basestring with six.string_types
- py3 compatibility: Ensure map function to return a list
- py3 compatibility: Replacement of 'has_key' with 'in'
- Make r-s-bugzilla-query query options configurable
- Load credentials from custom file
- manager: Make the bugzillano a clickable link
- Query the remaining bugzilla statuses
- retrace: Add reset_age method
- Implement retrace-server-bzquery tool
- Implement retrace-server-bugzilla-refresh tool
- Implement bugzilla field
- py3 compatibility: Octal literals
- py3 compatibility: try-except statement
- py3 compatibility: print statement is replaced with a print() function
- For vmcores that fail crash but have a large enough kernel log, try --minimal
- Set md5sum as soon as possible.
- Add dedup_vmcore to RetraceWorker and call from retrace-server-cleanup
- Fail task if the crash sys command exits with non-zero and kernellog is small
- Fix typo in exception handling of get_kernel_release
- Set default signal handler for SIGPIPE before calling Popen on 'crash --osrelease'
- Improve vmcore kernel parsing for certain scenarios and limit file scanning
- autogen: correctly parse buildrequires from spec file
- spec: Do not:x show every single change

* Thu Feb 01 2018 Matej Marusak <> 1.18.0-1
- mark license as license
- Update Python 2 dependency declarations to new packaging standards
- defattr is not needed as this is default
- use standard python_sitelib macro
- remove old changelog entries
- we do not build for el6 any more
- remove group
- Remove duplicate RetraceWorker._fail call when start_vmcore fails
- Add md5sum and kernelver to email notifications, help text to failing notification
- Convert notify_email_success and notify_email_fail to a single method
- Create notify_email_success / notify_email_fail helpers
- Enable packages with epoch
- Update to new mock
- Set kernelver and vmlinux as soon as possible
- reposync: Cleanup is not done by default in createrepo
- Explicitly state python version in shebangs
- Fix unreadable crash subdirectory when tarball is submitted without group read permissions
- Try noarch when checking for package
- Add pylintrc
- Use dnf in mock config on Fedora
- Update mock config for new mock version
- Pylint updates
- Add commandline client
- Add aliases into FAF reposync
- Cleanup tmp FAF repository after failing
- Write coresize for vmcores
- Change error message
- Fix wrong html tag
- Set zero to non-existing type of tasks
- Fix typeo in manager.wsgi which creates a backtrace on non-ftp tasks.
- Bump version of gettext
- Change path for
- Fix problem with missing modules on kernel versions with cached vmlinux files.
- No first retrace time when no existing task
- Make the reposync tool more verbose if required

* Thu Mar 30 2017 Matej Marusak <> 1.17.0-1
- Enable creating releases with makefile
- Introduce gen-version
- Do not use as source
- Include md5sum of original archive in summary page
- Do not try to get default time when ftptask
- Fix character escape typo
- Change retrace-server httpd config
- Modify search for existing vmlinux files in cache to handle older kernel-debuginfos
- Default to hex mode for crash commands involving backtraces.
- Create directories for tests if they are not present
- Don't mention old wiki page
- Fix double call of _fail method
- Update README
- Allow any compression of man pages
- Autogen without args configures for debugging
- Run 'configure' at the end of 'autogen'
- Improve autogen to list and install dependencies
- Avoid circular dependency on kernel-debuginfo for vmlinux files already in cache
- Add plugin checking action
- Update documentation of plugin in README
- Use short form rhel when creating repository
- Fix methods arguments
- Move global variables to
- Recover from missing start/finish task files
- Change error message in cleanup script
- Add '-ascending' argument to gdb
- Use devtoolset-4-gdb when used on RHEL
- Enable creating repository from faf repository
- Add 'make check'
- Correct eu-unstrip parser if FILE is .
- Not mark packages with different architectures as duplicity
- Separate worker start_retrace method
- Add class to wrap plugins accessing
- Add class to wrap configuration file reading
- Delete python labels when no python backtrace available
- Git ignore bytecode
- Add python backtrace, source and locals into backtrace
- Move src/lib to src/retrace to make testing retrace-server easier
- Add "exploitable" into LocationMatch in the httpd.conf
- Fix invalid syntax error in sys.stderr.print()

* Thu Jun 2 2016 Jakub Filak <> - 1.16-1
- Log failed to start tasks
- Gracefully handle the worker errors
- Move the FTP query operation to an AJAX operation
- Fix duplicate email if a vmcore task fails to determine the kernel version
- Fix typo preventing email notifications from working.
- Correct eu-unstrip parser if FILE is '-'
- Allow package names with Epoch

* Fri Mar 18 2016 Jakub Filak <> - 1.15-1
- Correct paths to Fedora development releases
- Fix small problem with strip_vmcore calling prepare_debuginfo
- Avoid calling prepare_debuginfo from retrace-server-interact after kernel version detection
- Move prepare_debuginfo and strip_vmcore inside RetraceTask
- Add vmlinux file inside RetraceTask
- Fix bt_filter missing last task/PID read if the last line was not blank
- Update the release information to be dynamic based off of plugins
- Including a Red Hat Enterprise Linux plugin
- Mock logging into retrace task's dir
- Enforce uniform mode bits for almost all RetraceTask files
- Fix incorrect group permissions when writing RetraceServer files especially with interactive mode
- Fix retrace-server-worker --restart backtrace due to unwriteable retrace_log
- Correct license address
- Add VMCoreTask and UsrCoreTask to config

* Tue Feb 16 2016 Jakub Filak <> - 1.14-1
- generated for the target platform at build time
- update URL patterns for Fedora repositories
- spec: add sqlite and cron to requirements
- set "crash" inside get_crash_cmd file if the file does not exist
- fix get_use_mock typo
- use %%global for the nested python_site macro instead of %%define