All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/1] contrib/dump_cache.py: dump recipe -> packages mapping from bb_cache.dat
@ 2012-08-01  7:18 Robert Yang
  2012-08-01  7:18 ` [PATCH 1/1] " Robert Yang
  0 siblings, 1 reply; 2+ messages in thread
From: Robert Yang @ 2012-08-01  7:18 UTC (permalink / raw)
  To: bitbake-devel; +Cc: Zhenfeng.Zhao

The following changes since commit 3309cf42d314f0a26079a11836c6b9b9bb5f253e:

  package_rpm.bbclass: Accomodate dash when using arrays (2012-07-31 12:22:10 +0100)

are available in the git repository at:

  git://git.pokylinux.org/poky-contrib robert/dump_cache
  http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=robert/dump_cache

Robert Yang (1):
  contrib/dump_cache.py: dump recipe -> packages mapping from bb_cache.dat

 bitbake/contrib/dump_cache.py |   68 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)
 create mode 100755 bitbake/contrib/dump_cache.py

-- 
1.7.10.4




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

* [PATCH 1/1] contrib/dump_cache.py: dump recipe -> packages mapping from bb_cache.dat
  2012-08-01  7:18 [PATCH 0/1] contrib/dump_cache.py: dump recipe -> packages mapping from bb_cache.dat Robert Yang
@ 2012-08-01  7:18 ` Robert Yang
  0 siblings, 0 replies; 2+ messages in thread
From: Robert Yang @ 2012-08-01  7:18 UTC (permalink / raw)
  To: bitbake-devel; +Cc: Zhenfeng.Zhao

Add the dump_cache.py to dump the "recipe -> packages" mapping for
target recipes form bb_cache.dat:

* Usage:
  dump_cache.py bb_cache.dat

* The format is:
    recipe_path pn pv packages
  For example:
    /path/to/gzip_1.5.bb gzip 1.5 gzip-dbg gzip-staticdev gzip-dev gzip-doc gzip-locale gzip

* Only save the mapping for the target recipe

* We can extend this to dump other informations when needed.

* Put this script to bitbake/contrib/ (not to oe-core) is because it
  needs the bb.cache.

[YOCTO #2741]

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
 bitbake/contrib/dump_cache.py |   68 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)
 create mode 100755 bitbake/contrib/dump_cache.py

diff --git a/bitbake/contrib/dump_cache.py b/bitbake/contrib/dump_cache.py
new file mode 100755
index 0000000..e1f2309
--- /dev/null
+++ b/bitbake/contrib/dump_cache.py
@@ -0,0 +1,68 @@
+#!/usr/bin/env python
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+#
+# Copyright (C) 2012 Wind River Systems, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+#
+# This is used for dumping the bb_cache.dat, the output format is:
+# recipe_path PN PV PACKAGES
+#
+import os
+import sys
+import warnings
+
+# For importing bb.cache
+sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])), '../lib'))
+from bb.cache import CoreRecipeInfo
+
+import cPickle as pickle
+
+def main(argv=None):
+    """
+    Get the mapping for the target recipe.
+    """
+    if len(argv) != 1:
+        print >>sys.stderr, "Error, need one argument!"
+        return 2
+
+    cachefile = argv[0]
+
+    with open(cachefile, "rb") as cachefile:
+        pickled = pickle.Unpickler(cachefile)
+        while cachefile:
+            try:
+                key = pickled.load()
+                val = pickled.load()
+            except Exception:
+                break
+            if isinstance(val, CoreRecipeInfo) and (not val.skipped):
+                pn = val.pn
+                # Filter out the native recipes.
+                if key.startswith('virtual:native:') or pn.endswith("-native"):
+                    continue
+
+                # 1.0 is the default version for a no PV recipe.
+                if val.__dict__.has_key("pv"):
+                    pv = val.pv
+                else:
+                    pv = "1.0"
+
+                print("%s %s %s %s" % (key, pn, pv, ' '.join(val.packages)))
+
+if __name__ == "__main__":
+    sys.exit(main(sys.argv[1:]))
+
-- 
1.7.10.4




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

end of thread, other threads:[~2012-08-01  7:24 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-01  7:18 [PATCH 0/1] contrib/dump_cache.py: dump recipe -> packages mapping from bb_cache.dat Robert Yang
2012-08-01  7:18 ` [PATCH 1/1] " Robert Yang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.