summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorMartin Jansa <martin.jansa@gmail.com>2013-08-15 18:04:35 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-08-16 11:44:16 +0100
commit855b3252d968e7bb93b4b318b7a26336dd8ea375 (patch)
tree96844e624521099806b340e18d79628b0c70eaad /scripts
parent23575b4fdbeafcbd688d169775e6ca9aa51515b7 (diff)
downloadast2050-yocto-poky-855b3252d968e7bb93b4b318b7a26336dd8ea375.zip
ast2050-yocto-poky-855b3252d968e7bb93b4b318b7a26336dd8ea375.tar.gz
classes/buildhistory: record size of installed package not compressed archive
* usually it's more important to know how much space will each package take on target device then size of compressed package * example for libewebkit0 with 4 different architectures, interesting that om_gta02 .ipk is bigger but it's smaller when installed before: MACHINE DEFAULTTUNE SIZE (.ipk file) om_gta04 cortexa8t-neon 15996 KiB libewebkit0 qemux86_64 x86-64 16992 KiB libewebkit0 spitz xscale 16148 KiB libewebkit0 om_gta02 arm920t 16260 KiB libewebkit0 after: MACHINE DEFAULTTUNE SIZE (installed) om_gta04 cortexa8t-neon 60544 KiB libewebkit0 qemux86_64 x86-64 63720 KiB libewebkit0 spitz xscale 60588 KiB libewebkit0 om_gta02 arm920t 56268 KiB libewebkit0 (From OE-Core rev: 85e4a77138381a6086d5ebd3a28cb5a94bc26a19) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/oe-pkgdata-util59
-rwxr-xr-xscripts/opkg-query-helper.py2
2 files changed, 56 insertions, 5 deletions
diff --git a/scripts/oe-pkgdata-util b/scripts/oe-pkgdata-util
index 629b2d5..c63f87d 100755
--- a/scripts/oe-pkgdata-util
+++ b/scripts/oe-pkgdata-util
@@ -20,9 +20,12 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
#
-# Currently only has one function - mapping of packages to their dev/dbg/doc/locale etc.
-# counterparts ("glob" command). Could be extended in future to perform other useful querying
-# functions on the pkgdata though.
+# Currently only has two functions:
+# 1) glob - mapping of packages to their dev/dbg/doc/locale etc. counterparts.
+# 2) read-value - mapping of packagenames to their location in
+# pkgdata and then returns value of selected variable (e.g. PKGSIZE)
+# Could be extended in future to perform other useful querying functions on the
+# pkgdata though.
#
import sys
@@ -32,7 +35,8 @@ import fnmatch
import re
def usage():
- print("syntax: pkgdata-util glob [-d] <pkgdatadir> <vendor-os> <pkglist> \"<globs>\"");
+ print("syntax: oe-pkgdata-util glob [-d] <pkgdatadir> <vendor-os> <pkglist> \"<globs>\"\n \
+ read-value [-d] <pkgdatadir> <vendor-os> <value-name> \"<package-name>_<package_architecture>\"");
@@ -151,7 +155,52 @@ def glob(args):
print("\n".join(mappedpkgs))
+def read_value(args):
+ if len(args) < 4:
+ usage()
+ sys.exit(1)
+
+ pkgdata_dir = args[0]
+ target_suffix = args[1]
+ var = args[2]
+ packages = args[3].split()
+ if target_suffix.startswith("-"):
+ target_suffix = target_suffix[1:]
+
+ def readvar(pkgdata_file, var):
+ val = ""
+ with open(pkgdata_file, 'r') as f:
+ for line in f:
+ if line.startswith(var + ":"):
+ val = line.split(': ')[1].rstrip()
+ return val
+
+ if debug:
+ print "read-value('%s', '%s', '%s' '%s'" % (pkgdata_dir, target_suffix, var, packages)
+ for package in packages:
+ pkg_split = package.split('_')
+ pkg_name = pkg_split[0]
+ pkg_arch = '_'.join(pkg_split[1:])
+ if debug:
+ print "package: name: '%s', arch: '%s'" % (pkg_name, pkg_arch)
+ multimach_target_sys = "%s-%s" % (pkg_arch, target_suffix)
+ revlink = os.path.join(pkgdata_dir, multimach_target_sys, "runtime-reverse", pkg_name)
+ if debug:
+ print(revlink)
+ if not os.path.exists(revlink):
+ # [YOCTO #4227] try to drop -gnueabi from TARGET_OS
+ multimach_target_sys = '-'.join(multimach_target_sys.split('-')[:-1])
+ revlink = os.path.join(pkgdata_dir, multimach_target_sys, "runtime-reverse", pkg_name)
+ if debug:
+ print(revlink)
+ if os.path.exists(revlink):
+ mappedpkg = os.path.basename(os.readlink(revlink))
+ qvar = var
+ if qvar == "PKGSIZE":
+ # append packagename
+ qvar = "%s_%s" % (var, mappedpkg)
+ print(readvar(revlink, qvar))
# Too lazy to use getopt
debug = False
@@ -173,6 +222,8 @@ if len(args) < 1:
if args[0] == "glob":
glob(args[1:])
+elif args[0] == "read-value":
+ read_value(args[1:])
else:
usage()
sys.exit(1)
diff --git a/scripts/opkg-query-helper.py b/scripts/opkg-query-helper.py
index b52284b..fa6c44f 100755
--- a/scripts/opkg-query-helper.py
+++ b/scripts/opkg-query-helper.py
@@ -59,7 +59,7 @@ for line in fileinput.input(args):
ver = line.split(": ")[1]
elif line.startswith("Architecture:"):
arch = line.split(": ")[1]
- print("%s %s_%s_%s.ipk" % (pkg,pkg,ver,arch))
+ print("%s %s_%s_%s.ipk %s" % (pkg,pkg,ver,arch,arch))
else:
if line.startswith("Depends:"):
depval = line.split(": ")[1]
OpenPOWER on IntegriCloud