Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 0/2] dbg/dev package dependency improvements
@ 2012-07-26 14:34 Paul Eggleton
  2012-07-26 14:34 ` [PATCH 1/2] classes/package: do not add self-dependencies to dev/dbg packages Paul Eggleton
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Paul Eggleton @ 2012-07-26 14:34 UTC (permalink / raw)
  To: openembedded-core

The following changes since commit 14b70cd222519e5bccaca955334787f123d9fc54:

  base/perlnative/pythonnative/gzipnative: Add a new variable to enable easier handling of native path issues (2012-07-26 14:55:35 +0100)

are available in the git repository at:

  git://git.openembedded.org/openembedded-core-contrib paule/dbgdeps
  http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/dbgdeps

Paul Eggleton (2):
  classes/package: do not add self-dependencies to dev/dbg packages
  classes/package: reduce dbg package dependencies

 meta/classes/package.bbclass |   36 +++++++++++++++++++++++++++++-------
 meta/classes/task.bbclass    |    3 +++
 2 files changed, 32 insertions(+), 7 deletions(-)

-- 
1.7.9.5




^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/2] classes/package: do not add self-dependencies to dev/dbg packages
  2012-07-26 14:34 [PATCH 0/2] dbg/dev package dependency improvements Paul Eggleton
@ 2012-07-26 14:34 ` Paul Eggleton
  2012-07-26 14:35 ` [PATCH 2/2] classes/package: reduce dbg package dependencies Paul Eggleton
  2012-07-29  9:29 ` [PATCH 0/2] dbg/dev package dependency improvements Richard Purdie
  2 siblings, 0 replies; 4+ messages in thread
From: Paul Eggleton @ 2012-07-26 14:34 UTC (permalink / raw)
  To: openembedded-core

