summaryrefslogtreecommitdiffstats
path: root/meta/classes
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/insane.bbclass29
1 files changed, 29 insertions, 0 deletions
diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index 632821cbbe..7332e45453 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -740,17 +740,21 @@ python populate_lic_qa_checksum() {
740 740
741 if (not beginline) and (not endline): 741 if (not beginline) and (not endline):
742 md5chksum = bb.utils.md5_file(srclicfile) 742 md5chksum = bb.utils.md5_file(srclicfile)
743 with open(srclicfile, 'rb') as f:
744 license = f.read()
743 else: 745 else:
744 fi = open(srclicfile, 'rb') 746 fi = open(srclicfile, 'rb')
745 fo = tempfile.NamedTemporaryFile(mode='wb', prefix='poky.', suffix='.tmp', delete=False) 747 fo = tempfile.NamedTemporaryFile(mode='wb', prefix='poky.', suffix='.tmp', delete=False)
746 tmplicfile = fo.name; 748 tmplicfile = fo.name;
747 lineno = 0 749 lineno = 0
748 linesout = 0 750 linesout = 0
751 license = []
749 for line in fi: 752 for line in fi:
750 lineno += 1 753 lineno += 1
751 if (lineno >= beginline): 754 if (lineno >= beginline):
752 if ((lineno <= endline) or not endline): 755 if ((lineno <= endline) or not endline):
753 fo.write(line) 756 fo.write(line)
757 license.append(line)
754 linesout += 1 758 linesout += 1
755 else: 759 else:
756 break 760 break
@@ -758,6 +762,7 @@ python populate_lic_qa_checksum() {
758 fo.close() 762 fo.close()
759 fi.close() 763 fi.close()
760 md5chksum = bb.utils.md5_file(tmplicfile) 764 md5chksum = bb.utils.md5_file(tmplicfile)
765 license = b''.join(license)
761 os.unlink(tmplicfile) 766 os.unlink(tmplicfile)
762 767
763 if recipemd5 == md5chksum: 768 if recipemd5 == md5chksum:
@@ -766,6 +771,30 @@ python populate_lic_qa_checksum() {
766 if recipemd5: 771 if recipemd5:
767 msg = pn + ": The LIC_FILES_CHKSUM does not match for " + url 772 msg = pn + ": The LIC_FILES_CHKSUM does not match for " + url
768 msg = msg + "\n" + pn + ": The new md5 checksum is " + md5chksum 773 msg = msg + "\n" + pn + ": The new md5 checksum is " + md5chksum
774 try:
775 license_lines = license.decode('utf-8').split('\n')
776 except:
777 # License text might not be valid UTF-8, in which
778 # case we don't know how to include it in our output
779 # and have to skip it.
780 pass
781 else:
782 max_lines = int(d.getVar('QA_MAX_LICENSE_LINES') or 20)
783 if not license_lines or license_lines[-1] != '':
784 # Ensure that our license text ends with a line break
785 # (will be added with join() below).
786 license_lines.append('')
787 remove = len(license_lines) - max_lines
788 if remove > 0:
789 start = max_lines // 2
790 end = start + remove - 1
791 del license_lines[start:end]
792 license_lines.insert(start, '...')
793 msg = msg + "\n" + pn + ": Here is the selected license text:" + \
794 "\n" + \
795 "{:v^70}".format(" beginline=%d " % beginline if beginline else "") + \
796 "\n" + "\n".join(license_lines) + \
797 "{:^^70}".format(" endline=%d " % endline if endline else "")
769 if beginline: 798 if beginline:
770 if endline: 799 if endline:
771 srcfiledesc = "%s (lines %d through to %d)" % (srclicfile, beginline, endline) 800 srcfiledesc = "%s (lines %d through to %d)" % (srclicfile, beginline, endline)