classes/license: copy licenses even if there are no checksummed files

Previously do_populate_lic would bail writing the license files (such as the MIT
license text) to deploy/licenses/${PN}/ if there were no files listed in
LIC_FILES_CHKSUM.  In general this isn't a problem since LIC_FILES_CHKSUM was
effectively a required field, and for packages which don't have traditional
content was generally set to a separate license such as
${COREBASE}/meta/COPYING.MIT.

However LIC_FILES_CHKSUM is now only required if there are sources in SRC_URI,
so oe-core b18fa5f removed these now redundant values. The unexpected side
effect of this is that that recipes that generate their content (such as
os-release) or are otherwise "interesting" (such as perf) don't have their
license files copied over, resulting in warnings from do_rootfs.

Resolve this by not returning early if LIC_FILES_CHKSUM is empty, and always
copy the references license files.

(From OE-Core rev: 94f5ac0651249cb98fb8d1308b7c0d10605d5a1e)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton 2016-11-02 14:59:53 +00:00 committed by Richard Purdie
parent d02416e293
commit e35775c598
1 changed files with 1 additions and 7 deletions

View File

@ -390,7 +390,7 @@ def find_license_files(d):
from collections import defaultdict, OrderedDict
# All the license files for the package
lic_files = d.getVar('LIC_FILES_CHKSUM', True)
lic_files = d.getVar('LIC_FILES_CHKSUM', True) or ""
pn = d.getVar('PN', True)
# The license files are located in S/LIC_FILE_CHECKSUM.
srcdir = d.getVar('S', True)
@ -469,12 +469,6 @@ def find_license_files(d):
if not generic_directory:
bb.fatal("COMMON_LICENSE_DIR is unset. Please set this in your distro config")
if not lic_files:
# No recipe should have an invalid license file. This is checked else
# where, but let's be pedantic
bb.note(pn + ": Recipe file does not have license file information.")
return lic_files_paths
for url in lic_files.split():
try:
(type, host, path, user, pswd, parm) = bb.fetch.decodeurl(url)