forked from abrt/retrace-server
-
Notifications
You must be signed in to change notification settings - Fork 0
/
retrace-server.spec.in
345 lines (319 loc) · 13.9 KB
/
retrace-server.spec.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
Summary: Application for remote coredump analysis
Name: retrace-server
Version: @PACKAGE_VERSION@
Release: 1%{?dist}
License: GPLv2+
URL: https://github.com/abrt/retrace-server
Source0: https://github.com/abrt/%{name}/archive/%{version}/%{name}-%{version}.tar.gz
%if 0%{fedora} >= 29
# There are Python plugins in /usr/share/retrace-server/plugins
%global _python_bytecompile_extra 0
%endif
BuildArch: noarch
BuildRequires: intltool
BuildRequires: libtool
BuildRequires: texinfo
BuildRequires: asciidoc
BuildRequires: xmlto
BuildRequires: python3-six
BuildRequires: python3-devel
Requires: rsync
Requires: mock >= 1.4.7
Requires: xz
Requires: gzip
Requires: bzip2
Requires: tar
Requires: p7zip
Requires: unzip
Requires: lzop
Requires: elfutils
Requires: createrepo_c
Requires: python3-mod_wsgi
Requires: python3-webob
Requires: python3-magic
Requires: python3-requests
Requires: python3-requests-kerberos
Requires: python3-distro
Requires: python3-bugzilla
Requires: python3-six
Requires: python3-dnf
Requires: python3-hawkey
Requires: mod_ssl
Requires: sqlite
Requires: crash >= 5.1.7
Requires: wget
Requires: kexec-tools
%if (0%{?rhel} && 0%{?rhel} <= 7) || (0%{?fedora} && 0%{?fedora} <= 27)
Requires(preun): /sbin/install-info
Requires(post): /sbin/install-info
%endif
Requires(post): /usr/bin/crontab
Obsoletes: abrt-retrace-server < 2.0.3
Provides: abrt-retrace-server = 2.0.3
%description
The retrace server provides a coredump analysis and backtrace
generation service over a network using HTTP protocol.
%prep
%setup -q
%build
autoconf
%configure
make %{?_smp_mflags}
%install
make install DESTDIR=${RPM_BUILD_ROOT} mandir=%{_mandir}
# 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 $RPM_BUILD_ROOT -name "*.py[co]" -delete
mkdir -p ${RPM_BUILD_ROOT}/%{_localstatedir}/cache/%{name}
mkdir -p ${RPM_BUILD_ROOT}/%{_localstatedir}/cache/%{name}/kernel
mkdir -p ${RPM_BUILD_ROOT}/%{_localstatedir}/cache/%{name}/download
mkdir -p ${RPM_BUILD_ROOT}/%{_localstatedir}/log/%{name}
mkdir -p ${RPM_BUILD_ROOT}/%{_localstatedir}/spool/%{name}
mkdir -p ${RPM_BUILD_ROOT}/%{_datadir}/%{name}
%if 0%{fedora} >= 29
%py_byte_compile %{__python3} ${RPM_BUILD_ROOT}%{_datadir}/%{name}/plugins
%endif
rm -f ${RPM_BUILD_ROOT}%{_infodir}/dir
%{find_lang} %{name}
%pre
#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
exit 0
%post
%if (0%{?rhel} && 0%{?rhel} <= 7) || (0%{?fedora} && 0%{?fedora} <= 27)
/sbin/install-info %{_infodir}/%{name} %{_infodir}/dir 2> /dev/null || :
%endif
/usr/sbin/usermod -a -G mock retrace 2> /dev/null || :
if [ "$1" = 1 ]
then
#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
fi
%preun
if [ "$1" = 0 ]
then
%if (0%{?rhel} && 0%{?rhel} <= 7) || (0%{?fedora} && 0%{?fedora} <= 27)
/sbin/install-info --delete %{_infodir}/retrace-server %{_infodir}/dir 2> /dev/null || :
%endif
#comment entries in retrace's crontab
(crontab -u retrace -l 2> /dev/null | sed "s,^\([^#].*\)$,#\1,g") | crontab -u retrace - 2> /dev/null
fi
%files -f %{name}.lang
%config(noreplace) %{_sysconfdir}/httpd/conf.d/%{name}-httpd.conf
%config(noreplace) %{_sysconfdir}/%{name}.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}
%{_bindir}/%{name}-worker
%{_bindir}/%{name}-interact
%{_bindir}/%{name}-cleanup
%{_bindir}/%{name}-reposync
%{_bindir}/%{name}-reposync-faf
%{_bindir}/%{name}-plugin-checker
%{_bindir}/%{name}-task
%{_bindir}/%{name}-bugzilla-refresh
%{_bindir}/%{name}-bugzilla-query
%{_bindir}/bt_filter
%{_bindir}/coredump2packages
%{python3_sitelib}/retrace/
%{_datadir}/%{name}/
%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}*
%doc README.md
%license COPYING
%changelog
* Mon Aug 27 2018 Martin Kutlak <[email protected]> 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 <[email protected]> 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 README.md
- 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 <[email protected]> 1.17.0-1
- Enable creating releases with makefile
- Introduce gen-version
- Do not use fedorahosted.org 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 config.py.in
- 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 <[email protected]> - 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 <[email protected]> - 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 <[email protected]> - 1.14-1
- generated config.py 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