I am happy to know that this round of OPW internships in Debian can already be considered a success, and that Debian will participate in round 10! More sponsors are welcome to fund more internships.
Debian has this great thing called the Ultimate Debian Database, UDD.
As I described in my previous post, Debian’s Bug Tracking System is package centric. Only package maintainers get informed if, for a package they maintain, a bug is opened or commented on. There are no email notifications if a bug is tagged with a keyword though (“usertagged”).
But UDD’s documentation is great! One can simply read the database scheme and then write all sorts of scripts to access the data in this database. That is what I did during the last days. I had a lot of fun finally applying what I learned at one of Coursera’s Python courses. Still, my coding style needs a lot of improvements, and the mentors are heavily reviewing the code 🙂 I am happy about this as sometimes things simply work and then one does not care enough to improve them even more.
Anyhow, now, everytime a bug is tagged for the AppArmor Packaging Team, the team mailing list receives an email. Yay.
To make this happen, a cronjob runs on Alioth every day and checks for added and deleted tags.
In order to organize the AppArmor documentation on Debian’s wiki, we created some basic User Stories. A User Story is a written in everyday language and supposed to frame in a short and precise way what a user of a software or a reader needs to do, know or find.
The User Stories for this particular documentation were not only written in order to structure the pages into a goal-oriented system rather than into a collection of different technical realms, but we also needed them in order to invent a set of tags. These tags should make it easier for the people who maintain AppArmor related packages in Debian to keep track of bugs related to AppArmor.
The Debian Bug Tracking System is very powerful, but it’s hard to learn to use it in first place, as much of the interaction with it is email based. Furthermore is this bug tracking system package-centric. This means that one can report bugs only against packages. Only the maintainers of a package will be automatically made aware if somebody reported a bug against theirs.
But in an operating system packages interact with, depend on or can break each other. When a software ships an AppArmor profile for example, and a recent version of this profile has not been well tested, it could break the program’s functionality and lead to a bug report.
As the AppArmor Packaging Team aims at providing help to package maintainers who ship such profiles, as well as to other contributors who want to request that such profiles are updated or patched, for example, they’d like to be aware of such bugs which concern AppArmor but are reported against other packages.
There is a functionality called user tag in Debian’s BTS. A user tag is a keyword which can be set for a particular user on a bug. It’s possible to add single or multiple tags and also to delete them, once they have become obsolete.
A user tag also needs a user for whom the tag is relevant. The user corresponds to an email address. In our case, that’s the Debian mailing list for the AppArmor Packaging Team.
Here is a list of user tags we defined and detailed instructions on how to set these tags. And here is a list of all bugs which have already been tagged with keywords for the Debian AppArmor Packaging Team.
Unfortunately, Debian’s BTS does not – yet – provide a means to receive a notification everytime a bug is usertagged. That is why I needed to report a so called wishlist bug against the bugs.debian.org package (it’s not really a package, but simply a pseudo package so one can report bugs against it).
In the meantime, I will need to query the Debian’s Ultimate Database (UDD) in order to receive these notifications.
For newcomers, it’s quite hard to understand where to request or submit bugs, patches, modifications for Debian packages.This post shall hilight a little bit how the Debian Bug Tracking System works, and how we track AppArmor related bugs there.
In Debian, nearly everything is documented somewhere. One simply needs to find the information.
On the Debian package tracking system, one can always find links to the corresponding Git repository for a package as well as links to the bugs affecting a package, see for example the apparmor-profiles-extra package page (Git, bugs). This package contains various AppArmor profiles which have not yet been included within the software package they are supposed to confine.
The Debian Bug Tracking System (BTS) is package-centric. That means, that you can file bugs only against a package. There are also pseudo-packages, like wnpp. wnpp stands for “work needing and prospective packages”. This is where people file RFP (Request For Packaging) and ITP (Intent To Package) bugs.
How does one file a bug?
The Debian BTS is email based. That means, that you need to file or reply to bugs using an email client.
There is a great interactive tool, which can be used either from the command line: reportbug or from the graphical interface. reportbug will guide you through the process of sending a bug to the BTS, while formatting your bug report correctly and providing some information about your operating system and versions of installed packages.
How can we track bugs related to AppArmor?
How can we track bugs in packages which might be related to AppArmor, for example, due to a buggy AppAmor profile?
As already mentioned on this blog, there is a great feature on that BTS. It’s called a usertag. Basically, usertagging a bug means, to add a user’s email address and a specific tag to a bug number. Like that, one can mark a bug, for example in the auditd package, which thus becomes visible to the Debian AppArmor Team.
The only problem with usertags is that one should define them first, in order to be able to keep track.
We defined some usertags together, which rely on our User Story scenarios.
You can find all tags and their descriptions in our documentation: how to report a bug involving AppArmor in Debian?