108
|
|
|
Martin Pitt |
0.108 |
16 years ago
|
![Diff](/static/images/ico_diff.gif) |
|
107
|
|
|
Martin Pitt |
0.107 |
16 years ago
|
![Diff](/static/images/ico_diff.gif) |
|
99
|
|
* cli/apport-cli, qt4/apport-qt: Fix typo 'send' -> 'sent'. (LP: #139288) * apport_python_hook.py: Add user info, too. Also add check for this to the test suite. (LP: #145109) * apport/ui.py, run_crash(): Show a proper UI error message instead of just crashing with an exception if the crash report is inaccessible for the invoking user. (LP: #146464) * apport/crashdb_impl/memory.py: Implement mark_retraced(), get_unretraced(), and get_dup_unchecked() for completeness, and define _MemoryCrashDBTest also when not running file as __main__. This makes the class useful for higher-level test suites. Add test cases for the new functions. * apport/crashdb_impl/memory.py: Support 'dummy_data' option which adds a few dummy crashes by default. This is useful for external test suites which cannot otherwise pre-fill the in-memory db. Add checks that this works properly. * bin/crash-digger: Use self.log() more consistently, and flush stdout in log(), so that we do not lose logs on output redirection. * Add test-crash-digger: Initial test suite for bin/crash-digger. * apport/ui.py, run_crash(): Intercept CRC errors from the info collection thread, which happens on broken core dumps. (LP: #132212) * cli/apport-cli, ui_present_package_error(): Fix running of dialog, so that reporting package problems with apport-cli actually works. (LP: #136369) * apport/ui.py, run_crash(): Intercept ENOSPC and present a proper error message. (LP: #145100) * gtk/apport-gtk.glade: Fix title of upload progress window to comply to HIG. Thanks, Bruce Cowan. (LP: #144782) * qt4/apport-qt: Fix Unicode <-> UTF-8 conversion. Thanks, Daniel Hahler! (LP: #148177) * apport/ui.py: Only import xdg.DesktopEntry when a .desktop file has been found in the affected package. This avoids the dependency on servers with just apport-cli. Thanks, Matthias Gug! (LP: #130013) * apport/fileutils.py: Do not fail if there are no packages installed which have one or several .desktop files. Thanks, Matthias Gug!
|
Martin Pitt |
0.99 |
16 years ago
|
![Diff](/static/images/ico_diff.gif) |
|
90
|
|
* apport/ui.py, load_report(): Catch IOError, too. LP: #118827 * Merge apport-cli package into apport itself. The program itself is just 3 kB compressed, and it's not worth wasting another 34 kB compressed changelog for this tiny bit. * apport/report.py, obsolete_packages(): Use the version comparison from the packaging system instead of just testing for inequality. This catches zero epochs. Thanks to Will Woods <wwoods@redhat.com>! * apport/ui.py: Add option -c/--crash-file to run the UI with a particular crash file (which can be anywhere) instead of all pending crashes in /var/crash/. * Add xdg-mime/apport.xml: XDG MIME type definition for .crash files. * Add gtk/apport-gtk-mime.desktop.in: Link text/x-apport MIME type to apport-gtk -c, so that .crash files can be reported with Gnome. * Add debian/apport.links: Install an icon symlink for the MIME type. * apport/ui.py: Do not ask the initial "Do you want to report this?" question when being invoked with --crash-file. * po/POTFILES.in: Add missing cli/apport-cli. * po/de.po: Updated for apport-cli. * cli/apport-cli: Add option for keeping the report file without sending it, and to display its path. This is for sending the report later, copying it from a server to a workstation with internet connection, etc. * apport/crashdb_impl/launchpad.py: Simplify _subscribe_triaging_team(), now that we do not differ between main and universe policies any more. * apport/report.py: Support another hook directory /usr/share/apport/general-hooks/ for scripts which are run for every problem report. This was requested for adding e. g. AppArmor logs, etc. Add test cases. * Add debian/apport.dirs again to ship that hook directory. * doc/package-hooks.txt: Document the general hooks.
|
Martin Pitt |
0.90 |
16 years ago
|
![Diff](/static/images/ico_diff.gif) |
|
88
|
|
|
Martin Pitt |
0.88 |
16 years ago
|
![Diff](/static/images/ico_diff.gif) |
|
80
|
|
|
Martin Pitt |
0.80 |
17 years ago
|
![Diff](/static/images/ico_diff.gif) |
|
72
|
|
|
Martin Pitt |
0.72 |
17 years ago
|
![Diff](/static/images/ico_diff.gif) |
|
71
|
|
* cli/apport-cli, qt4/apport-qt: Fix bad grammar 'some minutes'. (LP: #95296) * problem_report.py, write_mime(): Add optional 'preamble' parameter. Add test case. * apport/ui.py, upload_launchpad_blob(): Set need-$ARCH-retrace tag in MIME preamble. Bump p-problem-report dependency. (LP: #94790) * bin/apport-retrace: In verbose mode, display the path of currently extracting deb. * bin/apport-retrace: Do not fall over errors of dpkg -x (which happens e. g. on udev, where it cannot unpack /dev, since this is a symlink to the real /dev). Merely print out a warning about it. * apport/ui.py, run_report_bug(): Ignore ENOENT from add_proc_info(). This happens if the user closes the application prematurely, so that /proc/pid does not exist any more. Add test case. (LP: #95954) * backends/packaging-dpkg.py, get_modified_files(): Ignore lines in .md5sums files which contain a NUL byte. This Should Not Happen™, but nevertheless did. (LP: #96050) * apport/ui.py, doc/package-hooks.txt: Check for a field "UnreportableReason: <text>" and display an information box that the current crash cannot be reported because of <text>. Add test case. Document the new field. * apport/ui.py: Check package origin, compare it to DistroRelease:, and report crash as unreportable if they do not match. This particularly saves the user from uploading large reports for e. g. opera crashes, and avoids filing Ubuntu bugs from Debian installations. (LP: #75513)
|
Martin Pitt |
0.71 |
17 years ago
|
![Diff](/static/images/ico_diff.gif) |
|
70
|
|
[ Martin Pitt ] * bin/apport-retrace: Add option --remove-tag to remove a Launchpad bug tag. This is intended for an automatic Malone crash retracing system. * debian/control: Bump python-launchpad-bugs dependency to ensure that we have Bug.[gs]et_metadata(). * man/apport-retrace.1: Add documentation for --confirm and --remove-tag. * bin/apport-chroot: Add option --remove-tag and pass it to apport-retrace. * apport/chroot.py, fix_symlinks(): Convert chroot path prefixed absolute symlinks to relative symlinks to avoid fakechroot's weird handling of absolute symlinks. * Add bin/launchpad-crash-digger: Daemon for watching out for need-$ARCH-retrace tagged Ubuntu bugs in Launchpad and calling apport-retrace on them. * bin/apport-retrace: Mangle bug comment with StacktraceTop to not contain invalid UTF-8, to avoid getting Internal Server Errors from LP. * debian/local/setup-apport-retracer: Install libc6-i686{,-dbgsym} into an x86 chroot, to get sane x86 backtraces for crashes in libc. * debian/local/setup-apport-retracer: - Unpack and install python-launchpad-bugs locally if the package is not installed. - Link launchpad-crash-digger into the retracer's bin/ dir. * run-tests: Run tests with python's -tt flag to catch whitespace errors. * Replace tabs with spaces in all Python files. (LP: #93561) * Remove trailing white space in all Python files. * apport/report.py, add_proc_info(): Do not regard symlinks to executables as interpreted scripts any more (such as Debian alternatives). Add test case. (LP: #94732) * problem_report.py: Add new method get_new() which returns a set of all keys which have been added since load() or construction. Add test cases. * problem_report.py: Add optional parameter only_new to write(), which writes only the get_new() keys. Add test case. * apport/ui.py: Remember currently processed report file and update it with the added information, so that it becomes useful for local evaluation, too. Bump python-problem-report dependency to ensure write()'s only_new availability. (LP: #94678) * apport-chroot: Add forgotten sys.exit(1) after printing the error message about an invalid chroot specification. * apport/ui.py, run_crash(): Check for a field "UnsupportableReason: <text>" and display an information box that the current configuration cannot be supported because of <text>, instead of processing and reporting the crash. Add test case for this workflow. With special regards to our Firefox crash triagers who want to get rid of the hundreds of flash-related crashes. :) * apport/report.py, add_hooks_info(): Use execfile() instead of __import__(), since package names might conflict with module names already imported into apport's namespace. Also search for hook named after the source package name (prefixed with 'source_'). Add test cases. * bin/apport-chroot: When specifying --save for login, only save the tarball if the exit status is 0. * bin/apport-chroot, create: Install /usr/sbin/policy-rc.d to disable init scripts. * bin/apport-chroot: Fixed command function selection to not abort with 'unknown command' if the DistroRelease: was unknown. * bin/apport-retrace: Replace --no-purge with --no-dpkg. With this option, do not call dpkg --unpack any more, but dpkg -x, to avoid any fchmod() and other calls which cause problems in fakechroots. * bin/apport-retrace: Fix ordering of version numbers in warning message. * doc/package-hooks.txt: Add some examples, document source package hook.
[ Kees Cook ] * apport/report.py, add_proc_info(): If reading /proc/pid/maps fails, ptrace() the target process to make it readable (proposed security improvement in future kernels). * bin/apport-retrace: Fix crash for packages unknown to the apt cache. * apport/report.py, add_gdb_info(): Limit maximum backtrace depth to 2000 to avoid infinitely looped stacks and gdb crashes. (LP: #94455) This also caps the maximum size of information that we add to reports. (LP: #92653) * bin/apport-retrace: Add option -R/--rebuild-package-info, so that apport-retrace works on unprocessed crash dumps in /var/crash. * Some grammar corrections. * Add package-hooks/source_apport.py: Package hook for apport itself. Include /var/log/apport.log and the status of files in /var/crash.
[ Michael Hofmann ] * Add cli/apport-cli, setup.py, debian/apport-cli.install, debian/control: Add command line user interface. * apport/ui.py, format_filesize(): Use MiB and GiB instead of MB and GB; these are the official units. Adapt test cases. * apport/ui.py, collect_info()/file_report(): Do not raise an exception on KeyboardInterrupt in the subthreads. * apport/ui.py, open_url(): Do not use gtk.MessageDialog(), but ui_error_message(), and fix error passing so that the message is displayed in the parent thread. * apport/ui.py, open_url(): Check that $DISPLAY is set before considering the KDE/Gnome web browsers.
|
Martin Pitt |
0.70 |
17 years ago
|
![Diff](/static/images/ico_diff.gif) |
|
67
|
|
|
Martin Pitt |
0.67 |
17 years ago
|
![Diff](/static/images/ico_diff.gif) |
|
51
|
|
|
Martin Pitt |
0.51 |
17 years ago
|
![Diff](/static/images/ico_diff.gif) |
|
41
|
|
New feature: Use Malone cloakroom for uploading reports. Closes: LP#70919
* gtk/apport-gtk.glade: Redesign bug reporting dialog to have a 'Create bug report' and a 'Cancel' button. Also assign GTK_RESPONSE_* constants to the dialog buttons. Go back to Glade 2 since Glade 3 still sucks too much. * gtk/apport-gtk: Adjust workflow for sending report to Malone cloakroom instead of asking the user to attach the file. Sending is not yet implemented, though. * gtk/apport-gtk: Do not show any dialogs any more when filing a bug. * Add apport/MultipartPostHandler.py: This module provides an urllib2 opener for uploading file attachments to forms over HTTP POST. This module is (C) 2006 Will Holcomb <wholcomb@gmail.com> and was taken from http://odin.himinbi.org/MultipartPostHandler.py. (This is a serious hole of the Python standard library IMHO.) * apport/ui.py, file_report(): Upload blob to Malone (edge.launchpad.net for now), retrieve the ticket, and pass it to +filebug.
Refactorizations:
* gtk/apport-gtk: Major refactorization to use modal dialogs and run() instead of loosely coupled event handlers. * Add apport/ui.py: Abstract frontend which encapsulates the logic, workflow and UI independent bits and provides UI hooks for concrete implementations. This both makes it easy to write more frontends like Qt or CLI, and also makes the code automatically testable. Add an extensive testsuite. * run-tests: Add ui.py testsuite. * gtk/apport-gtk: Port to ui.py's UserInterface (which means moving 1/3 of the code into the new ui_*() methods and throwing away the rest). * Add apport/REThread.py: Enhanced threading.Thread class that can propagate the return value and uncaught exceptions of run() to the calling thread. * apport/ui.py: Get rid of thread_check_bugpatterns() and hackish exception handling, rewrite using REThread. * apport/ui.py, gtk/apport-gtk: Add progress bar to report upload. It is indefinite for now, because neither urllib2 nor httplib support upload progress.
Bug fixes:
* gtk/apport-gtk.glade: Merged Gnome HIG fixes from Sebastian Heinlein, thank you! * Merge patch from Sebastian Heinlein to properly treat the apport-gtk icon the dh_iconcache way and make it themeable. Thank you! * gtk/apport-gtk: Remove periods from primary dialog texts to comply with Gnome HIG standards. * backends/packaging-dpkg.py, get_file_package(): Process list files in chunks of 100, so that we do not exceed the maximum command line length if there is a large number of packages installed. Closes: LP#64839 * gtk/apport-gtk: Use pgrep with -u instead of pidof for testing whether the crashed process is already running again, so that we do not match processes of other users. Add procps package dependency for this. * gtk/apport-gtk: Only offer to restart programs that are in the $PATH. E. g. /usr/lib/firefox/firefox-bin cannot be called directly. Closes: LP#79623 * apport/report.py: Disassemble 16 instructions instead of 32 bytes to become independent of the instruction size. Thanks to Kees Cook for the patch!
|
Martin Pitt |
0.41 |
17 years ago
|
![Diff](/static/images/ico_diff.gif) |
|
35
|
|
Optimizations:
* apport/fileutils.py: Split out heuristics for determining whether a file belongs to a package to new function likely_packaged() and add test cases. * bin/apport: Do not use the expensive find_file_package() any more, use likely_packaged() instead. This will create initial reports in some corner cases (like custom non-packaged executables in /usr/bin/), but greatly reduces I/O impact at crash time. We rely on apport-gtk to deal with reports that do not actually belong to a packaged executable. * apport/report.py, add_gdb_info(): Call gdb just once and split the output instead of calling it again for each command. This should significantly speed up the gdb stage especially for large programs/core dumps. * Use cStringIO instead of StringIO in modules. * gtk/apport-gtk: Code cleanup and refactorization: - Move iteration over crash reports into __main__ to simplify housekeeping in the ApportGTK class and get rid of some functions. - Refactor creation of temporary report file. * gtk/apport-gtk.glade: Split the text in the progress bar dialog so that we can use it for multiple steps (like uploading data to Malone) while not breaking translations.
New feature: Bug reporting tool (https://wiki.ubuntu.com/BugReportingTool)
* gtk/apport-gtk: Split out crash report initialization to new function show_crashes() so that we can use the frontend for other purposes like bug reporting. * gtk/apport-gtk: Add --file-bug, --package, and --pid options; if given, create a bug report about the given package instead of viewing crash reports. * gtk/apport-gtk{,.glade}: Generalize some strings to not talk about 'crash' any more, to make them suitable for bug reporting, too. * gtk/apport-gtk: Support --file-bug without specifying a package or a PID for filing generic distro bugs. * problem_report.py: Add new method write_mime() to encode a problem report in MIME/Multipart RFC 2822 format (i. e. an email with attachments). Short values are aggregated into the first inline text/plain part, large values, binary values, and file references get gzip compressed separate attachments. Also add various test cases.
Bug/crash information:
* apport/report.py, add_user_info(): Add list of system groups that the user belongs to. * bin/apport: Call add_user_info(), check functionality in test-apport. * apport/report.py, add_gdb_info(): Add field 'StacktraceTop' with the top five functions on the stack and no local variables. This reduced 'glimpse' is suitable for inline display in bug reports and automatic processing (dup finders, etc).
Bug fixes:
* po/Makefile: Add top_srcdir to work with current intltool. * po/de.po: Unfuzz some strings. * apport/report.py, add_gdb_info(): Strip away the 'No symbol table info available' messages from stack traces. * apport/report.py, test_search_bug_patterns(): Use security.u.c. instead of archive.u.c., since the latter times out too often.
|
Martin Pitt |
0.35 |
17 years ago
|
![Diff](/static/images/ico_diff.gif) |
|
18
|
|
|
Martin Pitt |
0.18 |
17 years ago
|
![Diff](/static/images/ico_diff.gif) |
|
17
|
|
|
Martin Pitt |
0.17 |
17 years ago
|
![Diff](/static/images/ico_diff.gif) |
|
4
|
|
|
Martin Pitt |
0.4 |
17 years ago
|
![Diff](/static/images/ico_diff.gif) |
|
3
|
|
|
Martin Pitt |
0.3 |
17 years ago
|
![Diff](/static/images/ico_diff.gif) |
|
2
|
|
|
Martin Pitt |
0.2 |
17 years ago
|
![Diff](/static/images/ico_diff.gif) |
|