Created by Ubuntu Package Importer and last modified
Get this branch:
bzr branch lp:ubuntu/hardy/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

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.

100. By Martin Pitt

* bin/crash-digger: Add option --log for logging to a file, and
  --pidfile/--stop for daemonization. Add test cases to test-crash-digger.
* bin/apport: Do not re-raise exceptions about failure to create the lock
  file, to avoid crashing in the case that another apport instance tries to
  lock at exactly the same moment. (LP: #147237)
* apport/report.py testsuite: Check that our methods get along with binary
  data which turn into CompressedValue objects after loading them from a
  file. This reproduces LP #148305.
* problem_report.py, CompressedValue: Add method splitlines() since we need
  it very often. Add test case to test_compressed_values(). (LP: #148305)
* problem_report.py: Add test case to check that update() works and does the
  right thing with binary values and overwriting. This confirms that
  importing a dictionary works.
* debian/local/setup-apport-retracer: Update for hardy.
* apport/crashdb_impl/launchpad.py: get_source_info() does not work any more
  due to HTML changes in Launchpad, and not showing the component any more
  on /distro/+source/package. Since we do not actually need component and
  release name any more, rename it to get_source_version(), fix the regular
  expression to just get the version, and adapt get_fixed_version()
* debian/local/setup-apport-retracer: Update default apt sources to
* apport/ui.py: Robostify cleanup of forked test processes.
* apport/ui.py: Sleep for 0.5 seconds after creating the test process in the
  test suite to give /proc some time to settle down.
* bin/apport: Drop evaluation of CORE_* environment variables and mandate
  calling with <pid> <signal> <core ulimit>. Drop the now obsolete
  apport/elfcore.py. Adapt test-apport accordingly.
* debian/apport.init, use-local: Now call apport with %p, %s, and %c kernel
  macros (since 2.6.24). Drop Edgy support from init script.

99. By Martin Pitt

* 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
* 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!

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.