Apport for Debian
Description of the project: Apport intercepts Program crashes, collects debugging information about the crash and the operating system environment, and sends it to bug trackers in a standardized form. It also offers the user to report a bug about a package, with again collecting as much information about it as possible.
In Debian, we'd like to see Apport play flexible roles. Apport could serve as a crash detection tool, and also upon opt-in, as a Bug/Crash reporting tool. I'd also like to see functionality to save bug reports. This would allow users to save the state and then work on it later, at their leisure.
Offline Functionality: Apport has impressive retracing mechanism, where in it can download all the debug symbols for a package, to generate a proper stack trace. What to do when the crash is triggered on a box with no network? Share some ideas from apt-offline on how to download dependent packages on a different box.
Confirmed Mentor: Ritesh Raj Sarraf
Confirmed co-mentors: Aron Xu
Deliverables of the project:
Notification tool - Provide a generic notification tool, that can detect apport crash reports, and notify the user. Today, we are doing it with a small daemon.
Integration with Reportbug - Integrate Apport with reportbug to stand as a secondary bug reporting tool. Use as much of reportbug's modules, as possible.
Integration with Debian BTS - Integrate Apport with Debian's BTS. As of today, apport has a crashdb for Debian. It can take a bug/crash report and craft an email based bug report that is understood by Debian BTS. Add more improvements to it, like:
- Draft all emails with a custom tag assigned only for Apport (Usertags?)
Make apport crash reporting reliable - By reliable, we mean Do our best to ensure that the candidate bug report is really a genuine problem, and has not yet been reported.
Display bug reports - If connected to the internet, pull in all bug reports (with the particular usertag?) and display it to the user, for possible duplicate
Scan bug reports - If we pull in the bug reports, try to do a crash signature scan, to guess possible duplicate.
Offline functionality - What about Debian boxes that do not have network, or are behind a firewall???
Desirable skills: Shell, Python, C, Debugging.
What the student will learn: Student will gain deeper knowledge of when and why programs crash (Actual bugs vs Integration Issues, Library Transitions), How to reliably detect and Debug them.
Related projects: apport