diff options
Diffstat (limited to 'meta/classes/package.bbclass')
-rw-r--r-- | meta/classes/package.bbclass | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index 2bae34189d..54f7ae55cf 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -1039,6 +1039,8 @@ python populate_packages () { bb.utils.mkdirhier(outdir) os.chdir(dvar) + + autodebug = not (d.getVar("NOAUTOPACKAGEDEBUG", True) or False) # Sanity check PACKAGES for duplicates # Sanity should be moved to sanity.bbclass once we have the infrastucture @@ -1048,6 +1050,8 @@ python populate_packages () { if pkg in package_list: msg = "%s is listed in PACKAGES multiple times, this leads to packaging errors." % pkg package_qa_handle_error("packages-list", msg, d) + elif autodebug and pkg.endswith("-dbg"): + package_list.insert(0, pkg) else: package_list.append(pkg) d.setVar('PACKAGES', ' '.join(package_list)) @@ -1058,6 +1062,16 @@ python populate_packages () { # os.mkdir masks the permissions with umask so we have to unset it first oldumask = os.umask(0) + debug = [] + for root, dirs, files in cpath.walk(dvar): + dir = root[len(dvar):] + if not dir: + dir = os.sep + for f in (files + dirs): + path = "." + os.path.join(dir, f) + if "/.debug/" in path or path.endswith("/.debug"): + debug.append(path) + for pkg in package_list: root = os.path.join(pkgdest, pkg) bb.utils.mkdirhier(root) @@ -1071,6 +1085,9 @@ python populate_packages () { origfiles = filesvar.split() files = files_from_filevars(origfiles) + if autodebug and pkg.endswith("-dbg"): + files.extend(debug) + for file in files: if (not cpath.islink(file)) and (not cpath.exists(file)): continue |