summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Agner <stefan.agner@toradex.com>2020-05-07 09:48:10 +0000
committerStefan Agner <stefan.agner@toradex.com>2020-09-07 14:26:21 +0000
commit35fd1b9ead35b45a590b0a478f9ca11512d05921 (patch)
tree98ff8b6fcf52a7e3d4f828cb7962b95dd2977ffc
parentf80b1846113635ec84177f0020efab02f6679d1a (diff)
uprev-srcrev: add Toradex specific script to uprev all recipes
Create a Toradex specific script which loops through all recipes using AUTOREV and updates them to the current git hash. Related-to: AUT-355 Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
-rwxr-xr-xscripts/uprev-srcrev76
1 files changed, 76 insertions, 0 deletions
diff --git a/scripts/uprev-srcrev b/scripts/uprev-srcrev
new file mode 100755
index 0000000..782af69
--- /dev/null
+++ b/scripts/uprev-srcrev
@@ -0,0 +1,76 @@
+#!/usr/bin/env python3
+#
+# Tool to update Toradex recipes using AUTOREV
+#
+# Copyright (c) 2020, Toradex
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+import os
+import sys
+import argparse
+import logging
+import subprocess
+script_path = os.path.dirname(os.path.realpath(__file__))
+lib_path = os.path.join(script_path, '../../openembedded-core/scripts/lib')
+sys.path = sys.path + [lib_path]
+import argparse_oe
+import scriptutils
+
+logger = scriptutils.logger_create('uprev-srcrev')
+
+recipes = [
+ "../layers/meta-toradex-bsp-common/recipes-kernel/backports/backports_5.4.bb",
+ "../layers/meta-toradex-bsp-common/recipes-kernel/linux/linux-toradex-mainline_5.4.bb",
+ "../layers/meta-toradex-bsp-common/recipes-kernel/linux/device-tree-overlays-mainline_git.bb",
+ "../layers/meta-toradex-nxp/recipes-kernel/linux/linux-toradex_5.4-2.1.x.bb",
+ "../layers/meta-toradex-nxp/recipes-kernel/linux/device-tree-overlays_git.bb",
+ "../layers/meta-toradex-nxp/recipes-bsp/u-boot/u-boot-toradex_2020.04.bb",
+ "../layers/meta-toradex-nxp/recipes-bsp/u-boot/u-boot-toradex_2020.07.bb",
+ "../layers/meta-toradex-tegra/recipes-bsp/u-boot/u-boot-toradex-tk1_2019.07.bb",
+ ]
+
+def uprev_recipe(args, env, recipe):
+
+ try:
+ result = subprocess.run(
+ 'recipetool updatesrcrev {}'.format(recipe),
+ stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
+ env=env, universal_newlines=True,
+ shell=True)
+ if not args.quiet:
+ print(result.stdout)
+ except subprocess.CalledProcessError as e:
+ print('ERROR: recipetool failed:\n%s' % e.output.decode('utf-8'))
+ return e.returncode
+
+
+def uprev(args):
+ env = os.environ.copy()
+ env['BB_SRCREV_POLICY'] = "cache"
+ for recipe in recipes:
+ logger.info('Processing recipe {}'.format(recipe))
+ uprev_recipe(args, env, recipe)
+
+def main():
+ parser = argparse_oe.ArgumentParser(description='SRCREV uprev tool.')
+
+ parser.add_argument('-d', '--debug', help='enable debug output', action='store_true')
+ parser.add_argument('-q', '--quiet', help='print only errors', action='store_true')
+
+ parser.set_defaults(func=uprev)
+
+ args = parser.parse_args()
+
+ if args.debug:
+ logger.setLevel(logging.DEBUG)
+ elif args.quiet:
+ logger.setLevel(logging.ERROR)
+
+ ret = args.func(args)
+
+ return ret
+
+if __name__ == "__main__":
+ sys.exit(main())