mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00
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> (From OE-Core rev: cb1c98f38755b8340140125064c21e407f39db74) Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
3783313700
commit
4787c97874
|
@ -11,14 +11,14 @@
|
||||||
# Example usage (extended buildtools from milestone):
|
# Example usage (extended buildtools from milestone):
|
||||||
# (1) using --url and --filename
|
# (1) using --url and --filename
|
||||||
# $ install-buildtools \
|
# $ install-buildtools \
|
||||||
# --url http://downloads.yoctoproject.org/releases/yocto/milestones/yocto-3.1_M2/buildtools \
|
# --url http://downloads.yoctoproject.org/releases/yocto/milestones/yocto-3.1_M3/buildtools \
|
||||||
# --filename x86_64-buildtools-extended-nativesdk-standalone-3.0+snapshot-20200122.sh
|
# --filename x86_64-buildtools-extended-nativesdk-standalone-3.0+snapshot-20200315.sh
|
||||||
# (2) using --base-url, --release, --installer-version and --build-date
|
# (2) using --base-url, --release, --installer-version and --build-date
|
||||||
# $ install-buildtools \
|
# $ install-buildtools \
|
||||||
# --base-url http://downloads.yoctoproject.org/releases/yocto \
|
# --base-url http://downloads.yoctoproject.org/releases/yocto \
|
||||||
# --release yocto-3.1_M2 \
|
# --release yocto-3.1_M3 \
|
||||||
# --installer-version 3.0+snapshot
|
# --installer-version 3.0+snapshot
|
||||||
# --build-date 202000122
|
# --build-date 202000315
|
||||||
#
|
#
|
||||||
# Example usage (standard buildtools from release):
|
# Example usage (standard buildtools from release):
|
||||||
# (3) using --url and --filename
|
# (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_INSTALL_DIR: str = os.path.join(os.path.split(scripts_path)[0],'buildtools')
|
||||||
DEFAULT_BASE_URL: str = 'http://downloads.yoctoproject.org/releases/yocto'
|
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_INSTALLER_VERSION: str = '3.0+snapshot'
|
||||||
DEFAULT_BUILDDATE: str = "20200122"
|
DEFAULT_BUILDDATE: str = "20200315"
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
@ -189,31 +189,40 @@ def main():
|
||||||
if args.check:
|
if args.check:
|
||||||
import bb
|
import bb
|
||||||
logger.info("Fetching buildtools installer checksum")
|
logger.info("Fetching buildtools installer checksum")
|
||||||
check_url = "{}.md5sum".format(buildtools_url)
|
checksum_type = ""
|
||||||
checksum_filename = "%s.md5sum" % filename
|
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)
|
tmpbuildtools_checksum = os.path.join(tmpsdk_dir, checksum_filename)
|
||||||
ret = subprocess.call("wget -q -O %s %s" %
|
ret = subprocess.call("wget -q -O %s %s" %
|
||||||
(tmpbuildtools_checksum, check_url), shell=True)
|
(tmpbuildtools_checksum, check_url), shell=True)
|
||||||
|
if ret == 0:
|
||||||
|
break
|
||||||
|
else:
|
||||||
if ret != 0:
|
if ret != 0:
|
||||||
logger.error("Could not download file from %s" % check_url)
|
logger.error("Could not download file from %s" % check_url)
|
||||||
return ret
|
return ret
|
||||||
regex = re.compile(r"^(?P<md5sum>[0-9a-f]+)\s\s(?P<path>.*/)(?P<filename>.*)$")
|
regex = re.compile(r"^(?P<checksum>[0-9a-f]+)\s\s(?P<path>.*/)?(?P<filename>.*)$")
|
||||||
with open(tmpbuildtools_checksum, 'rb') as f:
|
with open(tmpbuildtools_checksum, 'rb') as f:
|
||||||
original = f.read()
|
original = f.read()
|
||||||
m = re.search(regex, original.decode("utf-8"))
|
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("path: %s" % m.group('path'))
|
||||||
logger.debug("filename: %s" % m.group('filename'))
|
logger.debug("filename: %s" % m.group('filename'))
|
||||||
if filename != m.group('filename'):
|
if filename != m.group('filename'):
|
||||||
logger.error("Filename does not match name in checksum")
|
logger.error("Filename does not match name in checksum")
|
||||||
return 1
|
return 1
|
||||||
md5sum = m.group('md5sum')
|
checksum = m.group('checksum')
|
||||||
md5value = bb.utils.md5_file(tmpbuildtools)
|
if checksum_type == "md5sum":
|
||||||
if md5sum == md5value:
|
checksum_value = bb.utils.md5_file(tmpbuildtools)
|
||||||
|
else:
|
||||||
|
checksum_value = bb.utils.sha256_file(tmpbuildtools)
|
||||||
|
if checksum == checksum_value:
|
||||||
logger.info("Checksum success")
|
logger.info("Checksum success")
|
||||||
else:
|
else:
|
||||||
logger.error("Checksum %s expected. Actual checksum is %s." %
|
logger.error("Checksum %s expected. Actual checksum is %s." %
|
||||||
(md5sum, md5value))
|
(checksum, checksum_value))
|
||||||
|
|
||||||
# Make installer executable
|
# Make installer executable
|
||||||
logger.info("Making installer executable")
|
logger.info("Making installer executable")
|
||||||
|
|
Loading…
Reference in New Issue
Block a user