Avoid adding dependencies to dev and dbg packages on themselves via the
DEPCHAIN_* handling code. These don't actually cause any problems, but
they do complicate dependency graphs.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
 meta/classes/package.bbclass |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index ea199d3..962abcd 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1629,7 +1629,7 @@ python package_depchains() {
                 depend = depend.replace('-dbg', '')
             pkgname = getname(depend, suffix)
             #bb.note("Adding %s for %s" % (pkgname, depend))
-            if pkgname not in rreclist:
+            if pkgname not in rreclist and pkgname != pkg:
                 rreclist[pkgname] = ""
 
         #bb.note('setting: RRECOMMENDS_%s=%s' % (pkg, ' '.join(rreclist)))
@@ -1650,7 +1650,7 @@ python package_depchains() {
                 depend = depend.replace('-dbg', '')
             pkgname = getname(depend, suffix)
             #bb.note("Adding %s for %s" % (pkgname, depend))
-            if pkgname not in rreclist:
+            if pkgname not in rreclist and pkgname != pkg:
                 rreclist[pkgname] = ""
 
         #bb.note('setting: RRECOMMENDS_%s=%s' % (pkg, ' '.join(rreclist)))
-- 
1.7.9.5




^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] classes/package: reduce dbg package dependencies
  2012-07-26 14:34 [PATCH 0/2] dbg/dev package dependency improvements Paul Eggleton
  2012-07-26 14:34 ` [PATCH 1/2] classes/package: do not add self-dependencies to dev/dbg packages Paul Eggleton
@ 2012-07-26 14:35 ` Paul Eggleton
  2012-07-29  9:29 ` [PATCH 0/2] dbg/dev package dependency improvements Richard Purdie
  2 siblings, 0 replies; 4+ messages in thread
From: Paul Eggleton @ 2012-07-26 14:35 UTC (permalink / raw)
  To: openembedded-core

Make dbg package dependencies added via DEPCHAIN_POST less aggressive -
only add dependencies on dbg packages for shared library dependencies.
This avoids dragging in extraneous packages (such as eglibc-dbg forcing
bash-dbg to be installed) whilst preserving the ability to easily debug
into shared libraries in use by an application by just requesting the
installation of the single dbg package for that application.

For task recipes however we preserve the previous behaviour, since when
you install task-xxx-dbg you expect the dbg packages for every package
in the task to be installed. Unfortunately not all of our tasks inherit
from task.bbclass so we just use a name match - this should be tidied up
later.

Fixes [YOCTO #2599].

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
 meta/classes/package.bbclass |   32 +++++++++++++++++++++++++++-----
 meta/classes/task.bbclass    |    3 +++
 2 files changed, 30 insertions(+), 5 deletions(-)

diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 962abcd..efb03f8 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1580,19 +1580,28 @@ python package_do_pkgconfig () {
     bb.utils.unlockfile(lf)
 }
 
-python read_shlibdeps () {
+def read_libdep_files(d):
+    pkglibdeps = {}
     packages = d.getVar('PACKAGES', True).split()
     for pkg in packages:
-        rdepends = bb.utils.explode_dep_versions(d.getVar('RDEPENDS_' + pkg, False) or d.getVar('RDEPENDS', False) or "")
-
+        pkglibdeps[pkg] = []
         for extension in ".shlibdeps", ".pcdeps", ".clilibdeps":
             depsfile = d.expand("${PKGDEST}/" + pkg + extension)
             if os.access(depsfile, os.R_OK):
                 fd = file(depsfile)
                 lines = fd.readlines()
                 fd.close()
-                for l in lines:
-                    rdepends[l.rstrip()] = ""
+                pkglibdeps[pkg].extend([l.rstrip() for l in lines])
+    return pkglibdeps
+
+python read_shlibdeps () {
+    pkglibdeps = read_libdep_files(d)
+
+    packages = d.getVar('PACKAGES', True).split()
+    for pkg in packages:
+        rdepends = bb.utils.explode_dep_versions(d.getVar('RDEPENDS_' + pkg, False) or d.getVar('RDEPENDS', False) or "")
+        for dep in pkglibdeps[pkg]:
+            rdepends[dep] = ""
         d.setVar('RDEPENDS_' + pkg, bb.utils.join_deps(rdepends, commasep=False))
 }
 
@@ -1694,6 +1703,15 @@ python package_depchains() {
                     pkgs[prefix] = {}
                 pkgs[prefix][pkg] = (pkg[:-len(prefix)], pre_getname)
 
+    if "-dbg" in pkgs:
+        pkglibdeps = read_libdep_files(d)
+        pkglibdeplist = []
+        for pkg in pkglibdeps:
+            for dep in pkglibdeps[pkg]:
+                add_dep(pkglibdeplist, dep)
+        # FIXME this should not look at PN once all task recipes inherit from task.bbclass
+        dbgdefaultdeps = ((d.getVar('DEPCHAIN_DBGDEFAULTDEPS', True) == '1') or (d.getVar('PN', True) or '').startswith('task-'))
+
     for suffix in pkgs:
         for pkg in pkgs[suffix]:
             if d.getVarFlag('RRECOMMENDS_' + pkg, 'nodeprrecs'):
@@ -1701,6 +1719,10 @@ python package_depchains() {
             (base, func) = pkgs[suffix][pkg]
             if suffix == "-dev":
                 pkg_adddeprrecs(pkg, base, suffix, func, depends, d)
+            elif suffix == "-dbg":
+                if not dbgdefaultdeps:
+                    pkg_addrrecs(pkg, base, suffix, func, pkglibdeplist, d)
+                    continue
             if len(pkgs[suffix]) == 1:
                 pkg_addrrecs(pkg, base, suffix, func, rdepends, d)
             else:
diff --git a/meta/classes/task.bbclass b/meta/classes/task.bbclass
index 22c2fd3..6ec154a 100644
--- a/meta/classes/task.bbclass
+++ b/meta/classes/task.bbclass
@@ -25,3 +25,6 @@ python () {
     d.setVar('PACKAGES', ' '.join(packages+genpackages))
 }
 
+# We don't want to look at shared library dependencies for the
+# dbg packages
+DEPCHAIN_DBGDEFAULTDEPS = "1"
-- 
1.7.9.5




^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 0/2] dbg/dev package dependency improvements
  2012-07-26 14:34 [PATCH 0/2] dbg/dev package dependency improvements Paul Eggleton
  2012-07-26 14:34 ` [PATCH 1/2] classes/package: do not add self-dependencies to dev/dbg packages Paul Eggleton
  2012-07-26 14:35 ` [PATCH 2/2] classes/package: reduce dbg package dependencies Paul Eggleton
@ 2012-07-29  9:29 ` Richard Purdie
  2 siblings, 0 replies; 4+ messages in thread
From: Richard Purdie @ 2012-07-29  9:29 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Thu, 2012-07-26 at 15:34 +0100, Paul Eggleton wrote:
> The following changes since commit 14b70cd222519e5bccaca955334787f123d9fc54:
> 
>   base/perlnative/pythonnative/gzipnative: Add a new variable to enable easier handling of native path issues (2012-07-26 14:55:35 +0100)
> 
> are available in the git repository at:
> 
>   git://git.openembedded.org/openembedded-core-contrib paule/dbgdeps
>   http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/dbgdeps
> 
> Paul Eggleton (2):
>   classes/package: do not add self-dependencies to dev/dbg packages
>   classes/package: reduce dbg package dependencies


Merged to master, thanks.

Richard




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-07-29  9:41 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-26 14:34 [PATCH 0/2] dbg/dev package dependency improvements Paul Eggleton
2012-07-26 14:34 ` [PATCH 1/2] classes/package: do not add self-dependencies to dev/dbg packages Paul Eggleton
2012-07-26 14:35 ` [PATCH 2/2] classes/package: reduce dbg package dependencies Paul Eggleton
2012-07-29  9:29 ` [PATCH 0/2] dbg/dev package dependency improvements Richard Purdie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox