I just released Apport 2.5 with a bunch of new features and some bug fixes.
By default you cannot report bugs and crashes to packages from PPAs, as they are not Ubuntu packages. Some packages like Unity or UbuntuOne define their own crash database which reports bugs against the project instead. This has been a bit cumbersome in the past, as these packages needed to ship a /etc/apport/crashdb.conf.d/ snippet. This has become much easier, package hooks can define a new crash database directly now (#551330):
def add_info(report, ui):
if determine_whether_to_report_to_upstream:
report['CrashDB'] = '{ "impl": "launchpad", "project": "picsaw" }'
(Documented in package-hooks.txt)
Apport now also looks for package hooks in /opt (#1020503) if the executable path or a file in the package is somewhere below /opt (it tries all intermediate directories).
With these two, we should have much better support for filing bugs against ARB packages.
This version also finally drops the usage of gksu and moves to PolicyKit. Now we only have one package left in the default install (update-notifier) which uses it. Almost there!
#1 by fabi on 2012/08/22 - 13:42
Zitieren
good, now you just need to fix the crash on kubuntu and its a really good tool
#2 by pitti on 2012/08/22 - 13:50
Zitieren
“The crash”? apport-kde works fine under Ubuntu, I haven’t tried under Kubuntu. Do you have a bug # or further information?
#3 by Jason DeRose on 2012/09/05 - 08:33
Zitieren
Thanks for the info! I’m trying to get ubuntu-bug and apport crash detection to work for some packages delivered from a PPA. I’m using an /etc/apport/crashdb.conf.d/ snippet so things are compatible with Precise also. But I’m running in to trouble and have a few questions:
1) Should the crashdb.conf.d snippet use the source package name, or a binary package name?
2) Should ubuntu-bug work and be testable if I build the package locally, or does it need to actually come from the PPA?
3) In general how should I test the apport integration?
Thanks!
#4 by pitti on 2012/09/05 - 09:02
Zitieren
Jason,
1) crashdb.conf.d does not use package names at all, it’s the name of the database; it needs to be unique, and should be the project or distro name you send the reports to.
2) It does not need to come from a PPA, you can also test a locally installed package; but it really depends on what you actually test for in the package hook, i. e. the condition when you set the report['CrashDB'] field. If you always set it unconditionally, it doesn’t matter where the package is from. The usual approach is to do something like
if not apport.packaging.is_distro_package(report['Package'].split()[0]):
report['CrashDB'] = ‘myproject’
i. e. guide reports for Ubuntu packages to Ubuntu bugs, and to the project otherwise. With that you can share the package hook between PPA and distro packages.
3) Install the hook and crashdb.conf.d snippet into the system (i. e. install a locally built .deb), run ubuntu-bug, and check that the details contain the data from the hook.
#5 by Jason DeRose on 2012/09/06 - 03:36
Zitieren
Thanks, Martin! I managed to get it all working now, awesome stuff.
I don’t think many upstream projects realize you can use Apport this way, so I’m on a mission to spread awareness
#6 by Sandeep on 2013/02/27 - 11:03
Zitieren
Could you be kind enough to clarify me for the below question:
If I develop an application, which does not be part of the ubuntu package (a 3rd party app), core files can be generated by writing hooks. But how do I control not to upload the crash reports to ubuntu, but upload/send it to me. Basically if it is a 3rd party application, it does not make sense to send the reports to ubuntu. So how can I just generate reports, but not to upload. so that I will analyze them locally.
#7 by pitti on 2013/03/04 - 06:53
Zitieren
Many third-party packages ship an apport hook which sends crash reports to their Launchpad project instead. Apport supports multiple “crash database” backends, such as Launchpad, Daisy, and Debian BTS at the moment, but one can add more.
Also, the actual .crash files are always saved, regardless of whether it’s a third-party or native Ubuntu package; they are just not sent to Daisy/Launchpad in the former case, unless a hook says so or directs it to someplace else.