diff --git a/.gitignore b/.gitignore index 9bc0c25..f0be2d4 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ /retrace-server-1.18.0.tar.gz /retrace-server-1.19.0.tar.gz /retrace-server-1.20.0.tar.gz +/retrace-server-1.21.0.tar.gz diff --git a/0001-retrace-server-worker-Correct-import-of-ArgumentPars.patch b/0001-retrace-server-worker-Correct-import-of-ArgumentPars.patch deleted file mode 100644 index 6953005..0000000 --- a/0001-retrace-server-worker-Correct-import-of-ArgumentPars.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 3762f8ce5b36db9748d96f8f77144a006a9f4d22 Mon Sep 17 00:00:00 2001 -From: Martin Kutlak -Date: Wed, 30 Oct 2019 16:12:44 +0100 -Subject: [PATCH] retrace-server-worker: Correct import of ArgumentParser - -The custom ArgumentParser has a `_log` attribute. - -Signed-off-by: Martin Kutlak ---- - src/retrace-server-worker | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/src/retrace-server-worker b/src/retrace-server-worker -index 97f7939..a77d8ff 100755 ---- a/src/retrace-server-worker -+++ b/src/retrace-server-worker -@@ -1,8 +1,7 @@ - #!/usr/bin/python3 - import sys - import os --from argparse import ArgumentParser -- -+from retrace.argparser import ArgumentParser - from retrace.retrace import (log_debug, - log_error, - log_warn, --- -2.24.1 - diff --git a/0002-retrace_worker-Fix-file-mode-to-write-to-file.patch b/0002-retrace_worker-Fix-file-mode-to-write-to-file.patch deleted file mode 100644 index f06b5e1..0000000 --- a/0002-retrace_worker-Fix-file-mode-to-write-to-file.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 9c37cd5cf52d2124e45e09c800170b36dd241872 Mon Sep 17 00:00:00 2001 -From: Martin Kutlak -Date: Wed, 30 Oct 2019 16:06:43 +0100 -Subject: [PATCH] retrace_worker: Fix file mode to write to file - -Introduced in 9e79d410d9b5a882fa3770f24b78f930def9ab29 - -The default file mode used to be "write" but it was changed to write raw bytes. - -Signed-off-by: Martin Kutlak ---- - src/retrace/retrace_worker.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/retrace/retrace_worker.py b/src/retrace/retrace_worker.py -index cc98138..2ac8f6e 100644 ---- a/src/retrace/retrace_worker.py -+++ b/src/retrace/retrace_worker.py -@@ -563,7 +563,7 @@ class RetraceWorker(object): - - task.set_backtrace(backtrace) - if exploitable is not None: -- task.add_results("exploitable", exploitable) -+ task.add_results("exploitable", exploitable, mode="w") - - self.hook_post_retrace() - --- -2.24.1 - diff --git a/0003-retrace_worker-Remove-distro-hack-from-mock-config.patch b/0003-retrace_worker-Remove-distro-hack-from-mock-config.patch deleted file mode 100644 index 50c5b9d..0000000 --- a/0003-retrace_worker-Remove-distro-hack-from-mock-config.patch +++ /dev/null @@ -1,85 +0,0 @@ -From aba277baf04346ea21d22adbeb97ab62d9a49c65 Mon Sep 17 00:00:00 2001 -From: Martin Kutlak -Date: Fri, 1 Nov 2019 15:04:59 +0100 -Subject: [PATCH] retrace_worker: Remove distro hack from mock config - -Introduced in 5a1e21a0f6ca8174a88f4eaf37887100e0ec311b - -As `dnf` is now available on both RHEL(7,8) and Fedora (and with the `--skip-broken` switch support), -we can remove the `distro` "hack". - -Signed-off-by: Martin Kutlak ---- - retrace-server.spec.in | 1 - - src/retrace/retrace_worker.py | 19 +++++-------------- - 2 files changed, 5 insertions(+), 15 deletions(-) - -diff --git a/retrace-server.spec.in b/retrace-server.spec.in -index 5f5bbea..3b8d033 100644 ---- a/retrace-server.spec.in -+++ b/retrace-server.spec.in -@@ -40,7 +40,6 @@ Requires: python3-webob - Requires: python3-magic - Requires: python3-requests - Requires: python3-requests-gssapi --Requires: python3-distro - Requires: python3-bugzilla - Requires: python3-six - Requires: python3-dnf -diff --git a/src/retrace/retrace_worker.py b/src/retrace/retrace_worker.py -index 2ac8f6e..82748ac 100644 ---- a/src/retrace/retrace_worker.py -+++ b/src/retrace/retrace_worker.py -@@ -9,7 +9,6 @@ import shutil - import stat - from subprocess import Popen, PIPE, STDOUT - --import distro - from .retrace import (ALLOWED_FILES, INPUT_PACKAGE_PARSER, REPO_PREFIX, REQUIRED_FILES, - STATUS, STATUS_ANALYZE, STATUS_BACKTRACE, STATUS_CLEANUP, - STATUS_FAIL, STATUS_INIT, STATUS_STATS, STATUS_SUCCESS, -@@ -473,20 +472,14 @@ class RetraceWorker(object): - # create mock config file - try: - repopath = os.path.join(CONFIG["RepoDir"], releaseid) -- linux_dist = distro.linux_distribution(full_distribution_name=False) - with open(os.path.join(task.get_savedir(), RetraceTask.MOCK_DEFAULT_CFG), "w") as mockcfg: - mockcfg.write("config_opts['root'] = '%d'\n" % task.get_taskid()) - mockcfg.write("config_opts['target_arch'] = '%s'\n" % arch) -- mockcfg.write("config_opts['chroot_setup_cmd'] = '") -- if linux_dist[0] == "fedora": -- mockcfg.write("--setopt=strict=0") -- else: -- mockcfg.write("--skip-broken") -+ mockcfg.write("config_opts['chroot_setup_cmd'] = '--skip-broken") - mockcfg.write(" install %s abrt-addon-ccpp shadow-utils %s rpm'\n" % (" ".join(packages), - self.plugin.gdb_package)) -- mockcfg.write("config_opts['releasever'] = '%s'\n" % linux_dist[1]) -- if linux_dist[0] == "fedora": -- mockcfg.write("config_opts['package_manager'] = 'dnf'\n") -+ mockcfg.write("config_opts['releasever'] = '%s'\n" % version) -+ mockcfg.write("config_opts['package_manager'] = 'dnf'\n") - mockcfg.write("config_opts['plugin_conf']['ccache_enable'] = False\n") - mockcfg.write("config_opts['plugin_conf']['yum_cache_enable'] = False\n") - mockcfg.write("config_opts['plugin_conf']['root_cache_enable'] = False\n") -@@ -725,15 +718,13 @@ class RetraceWorker(object): - - try: - cfgfile = os.path.join(cfgdir, RetraceTask.MOCK_DEFAULT_CFG) -- linux_dist = distro.linux_distribution(full_distribution_name=False) - with open(cfgfile, "w") as mockcfg: - mockcfg.write("config_opts['root'] = '%d-kernel'\n" % task.get_taskid()) - mockcfg.write("config_opts['target_arch'] = '%s'\n" % kernelver.arch) - mockcfg.write("config_opts['chroot_setup_cmd'] = 'install bash coreutils cpio " - "crash findutils rpm shadow-utils'\n") -- mockcfg.write("config_opts['releasever'] = '%s'\n" % linux_dist[1]) -- if linux_dist[0] == "fedora": -- mockcfg.write("config_opts['package_manager'] = 'dnf'\n") -+ mockcfg.write("config_opts['releasever'] = '%s'\n" % kernelver_str) -+ mockcfg.write("config_opts['package_manager'] = 'dnf'\n") - mockcfg.write("config_opts['plugin_conf']['ccache_enable'] = False\n") - mockcfg.write("config_opts['plugin_conf']['yum_cache_enable'] = False\n") - mockcfg.write("config_opts['plugin_conf']['root_cache_enable'] = False\n") --- -2.24.1 - diff --git a/0004-r-s-reposync-Replace-old-way-of-cmp-with-key.patch b/0004-r-s-reposync-Replace-old-way-of-cmp-with-key.patch deleted file mode 100644 index 5dd488a..0000000 --- a/0004-r-s-reposync-Replace-old-way-of-cmp-with-key.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 4e1a2f749b560e09a07328f013ba07bc68707df8 Mon Sep 17 00:00:00 2001 -From: Martin Kutlak -Date: Mon, 6 Jan 2020 14:00:36 +0100 -Subject: [PATCH] r-s-reposync: Replace old way of cmp with key - -See: -https://docs.python.org/3/library/functools.html#functools.cmp_to_key - -Signed-off-by: Martin Kutlak ---- - src/retrace-server-reposync | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/retrace-server-reposync b/src/retrace-server-reposync -index 457a4e1..22761cd 100755 ---- a/src/retrace-server-reposync -+++ b/src/retrace-server-reposync -@@ -11,6 +11,7 @@ import tempfile - import rpm - import dnf - -+from functools import cmp_to_key - from subprocess import Popen, PIPE, call - - from retrace.retrace import (get_canon_arch, -@@ -173,7 +174,7 @@ def clean_rawhide_repo(release): - for package in packages: - pkgcnt = len(packages[package]) - if pkgcnt > CONFIG["KeepRawhideLatest"]: -- vers = sorted(packages[package].keys(), cmp=vercmp) -+ vers = sorted(packages[package].keys(), key=cmp_to_key(vercmp)) - i = 0 - for ver in vers: - for filename in packages[package][ver]: --- -2.24.1 - diff --git a/retrace-server.spec b/retrace-server.spec index 7ab7e93..7930ebe 100644 --- a/retrace-server.spec +++ b/retrace-server.spec @@ -1,7 +1,7 @@ Summary: Application for remote coredump analysis Name: retrace-server -Version: 1.20.0 -Release: 2%{?dist} +Version: 1.21.0 +Release: 1%{?dist} License: GPLv2+ URL: https://github.com/abrt/retrace-server Source0: https://github.com/abrt/%{name}/archive/%{version}/%{name}-%{version}.tar.gz @@ -11,16 +11,8 @@ Source0: https://github.com/abrt/%{name}/archive/%{version}/%{name}-%{version}.t %global _python_bytecompile_extra 0 %endif -# Patches to be applied: -Patch0001: 0001-retrace-server-worker-Correct-import-of-ArgumentPars.patch -Patch0002: 0002-retrace_worker-Fix-file-mode-to-write-to-file.patch -Patch0003: 0003-retrace_worker-Remove-distro-hack-from-mock-config.patch -Patch0004: 0004-r-s-reposync-Replace-old-way-of-cmp-with-key.patch - BuildArch: noarch -BuildRequires: git-core - BuildRequires: intltool BuildRequires: libtool BuildRequires: texinfo @@ -42,6 +34,7 @@ Requires: lzop Requires: lsof Requires: elfutils Requires: createrepo_c +Requires: python3-createrepo_c Requires: python3-mod_wsgi Requires: python3-webob Requires: python3-magic @@ -61,6 +54,7 @@ Requires(preun): /sbin/install-info Requires(post): /sbin/install-info %endif Requires(post): /usr/bin/crontab +Recommends: podman Obsoletes: abrt-retrace-server < 2.0.3 Provides: abrt-retrace-server = 2.0.3 @@ -70,7 +64,7 @@ The retrace server provides a coredump analysis and backtrace generation service over a network using HTTP protocol. %prep -%autosetup -S git +%setup -q %build autoconf @@ -92,7 +86,25 @@ 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 @@ -106,7 +118,7 @@ rm -f %{buildroot}%{_infodir}/dir #retrace uid/gid reserved in setup, rhbz #706012 %define retrace_gid_uid 174 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 %{_datadir}/%{name} -s /sbin/nologin retrace +getent passwd retrace > /dev/null || useradd --system -g retrace -u %{retrace_gid_uid} -d %{_sharedstatedir}/retrace -s /sbin/nologin retrace exit 0 %post @@ -131,6 +143,7 @@ then echo %{retrace_crontab_entry3}; echo %{retrace_crontab_entry4}; \ echo %{retrace_crontab_entry5}; echo %{retrace_crontab_entry6};) | crontab -u retrace - 2> /dev/null fi +exit 0 %preun if [ "$1" = 0 ] @@ -141,16 +154,27 @@ then #comment entries in retrace's crontab (crontab -u retrace -l 2> /dev/null | sed "s,^\([^#].*\)$,#\1,g") | crontab -u retrace - 2> /dev/null fi +exit 0 %files -f %{name}.lang %config(noreplace) %{_sysconfdir}/httpd/conf.d/%{name}-httpd.conf -%config(noreplace) %{_sysconfdir}/%{name}.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 %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} %{_bindir}/%{name}-worker %{_bindir}/%{name}-interact %{_bindir}/%{name}-cleanup @@ -163,6 +187,8 @@ fi %{_bindir}/coredump2packages %{python3_sitelib}/retrace/ %{_datadir}/%{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* @@ -173,6 +199,36 @@ fi %license COPYING %changelog +* Fri Feb 07 2020 Michal Fabik - 1.21.0-1 +- retrace: Fix bytes has no attribute encode +- Replace call() and Popen() with run() +- Change home dir for user 'retrace' +- Fix pylint issues +- Run retrace in podman container +- Tweak man pages +- r-s-reposync-faf: Fix paths to rpms +- Update translations +- r-s-reposync: Replace old way of cmp with key +- 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 +- 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 + * Thu Jan 30 2020 Fedora Release Engineering - 1.20.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild diff --git a/sources b/sources index 2eb1921..25d3295 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (retrace-server-1.20.0.tar.gz) = 50f5d1557edda838717c046c476e7f0271d6802f17dd851c3d51585b8b3d7601df3fb90f27c1c6cbe9a6c748ef75a40edaeb4271b06b3c72b766ac41640f7f43 +SHA512 (retrace-server-1.21.0.tar.gz) = 7a1741008324ee9952aee02449561d2b23ee33ac6cf3b4176a9311faeae6815452ccc1f1137d6db907a77a12364a49d7bfd3e01d0f001ddb438b964d11851e72