From 5f7abf3defbe15761ea57569a5b9c9f956e566f3 Mon Sep 17 00:00:00 2001 From: Tim Orling Date: Tue, 31 Mar 2020 18:48:54 +0000 Subject: install-buildtools: bump default to yocto-3.1_M3, fixes Add ability to check md5sum (yocto-3.1_M2 and before) or sha256 (yocto-3.1_M3 and beyond). Make regex for path in checksum file optional, since for yocto-3.1_M3 the format is , but prior releases was Signed-off-by: Tim Orling --- scripts/install-buildtools | 51 +++++++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 21 deletions(-) (limited to 'scripts/install-buildtools') diff --git a/scripts/install-buildtools b/scripts/install-buildtools index 49cab1345a..92fb1eb7d2 100755 --- a/scripts/install-buildtools +++ b/scripts/install-buildtools @@ -11,14 +11,14 @@ # Example usage (extended buildtools from milestone): # (1) using --url and --filename # $ install-buildtools \ -# --url http://downloads.yoctoproject.org/releases/yocto/milestones/yocto-3.1_M2/buildtools \ -# --filename x86_64-buildtools-extended-nativesdk-standalone-3.0+snapshot-20200122.sh +# --url http://downloads.yoctoproject.org/releases/yocto/milestones/yocto-3.1_M3/buildtools \ +# --filename x86_64-buildtools-extended-nativesdk-standalone-3.0+snapshot-20200315.sh # (2) using --base-url, --release, --installer-version and --build-date # $ install-buildtools \ # --base-url http://downloads.yoctoproject.org/releases/yocto \ -# --release yocto-3.1_M2 \ +# --release yocto-3.1_M3 \ # --installer-version 3.0+snapshot -# --build-date 202000122 +# --build-date 202000315 # # Example usage (standard buildtools from release): # (3) using --url and --filename @@ -61,9 +61,9 @@ logger = scriptutils.logger_create(PROGNAME, stream=sys.stdout) DEFAULT_INSTALL_DIR: str = os.path.join(os.path.split(scripts_path)[0],'buildtools') DEFAULT_BASE_URL: str = 'http://downloads.yoctoproject.org/releases/yocto' -DEFAULT_RELEASE: str = 'yocto-3.1_M2' +DEFAULT_RELEASE: str = 'yocto-3.1_M3' DEFAULT_INSTALLER_VERSION: str = '3.0+snapshot' -DEFAULT_BUILDDATE: str = "20200122" +DEFAULT_BUILDDATE: str = "20200315" def main(): @@ -189,31 +189,40 @@ def main(): if args.check: import bb logger.info("Fetching buildtools installer checksum") - check_url = "{}.md5sum".format(buildtools_url) - checksum_filename = "%s.md5sum" % filename - tmpbuildtools_checksum = os.path.join(tmpsdk_dir, checksum_filename) - ret = subprocess.call("wget -q -O %s %s" % - (tmpbuildtools_checksum, check_url), shell=True) - if ret != 0: - logger.error("Could not download file from %s" % check_url) - return ret - regex = re.compile(r"^(?P[0-9a-f]+)\s\s(?P.*/)(?P.*)$") + checksum_type = "" + for checksum_type in ["md5sum", "sha256"]: + check_url = "{}.{}".format(buildtools_url, checksum_type) + checksum_filename = "{}.{}".format(filename, checksum_type) + tmpbuildtools_checksum = os.path.join(tmpsdk_dir, checksum_filename) + ret = subprocess.call("wget -q -O %s %s" % + (tmpbuildtools_checksum, check_url), shell=True) + if ret == 0: + break + else: + if ret != 0: + logger.error("Could not download file from %s" % check_url) + return ret + regex = re.compile(r"^(?P[0-9a-f]+)\s\s(?P.*/)?(?P.*)$") with open(tmpbuildtools_checksum, 'rb') as f: original = f.read() m = re.search(regex, original.decode("utf-8")) - logger.debug("md5sum: %s" % m.group('md5sum')) + logger.debug("checksum regex match: %s" % m) + logger.debug("checksum: %s" % m.group('checksum')) logger.debug("path: %s" % m.group('path')) logger.debug("filename: %s" % m.group('filename')) if filename != m.group('filename'): logger.error("Filename does not match name in checksum") return 1 - md5sum = m.group('md5sum') - md5value = bb.utils.md5_file(tmpbuildtools) - if md5sum == md5value: - logger.info("Checksum success") + checksum = m.group('checksum') + if checksum_type == "md5sum": + checksum_value = bb.utils.md5_file(tmpbuildtools) + else: + checksum_value = bb.utils.sha256_file(tmpbuildtools) + if checksum == checksum_value: + logger.info("Checksum success") else: logger.error("Checksum %s expected. Actual checksum is %s." % - (md5sum, md5value)) + (checksum, checksum_value)) # Make installer executable logger.info("Making installer executable") -- cgit 1.2.3-korg