forked from abrt/retrace-server
-
Notifications
You must be signed in to change notification settings - Fork 0
/
retrace-server.spec.in
355 lines (316 loc) · 13.2 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
346
347
348
349
350
351
352
353
354
355
%{!?python_site: %global python_site %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(0)")}
Summary: Application for remote coredump analysis
Name: retrace-server
Version: @PACKAGE_VERSION@
Release: 1%{?dist}
License: GPLv2+
Group: Applications/System
URL: https://github.com/abrt/retrace-server
Source: https://fedorahosted.org/released/%{name}/%{name}-%{version}.tar.gz
BuildArch: noarch
BuildRequires: intltool
BuildRequires: libtool
BuildRequires: texinfo
BuildRequires: asciidoc
BuildRequires: xmlto
%{?el6:Requires: python-argparse}
Requires: rsync
Requires: mock >= 1.1.11
Requires: xz
Requires: gzip
Requires: bzip2
Requires: tar
Requires: p7zip
Requires: unzip
Requires: lzop
Requires: elfutils
Requires: createrepo
Requires: mod_wsgi
Requires: mod_ssl
Requires: python-webob
Requires: sqlite
Requires: yum-utils
Requires: crash >= 5.1.7
Requires: wget
Requires: kexec-tools
Requires: python-magic
Requires(preun): /sbin/install-info
Requires(post): /sbin/install-info
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}
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}
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
/sbin/install-info %{_infodir}/%{name} %{_infodir}/dir 2> /dev/null || :
/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
/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
fi
%files -f %{name}.lang
%defattr(-,root,root,-)
%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}
%dir %{_datadir}/%{name}
%{_bindir}/%{name}-worker
%{_bindir}/%{name}-interact
%{_bindir}/%{name}-cleanup
%{_bindir}/%{name}-reposync
%{_bindir}/%{name}-reposync-faf
%{_bindir}/%{name}-plugin-checker
%{_bindir}/bt_filter
%{_bindir}/coredump2packages
%{python_site}/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 %{_infodir}/%{name}*
%doc COPYING README.md
%changelog
* 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
* Mon Oct 05 2015 Michal Toman <[email protected]> 1.13-1
- update handling of RT kernels
- do not forward error messages from 'strings' to actual stderr
- do not die if RepoDir has no subdirs
- allow 32-bit crash to be executed on 64-bit hosts
- add bits for script hooks
- better integration with FAF
- refactor worker
* Wed Mar 11 2015 Michal Toman <[email protected]> 1.12-4
- fix the invocation of mock shell
* Tue Mar 03 2015 Michal Toman <[email protected]> 1.12-3
- manager.wsgi - fix kernelver handling ([email protected])
- add support for ppc64le and aarch64
* Thu Jul 31 2014 Michal Toman <[email protected]> 1.12-1
- do not run kmem on vmcores by default
- fix group readability of vmcores
- add support for lzop compression
- add DeleteFailedTaskAfter config option
- add arch-based remote execution
- add set-success and set-fail actions to retrace-server-interact
- add config sanity checks to retrace-server-cleanup
* Thu Mar 13 2014 Michal Toman <[email protected]> 1.11-2
- fix changelog
- do not run 'kmem' crash command by default
* Thu Feb 27 2014 Michal Toman <[email protected]> 1.11-1
- do not die trying to chmod a hardlink
- only hardlink unpacked vmcores
- print command line formatted correctly
- allow submitting vmcores with spaces in file name
- do not run makedumpfile when not necessary
- allow to specify kernel VRA with custom cores
- do not require the trailing slash in task manager URL
- do not kill retrace-server-cleanup when retrace_log does not exist
- cache kernel version into task directory
- add support for ppc64, s390x
- include floating point registers in userspace backtraces
- execute ABRT's exploitability plugin if available
* Wed Aug 21 2013 Michal Toman <[email protected]> 1.10-1
- add possibility to make case number clickable
- support local files in 'Custom core location'
- create the stats database group-writable
- do not die when saving stats fails
- add possibility to restart task
- do not show the output of 'mod -S' in crash
- change directory to $MISCDIR after jumping to crash
- load correct flavour for el4 kernels
- do not kill tasks started from task manager
- do not die if task manager is disabled
- add basic support for ARM
- find correct debuginfo for realtime kernels
- fix httpd config for apache 2.4
- use mtime instead of atime in RetraceTask.get_age()
- use correct suffixes when unpacking archives
- do not die if module list can't be read from vmcore
- add support for X-CoreFileDirectory header
- add support for tweaking yum config in reposync
- rework reposync logging
- accept package list in the archive with crash data
- try harder to find ix86 debuginfo in koji
* Wed Mar 20 2013 Michal Toman <[email protected]> 1.9-1
- guess debuginfo name correctly for <= el4
- rename _log to retrace-log
- fix cross-arch vmcores processing
- debug mode checked by default in task manager
- fix typos
- touch task directory when using retrace-server-interact
- forward kernel version from command line correctly
- parse flavoured kernel version correctly
- allow to send notification e-mails
- symlink retrace_log to MISC_DIR
- do not die on download error
- rework front page
- be able to specify custom core location
- do not die if makedumpfile fails
- make FTP buffer size configurable
- fix detaching from httpd
- add more logging
- fix paths of DF_BIN and TAR_BIN
- fix dependencies
- unify access to task directory elements
- display the progress of FTP download
- add notes & case no. boxes
- run bt_filter on vmcores automatically
- add timestamps to logs
- enable free space check in task manager
- urlencode hyperlinks
* Fri Nov 2 2012 Michal Toman <[email protected]> 1.8-1
- use standard python mechanisms for logging
- determine archive types with file magic
- catch all task-specific exceptions
- support various archive types
- make AuthGroup configurable
- allow overriding kernel version & architecture from command line
- create a writable directory for interactive debuggers
- add the retrace-server-interact printdir command
- autoload modules when jumping into crash
- make dead tasks deletable (really look to /proc)
- show downloaded files in task manager
- do not delete files that do not need unpacking
- show task's start and finish time
- added backref to downloaded file
- make vmcore readable for retrace group
- improve architecture guessing for vmcores
- add possibility to wget kernel debuginfo
- try harder to determine the actual vmcore
- fix kernel version handling
- fix httpd config
* Fri Jul 27 2012 Michal Toman <[email protected]> 1.7-1
- check whether package can be retraced before uploading
- add possibility to disable interactive debugging
- add support for chrooted crashes
- also cache debuginfo for modules loaded in a vmcore
- add task manager
- add possibility to search kernel debuginfo in koji-like directory structure
- fix permission denied on gdb.sh
- add possibility to query an external FTP for task data
- tasks may have multiple results
- tasks may have remote resources
- add possibility to run makedumpfile on vmcores
- add possibility to archive old tasks instead of deleting them
* Fri May 04 2012 Michal Toman <[email protected]> 1.6-1
- add support for interactive debugging
- coredump2packages - handle malformed eu-unstrip output
- expose repos via HTTP
* Mon Feb 27 2012 Michal Toman <[email protected]> 1.5-1
- add support for F17
- add hacks helping to depsolver
- read huge files buffered
- get rid of retrace-server.repo file
- add /<task_id>/delete action
* Tue Nov 22 2011 Michal Toman <[email protected]> 1.4-1
- add support for vmcores
- add welcome page
- add statistics page
- add support for rawhide
* Tue Aug 23 2011 Michal Toman <[email protected]> 1.3-1
- cron jobs are not enabled by default
- support X-Task-Type header
- use atomic operations to lock/rename
- add support for http(s) and ftp in reposync
- abort if release is not supported
- add option to use createrepo --update
- add support for F16
* Wed Jun 29 2011 Michal Toman <[email protected]> 1.2-1
- add option to verify GPG signatures
- make HTTPS optional
- use RetraceTask class
- validate input
- limit allowed files
- do not allow worker to start twice
- ship cron configuration
- do not require suid launcher
- minor bug and typo fixes
* Wed Jun 01 2011 Scott Dodson <[email protected]> 1.1-2
- Add asciidocs xmlto to BuildRequires
* Wed Jun 01 2011 Michal Toman <[email protected]> 1.1-1
- add logrotate script
- add asciidoc support and manpages
- replace rm by os.remove() and shutil.rmtree()
- call du and df without block factor
- use communicate() instead of .stdout.read()
- replace popen by execlp
- import manual from ABRT git, minor changes
- create log directory
- use 'retrace' user and group
* Wed May 18 2011 Michal Toman <[email protected]> 1.0-1
- initial packaging