← Back to team overview

apport-hackers team mailing list archive

[Merge] lp:~brian-murray/apport/bug-1500557 into lp:apport

 

Brian Murray has proposed merging lp:~brian-murray/apport/bug-1500557 into lp:apport.

Requested reviews:
  Apport upstream developers (apport-hackers)
Related bugs:
  Bug #1500557 in Apport: "Packages file(s)? for wily out of date"
  https://bugs.launchpad.net/apport/+bug/1500557

For more details, see:
https://code.launchpad.net/~brian-murray/apport/bug-1500557/+merge/272852

In the event that we can't find a -dbgsym version of a package in the apt cache, which could happen if the Packages file is out of date on the server, we should check Launchpad to see if we can find it there.
-- 
Your team Apport upstream developers is requested to review the proposed merge of lp:~brian-murray/apport/bug-1500557 into lp:apport.
=== modified file 'backends/packaging-apt-dpkg.py'
--- backends/packaging-apt-dpkg.py	2015-07-15 18:42:32 +0000
+++ backends/packaging-apt-dpkg.py	2015-09-29 21:42:16 +0000
@@ -940,11 +940,11 @@
                                     pass
                             real_pkgs.add(p)
                     else:
+                        pkg_found = False
+                        dbgsym_pkg = pkg + '-dbgsym'
                         try:
-                            dbgsym_pkg = pkg + '-dbgsym'
                             dbgsym = cache[dbgsym_pkg]
                             real_pkgs.add(dbgsym_pkg)
-                            pkg_found = False
                             # prefer the version requested
                             if ver:
                                 try:
@@ -967,7 +967,19 @@
                                     obsolete += 'outdated debug symbol package for %s: package version %s dbgsym version %s\n' % (
                                         pkg, candidate.version, dbgsym.candidate.version)
                         except KeyError:
-                            obsolete += 'no debug symbol package found for %s\n' % pkg
+                            if ver:
+                                (lp_url, sha1sum) = self.get_lp_binary_package(self.get_distro_name(),
+                                                                               dbgsym_pkg, ver, architecture)
+                                if lp_url:
+                                    real_pkgs.add(dbgsym_pkg)
+                                    acquire_queue.append(apt.apt_pkg.AcquireFile(fetcher,
+                                                                                 lp_url,
+                                                                                 hash="sha1:%s" % sha1sum,
+                                                                                 destdir=archivedir))
+                                    lp_cache[dbgsym_pkg] = ver
+                                    pkg_found = True
+                            if not pkg_found:
+                                obsolete += 'no debug symbol package found for %s\n' % pkg
 
         # unpack packages, weed out the ones that are already installed (for
         # permanent sandboxes)