diff options
author | Marcin Juszkiewicz <hrw@openedhand.com> | 2007-10-17 09:54:00 +0000 |
---|---|---|
committer | Marcin Juszkiewicz <hrw@openedhand.com> | 2007-10-17 09:54:00 +0000 |
commit | 734f511ddb53029172b87ad2a0b0f14798278c23 (patch) | |
tree | e410d0ff3d0ea15b279ace1c97fb3070015bcf12 /meta | |
parent | 2e0dd47363edb912e74f39f590a471cd3fdd99b6 (diff) | |
download | poky-734f511ddb53029172b87ad2a0b0f14798278c23.tar.gz |
base.bbclass: add checksums.ini generator
If file is fetched via HTTP or FTP and we do not have its checksum in
metadata (conf/checksums.ini) then we generate checksums into
TMPDIR/checksums.ini file. Content of that file can be then added into
metadata one.
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@2898 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/base.bbclass | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 27f031c014..13c76431c6 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass | |||
@@ -22,6 +22,7 @@ def base_chk_load_parser(config_path): | |||
22 | 22 | ||
23 | def base_chk_file(parser, pn, pv, src_uri, localpath, data): | 23 | def base_chk_file(parser, pn, pv, src_uri, localpath, data): |
24 | import os, bb | 24 | import os, bb |
25 | no_checksum = False | ||
25 | # Try PN-PV-SRC_URI first and then try PN-SRC_URI | 26 | # Try PN-PV-SRC_URI first and then try PN-SRC_URI |
26 | # we rely on the get method to create errors | 27 | # we rely on the get method to create errors |
27 | pn_pv_src = "%s-%s-%s" % (pn,pv,src_uri) | 28 | pn_pv_src = "%s-%s-%s" % (pn,pv,src_uri) |
@@ -36,8 +37,7 @@ def base_chk_file(parser, pn, pv, src_uri, localpath, data): | |||
36 | md5 = parser.get(src_uri, "md5") | 37 | md5 = parser.get(src_uri, "md5") |
37 | sha256 = parser.get(src_uri, "sha256") | 38 | sha256 = parser.get(src_uri, "sha256") |
38 | else: | 39 | else: |
39 | return False | 40 | no_checksum = True |
40 | #raise Exception("Can not find a section for '%s' '%s' and '%s'" % (pn,pv,src_uri)) | ||
41 | 41 | ||
42 | # md5 and sha256 should be valid now | 42 | # md5 and sha256 should be valid now |
43 | if not os.path.exists(localpath): | 43 | if not os.path.exists(localpath): |
@@ -60,6 +60,19 @@ def base_chk_file(parser, pn, pv, src_uri, localpath, data): | |||
60 | except OSError: | 60 | except OSError: |
61 | raise Exception("Executing shasum failed") | 61 | raise Exception("Executing shasum failed") |
62 | 62 | ||
63 | if no_checksum == True: # we do not have conf/checksums.ini entry | ||
64 | try: | ||
65 | file = open("%s/checksums.ini" % bb.data.getVar("TMPDIR", data, 1), "a") | ||
66 | except: | ||
67 | return False | ||
68 | |||
69 | if not file: | ||
70 | raise Exception("Creating checksums.ini failed") | ||
71 | |||
72 | file.write("[%s]\nmd5=%s\nsha256=%s\n\n" % (src_uri, md5data, shadata)) | ||
73 | file.close() | ||
74 | return False | ||
75 | |||
63 | if not md5 == md5data: | 76 | if not md5 == md5data: |
64 | bb.note("The MD5Sums did not match. Wanted: '%s' and Got: '%s'" % (md5,md5data)) | 77 | bb.note("The MD5Sums did not match. Wanted: '%s' and Got: '%s'" % (md5,md5data)) |
65 | raise Exception("MD5 Sums do not match. Wanted: '%s' Got: '%s'" % (md5, md5data)) | 78 | raise Exception("MD5 Sums do not match. Wanted: '%s' Got: '%s'" % (md5, md5data)) |
@@ -482,11 +495,9 @@ python base_do_fetch() { | |||
482 | (type,host,path,_,_,_) = bb.decodeurl(url) | 495 | (type,host,path,_,_,_) = bb.decodeurl(url) |
483 | uri = "%s://%s%s" % (type,host,path) | 496 | uri = "%s://%s%s" % (type,host,path) |
484 | try: | 497 | try: |
485 | if not base_chk_file(parser, pn, pv,uri, localpath, d): | 498 | if type == "http" or type == "https" or type == "ftp" or type == "ftps": |
486 | if type != "file": | 499 | if not base_chk_file(parser, pn, pv,uri, localpath, d): |
487 | bb.note("%s-%s: %s has no entry in conf/checksums.ini, not checking URI" % (pn,pv,uri)) | 500 | bb.note("%s-%s: %s has no entry in conf/checksums.ini, not checking URI" % (pn,pv,uri)) |
488 | else: | ||
489 | bb.debug("%s-%s: %s has no entry in conf/checksums.ini, not checking URI" % (pn,pv,uri)) | ||
490 | except Exception: | 501 | except Exception: |
491 | raise bb.build.FuncFailed("Checksum of '%s' failed" % uri) | 502 | raise bb.build.FuncFailed("Checksum of '%s' failed" % uri) |
492 | } | 503 | } |