diff options
author | Tim Orling <timothy.t.orling@linux.intel.com> | 2020-03-31 13:03:06 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-04-01 11:43:59 +0100 |
commit | cb1c98f38755b8340140125064c21e407f39db74 (patch) | |
tree | 6a87ea6a02c849b844aee74b714046241a3eec0a /scripts/install-buildtools | |
parent | 3bb3b9cbad82b2f09386153226d1d4e769b7347b (diff) | |
download | openembedded-core-contrib-cb1c98f38755b8340140125064c21e407f39db74.tar.gz |
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 <checksum> <filename>,
but prior releases was <checksum> <path><filename>
Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/install-buildtools')
-rwxr-xr-x | scripts/install-buildtools | 51 |
1 files changed, 30 insertions, 21 deletions
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<md5sum>[0-9a-f]+)\s\s(?P<path>.*/)(?P<filename>.*)$") + 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<checksum>[0-9a-f]+)\s\s(?P<path>.*/)?(?P<filename>.*)$") 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") |