Comment 5 for bug 1148116

Revision history for this message
Evan (ev) wrote :

Apport checks to see if a package is from a third-party origin so that it can not send it to Launchpad. It does this through setting the UnreportableReason field when is_distro_package returns False, then checking for it in check_unreportable. This latter check happens after a .upload file is created for the report (and whoopsie doesn't send the UnreportableReason field - which is probably a bug, it would be nice to increment counters for these to see what error states people are hitting in apport), and so this functionality wont affect whoopsie sending the report to daisy.

That leaves us with the Package field, and determining the conditions under which it adds '[origin:'. One possibility from looking at the code is that people are manually downloading the deb and installing it. Apt wouldn't have a record for it, and wouldn't add an origin field. Apport in turn wouldn't set the '[origin:' in the report file (apport/report.py:251) and daisy in turn would interpret that as a native package (because a native package doesn't have '[origin:' set either).

There's at least one place referring to it by the deb rather than the PPA:
http://www.webupd8.org/2012/11/pin-notes-on-your-desktop-with.html

So I think what we really want here is the is_distro_package check, not the '[origin:' check a level down. Unfortunately the only place we effectively have that in the report file right now is the UnreportableReason field, which can contain the translated string:
_('This is not an official %s package. Please remove any third party package and try again.')

Perhaps the solution is to add a new field here? I had created an InvalidMachineReason field that was to be a machine-parseable version of the UnreportableReason field in my merge proposal for the grouped reports dialog:

https://code.launchpad.net/~ev/apport/grouped_reports/+merge/144591

Perhaps something along those lines? Best to confer with Martin.

As an aside, do we care if the libraries used come from a third-party? Right now in daisy/submit.py we're checking if just the package comes from a third-party before updating the release:package row in the Counters CF, but we're checking if either the package or any of its dependencies are from a third-party before updating the BucketMetadata CF (where FirstSeen, LastSeen, and Source live).

Thanks for investigating this, Brian.