Skip to contentSkip to conversation

A couple of recipetool fixes

PATCH New Paul Eggleton 1 participant 3 messages Jul 25, 2016

lore
Share & tools
lore
#0 lore raw

cover A couple of recipetool fixes

One bug fix and one improvement for recipetool.

The following changes since commit 0a2df616a5c3316704742f1dcf37b450920e0280:

boost: fix CVE-2012-2677 (2016-07-21 07:45:01 +0100)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib paule/recipetool-fixes4
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/recipetool-fixes4

Paul Eggleton (2):
lib/oe/recipeutils: fix patch_recipe*() with empty input
recipetool: record unknown license files

 meta/lib/oe/recipeutils.py       |  2 +-
 scripts/lib/recipetool/create.py | 10 ++++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)
Signature · 1 line
2.5.5
#1 lore raw

PATCH 1/2 lib/oe/recipeutils: fix patch_recipe*() with empty input

If you supplied an empty file to patch_recipe() (or an empty list to patch_recipe_lines()) then the result was IndexError because the code checking to see if it needed to add an extra line of padding didn't check to see if there were in fact any lines before trying to access the last line.

Fixes [YOCTO #9972].

---
 meta/lib/oe/recipeutils.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/lib/oe/recipeutils.py +1 -1
index 0e7abf8..c77664f 100644
@@ -259,7 +259,7 @@ def patch_recipe_lines(fromlines, values, trailing_newline=True):
     changed, tolines = bb.utils.edit_metadata(fromlines, varlist, patch_recipe_varfunc, match_overrides=True)
 
     if remainingnames:
-        if tolines[-1].strip() != '':
+        if tolines and tolines[-1].strip() != '':
             tolines.append('\n')
         for k in remainingnames.keys():
             outputvalue(k, tolines)
Signature · 1 line
2.5.5
#2 lore raw

PATCH 2/2 recipetool: record unknown license files

In reply to Paul Eggleton

Add a comment to the recipe listing license files that were found but not able to be identified, so that the user can find and examine them by hand fairly easily.

Fixes [YOCTO #9882].

---
 scripts/lib/recipetool/create.py | 10 ++++++++++
 1 file changed, 10 insertions(+)
scripts/lib/recipetool/create.py +10 -0
index f246028..838c23b 100644
@@ -479,12 +479,15 @@ def create_recipe(args):
 
     licvalues = guess_license(srctree_use)
     lic_files_chksum = []
+    lic_unknown = []
     if licvalues:
         licenses = []
         for licvalue in licvalues:
             if not licvalue[0] in licenses:
                 licenses.append(licvalue[0])
             lic_files_chksum.append('file://%s;md5=%s' % (licvalue[1], licvalue[2]))
+            if licvalue[0] == 'Unknown':
+                lic_unknown.append(licvalue[1])
         lines_before.append('# WARNING: the following LICENSE and LIC_FILES_CHKSUM values are best guesses - it is')
         lines_before.append('# your responsibility to verify that the values are complete and correct.')
         if len(licvalues) > 1:
@@ -493,6 +496,13 @@ def create_recipe(args):
             lines_before.append('# these in the LICENSE value using & if the multiple licenses all apply, or | if there')
             lines_before.append('# is a choice between the multiple licenses. If in doubt, check the accompanying')
             lines_before.append('# documentation to determine which situation is applicable.')
+        if lic_unknown:
+            lines_before.append('#')
+            lines_before.append('# The following license files were not able to be identified and are')
+            lines_before.append('# represented as "Unknown" below, you will need to check them yourself:')
+            for licfile in lic_unknown:
+                lines_before.append('#   %s' % licfile)
+            lines_before.append('#')
     else:
         lines_before.append('# Unable to find any files that looked like license statements. Check the accompanying')
         lines_before.append('# documentation and source headers and set LICENSE and LIC_FILES_CHKSUM accordingly.')
Signature · 1 line
2.5.5