Created by Ubuntu Package Importer and last modified
Get this branch:
bzr branch lp:ubuntu/hardy-proposed/apport
Members of Ubuntu branches can upload to this branch. Log in for directions.

Branch merges

Related bugs

Related blueprints

Branch information

Ubuntu branches
Review team:
Ubuntu Development Team

Recent revisions

110. By Martin Pitt

* debian/control: Update Vcs-Bzr: for the hardy branch.
* apport/packaging.py: Introduce a new function enabled() which reports
  whether Apport should create crash reports. Signal crashes are controlled
  by /proc/sys/kernel/core_pattern, but we need that to control whether
  reports for Python, package, or kernel crashes are generated.
* backends/packaging-apt-dpkg.py: Provide implementation for
  PackageInfo.enabled() for Debian/Ubuntu by evaluating /etc/default/apport.
  Add various test cases for different configuration files and absent files.
* apport_python_hook.py: Do not create reports if Apport is disabled (in
  /etc/default/apport). (LP: #222260)

109. By Loïc Minier

apport/report.py, add_proc_info(): also strip pathnames starting with
'cow', 'squashmnt', and 'persistmnt' to allow apport to locate the
executable pathname, additionally to 'rofs' added in 0.75. This fixes
apport for packages installed on the read-write part of the unionfs mounts
and under UME which uses different names for the mount points. Proper fix
is to rewrite the pathnames in the kernel. LP: #224168.

108. By Martin Pitt

[ Martin Pitt ]
* apport-{gtk,qt,cli}: Fix handling of file references added by package
  hooks. (LP: #205163)
* backends/packaging_rpm.py: Fix dependency resolution of uname(*) in the
  RPM backend. Thanks to Patryk Zawadzki! (LP: #213018)
* backends/packaging_rpm.py: Fix RPM platform parsing, thanks to Patryk
  Zawadzki! (LP: #213015)
* po/de.po: Fix typo (missing space).
* debian/apport.default: Disable Apport for the final Hardy release, since
  it is less useful in stable releases, and drains a lot of CPU and I/O
  power on crashes. Disabling it here instead of in update-notifier/adept is
  more discoverable and more centralized.

[ Daniel Hahler ]
* bin/apport-retrace: catch the same exceptions from Report.load() like
  ui.load_report() does (LP: #211899)
* Fix uncaught exceptions in apport itself (LP: #215929):
  - apport/REThread.py: check if "sys" exists in the except block of
  - apport_python_hook.py: check if "sys" exists in the finally block of
* cli/apport-cli: Fix UnboundLocalError in ui_present_crash, which rendered
  apport-cli useless (for reporting crashes) (LP: #216151)

107. By Martin Pitt

* cli/apport-cli: Add translator comment for difficult string. (LP: #210948)
* Update German translations.
* po/Make{vars,file}: Remove the --language=python option again, since it
  breaks extracting strings from the glade. intltool-update currently does
  not seem to have a way to tag a file as "language python", so add an ugly
  workaround: Create temporary .py symlinks for gtk/apport-gtk & friends,
  and have intltool extract them.
* apport/ui.py: Disallow filing a bug without specifying a package or a PID.
  Update debian/local/ubuntu-bug.1 accordingly (apport-cli manpage was
  already correct). (LP: #210348)

106. By Martin Pitt

[ Martin Pitt ]
* apport/crashdb_impl/launchpad.py: Fix spelling mistake in p-lp-bugs API
  (now corrected there).
* apport_python_hook.py: Catch IndexError for invalid sys.argv[0], too.
  (LP: #204940)
* apport/ui.py: Add test_run_report_bug_unpackaged_pid() test case which
  reports a bug against a pid which belongs to an unpackaged program. This
  reproduces LP #203764.
* apport/report.py: Drop add_hooks_info() assertion on nonexisting Package
  field, return silently instead. This conforms to the behaviour of the
  other add_*_info() functions and avoids nasty error handling.
* apport/ui.py: Generate proper error message when calling with -f -p PID
  and PID belongs to an unpackaged program. (LP: #203764).

[ Sebastien Bacher ]
* po/Makevars: add the --language=python xgettext option so the translations
  template is correctly updated on build since cdbs is using intltool-update
  directly and not the corresponding makefile target

105. By Martin Pitt

* apport/crashdb_impl/launchpad.py: Ignore ValueErrors when subscribing a
  team, since these are usually due to the team already being subscribed.
* apport/report.py, anonymize(): Be robust against empty user names and only
  anonymize fields which can potentially contain user specific data.
  (LP: #195706)
* backends/packaging-apt-dpkg.py, get_architecture(): Return 'unknown'
  instead of None if package architecture cannot be determined.
  (LP: #198548)
* apport/ui.py, run_crash(): Intercept other IOErrors, too (such as EISDIR)
  and print out proper error message instead of crashing. (LP: #201819)
* apport_python_hook.py: If the Python script has mutilated sys.argv so that
  even sys.argv[0] does not exist any more, fall back into readlink()ing
  /proc/pid/exe and gracefully handle the failure of that, instead of
  crashing in the crash handler (ugh). Add test case. (LP: #198183)

104. By Martin Pitt

[ Martin Pitt ]
* apport/crashdb_impl/launchpad.py, get_source_version(): re-escape the
  package name so that it doesn't stumble over '+' and similar characters.
* apport/ui.py tests: assert that ProcEnviron is also included into bug
  reports where we do not have a PID, since having the local information is
  interesting and important (and acceptable in terms of personal
* apport/report.py: Split out method add_proc_environ() for getting
  ProcEnviron, so that we can call it separately.
* apport/ui.py, run_report_bug(): Add ProcEnviron if we do not have a pid to
  file a bug against. This way, bugs filed against packages or distro also
  get locale information. (LP: #198514)
* apport/fileutils.py, mark_report_seen(): Do not crash if the file does not
  exist any more, because it was removed underneath us. (LP: #199932)
* apport/ui.py, test_collect_info_exepath(): Add a tuple argument and a
  CompressedValue to the test report. This reproduces LP #199349.
* apport/report.py, anonymize(): Only work on string values. (LP: #199349)
* apport/ui.py: If a report has a field "Ignore", entirely ignore the report
  without even presenting an explanatory error dialog (as
  "UnsupportableReason" does). Document this in doc/package-hooks.txt.
* debian/control: Bump Standards-Version (no changes necessary).
* debian/control: Fix wrongly spelt project names (Python and GTK+). Thanks
  to lintian's scrutiny.
* gtk/apport-gtk-mime.desktop.in, qt4/apport-qt-mime.desktop.in: Add a main

[ Kees Cook ]
* apport/report.py: fix module license checking logic (LP: #199927).
  - nonfree_modules: being unable to find a module should not mean the
    module is non-free.
  - test_module_license_evaluation: check modinfo reporting.
* problem_report.py: Skip atime test case if file system is mounted noatime.

103. By Martin Pitt

* bin/apport-unpack: Print error messages instead of crashing for problems
  like nonexisting file names passed as arguments. (LP: #185273)
* backends/packaging-apt-dpkg.py, is_distro_package(): Explicitly check site
  for "ppa", so that we do not automatically file bugs for PPA packages.
  This works around Soyuz bug LP #140412 for the time being.
* apport/report.py: Add standard_title() test cases for Python crashes with
  a custom message, and a custom message with newlines. The latter
  reproduces LP #190947.
* apport/report.py, standard_title(): Do not rely on a fixed position of the
  topmost function; use iteration and regular expression matching instead.
  (LP: #190947)
* apport/ui.py, parse_argv(): Specify that --pid/-P argument must be an
  integer, to avoid exceptions when it's not. (LP: #193494)
* apport/report.py: Use uname -srm, not -a, to hide the hostname. (part of
  LP #192786); also use os.uname() instead of calling the system program.
* problem_report.py(): Make write() work for reports with CompressedValues.
  Add test case.
* apport/ui.py: Add test case test_run_crash_anonymity() which asserts that
  the crash dump does not contain strings which can identify the user, such
  as the user name, login name, host name, and current directory.
* apport/report.py: Add method anonymize() which replaces user specific
  strings with generic ones.
* apport/ui.py, thread_collect_info(): Call anonymize() on the report.
  (LP: #192786)
* bin/apport-retrace: Only update a bug report with new attachments if it is
  not a duplicate. (LP: #172792)
* bin/apport-retrace: Print out proper error message instead of an exception
  if trying to do write operations to the bug tracker without specifying
  a cookie file. (LP: #146423)

102. By Martin Pitt

[ Martin Pitt ]
* problem_report.py: Support reading reports with legacy zlib
  compression in 'retain compressed values' mode (as used nowadays by
  apport when reporting a crash). Add a test case, too. (LP: #129616)
* debian/control, debian/rules: Switch from python-support to
  python-central, and use 'nomove' option so that apport works during
  upgrades, too. (LP: #121341)
* debian/rules: Use dh_icons instead of dh_iconcache.
* debian/apport.init: Do not stop apport in any runlevel (LSB header).
* apport/ui.py, run_crash(): Catch zlib.error on invalidly compressed core
  dumps. (LP: #176977)
* apport/ui.py: Give a meaningful error message instead of crashing if the
  package for a crash report is not installed any more. (LP: #149739)
* apport/ui.py: Do not include ProcCmdline in bug reports, since these are
  not ack'ed by the user and might contain sensitive data. (LP: #132800)
* apport/ui.py: Add various test cases for crash reports whose packages have
  been uninstalled between the crash and the report. This reproduces
  LP #186684.
* apport/ui.py, load_report(): Produce proper error message if
  executable/interpreter path do not exist any more. (LP: #186684)
* cli/apport-cli: Intercept SIGPIPE when calling sensible-pager, to avoid
  crash when quitting it prematurely. (LP: #153872)
* bin/apport-checkreports: Print out a list of program names/packages which
  have a pending crash report. (LP: #145117)
* apport/ui.py, run_argv(): Add return code which indicates whether any
  report has been processed.
* cli/apport-cli: If no pending crash reports are present, say so and refer
  to --help. (LP: #182985)
* apport/ui.py: Waive check for obsolete packages if environment defines
  $APPORT_IGNORE_OBSOLETE_PACKAGES. Document this in the apport-cli manpage.
  (LP: #148064)

[ Daniel Hahler ]
* .crash file integration for KDE3 (LP: #177055)
  - debian/apport-qt.install: install added files qt4/apport-qt-mime.desktop
    and qt4/apport-qt-mimelnk.desktop
* Fixed minor warnings/errors from desktop-file-validate in
  gtk/apport-gtk-mime.desktop.in and qt4/apport-qt.desktop.in (LP: #146957)

101. By Martin Pitt

* debian/control: Add python-xdg dependency to apport, since apport-cli
  needs it. (LP: #177095)
* apport/ui.py: Add test case for reporting a report which has been
  preprocessed by apport-retrace, i. e. has a stack trace, but no core dump
  any more (reproducing LP #185084).
* apport/ui.py, run_crash(): Do not reject reports which have a stack trace,
  but no core dump. (LP: #185084)
* apport/report.py: Fix test_add_gdb_info_load() test case, the temporary
  executable was already deleted when gdb ran the second time.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
This branch contains Public information 
Everyone can see this information.