diff options
Diffstat (limited to 'meta/classes/base.bbclass')
| -rw-r--r-- | meta/classes/base.bbclass | 126 |
1 files changed, 63 insertions, 63 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 19673e6913..2765ebf61b 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass | |||
| @@ -16,7 +16,7 @@ OE_IMPORTS[type] = "list" | |||
| 16 | def oe_import(d): | 16 | def oe_import(d): |
| 17 | import sys | 17 | import sys |
| 18 | 18 | ||
| 19 | bbpath = d.getVar("BBPATH", True).split(":") | 19 | bbpath = d.getVar("BBPATH").split(":") |
| 20 | sys.path[0:0] = [os.path.join(dir, "lib") for dir in bbpath] | 20 | sys.path[0:0] = [os.path.join(dir, "lib") for dir in bbpath] |
| 21 | 21 | ||
| 22 | def inject(name, value): | 22 | def inject(name, value): |
| @@ -37,7 +37,7 @@ def oe_import(d): | |||
| 37 | OE_IMPORTED := "${@oe_import(d)}" | 37 | OE_IMPORTED := "${@oe_import(d)}" |
| 38 | 38 | ||
| 39 | def lsb_distro_identifier(d): | 39 | def lsb_distro_identifier(d): |
| 40 | adjust = d.getVar('LSB_DISTRO_ADJUST', True) | 40 | adjust = d.getVar('LSB_DISTRO_ADJUST') |
| 41 | adjust_func = None | 41 | adjust_func = None |
| 42 | if adjust: | 42 | if adjust: |
| 43 | try: | 43 | try: |
| @@ -72,7 +72,7 @@ def base_dep_prepend(d): | |||
| 72 | # we need that built is the responsibility of the patch function / class, not | 72 | # we need that built is the responsibility of the patch function / class, not |
| 73 | # the application. | 73 | # the application. |
| 74 | if not d.getVar('INHIBIT_DEFAULT_DEPS', False): | 74 | if not d.getVar('INHIBIT_DEFAULT_DEPS', False): |
| 75 | if (d.getVar('HOST_SYS', True) != d.getVar('BUILD_SYS', True)): | 75 | if (d.getVar('HOST_SYS') != d.getVar('BUILD_SYS')): |
| 76 | deps += " virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}compilerlibs virtual/libc " | 76 | deps += " virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}compilerlibs virtual/libc " |
| 77 | return deps | 77 | return deps |
| 78 | 78 | ||
| @@ -83,11 +83,11 @@ DEPENDS_prepend="${BASEDEPENDS} " | |||
| 83 | FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}" | 83 | FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}" |
| 84 | # THISDIR only works properly with imediate expansion as it has to run | 84 | # THISDIR only works properly with imediate expansion as it has to run |
| 85 | # in the context of the location its used (:=) | 85 | # in the context of the location its used (:=) |
| 86 | THISDIR = "${@os.path.dirname(d.getVar('FILE', True))}" | 86 | THISDIR = "${@os.path.dirname(d.getVar('FILE'))}" |
| 87 | 87 | ||
| 88 | def extra_path_elements(d): | 88 | def extra_path_elements(d): |
| 89 | path = "" | 89 | path = "" |
| 90 | elements = (d.getVar('EXTRANATIVEPATH', True) or "").split() | 90 | elements = (d.getVar('EXTRANATIVEPATH') or "").split() |
| 91 | for e in elements: | 91 | for e in elements: |
| 92 | path = path + "${STAGING_BINDIR_NATIVE}/" + e + ":" | 92 | path = path + "${STAGING_BINDIR_NATIVE}/" + e + ":" |
| 93 | return path | 93 | return path |
| @@ -96,11 +96,11 @@ PATH_prepend = "${@extra_path_elements(d)}" | |||
| 96 | 96 | ||
| 97 | def get_lic_checksum_file_list(d): | 97 | def get_lic_checksum_file_list(d): |
| 98 | filelist = [] | 98 | filelist = [] |
| 99 | lic_files = d.getVar("LIC_FILES_CHKSUM", True) or '' | 99 | lic_files = d.getVar("LIC_FILES_CHKSUM") or '' |
| 100 | tmpdir = d.getVar("TMPDIR", True) | 100 | tmpdir = d.getVar("TMPDIR") |
| 101 | s = d.getVar("S", True) | 101 | s = d.getVar("S") |
| 102 | b = d.getVar("B", True) | 102 | b = d.getVar("B") |
| 103 | workdir = d.getVar("WORKDIR", True) | 103 | workdir = d.getVar("WORKDIR") |
| 104 | 104 | ||
| 105 | urls = lic_files.split() | 105 | urls = lic_files.split() |
| 106 | for url in urls: | 106 | for url in urls: |
| @@ -116,7 +116,7 @@ def get_lic_checksum_file_list(d): | |||
| 116 | continue | 116 | continue |
| 117 | filelist.append(path + ":" + str(os.path.exists(path))) | 117 | filelist.append(path + ":" + str(os.path.exists(path))) |
| 118 | except bb.fetch.MalformedUrl: | 118 | except bb.fetch.MalformedUrl: |
| 119 | bb.fatal(d.getVar('PN', True) + ": LIC_FILES_CHKSUM contains an invalid URL: " + url) | 119 | bb.fatal(d.getVar('PN') + ": LIC_FILES_CHKSUM contains an invalid URL: " + url) |
| 120 | return " ".join(filelist) | 120 | return " ".join(filelist) |
| 121 | 121 | ||
| 122 | addtask fetch | 122 | addtask fetch |
| @@ -126,7 +126,7 @@ do_fetch[file-checksums] += " ${@get_lic_checksum_file_list(d)}" | |||
| 126 | do_fetch[vardeps] += "SRCREV" | 126 | do_fetch[vardeps] += "SRCREV" |
| 127 | python base_do_fetch() { | 127 | python base_do_fetch() { |
| 128 | 128 | ||
| 129 | src_uri = (d.getVar('SRC_URI', True) or "").split() | 129 | src_uri = (d.getVar('SRC_URI') or "").split() |
| 130 | if len(src_uri) == 0: | 130 | if len(src_uri) == 0: |
| 131 | return | 131 | return |
| 132 | 132 | ||
| @@ -141,31 +141,31 @@ addtask unpack after do_fetch | |||
| 141 | do_unpack[dirs] = "${WORKDIR}" | 141 | do_unpack[dirs] = "${WORKDIR}" |
| 142 | 142 | ||
| 143 | python () { | 143 | python () { |
| 144 | if d.getVar('S', True) != d.getVar('WORKDIR', True): | 144 | if d.getVar('S') != d.getVar('WORKDIR'): |
| 145 | d.setVarFlag('do_unpack', 'cleandirs', '${S}') | 145 | d.setVarFlag('do_unpack', 'cleandirs', '${S}') |
| 146 | else: | 146 | else: |
| 147 | d.setVarFlag('do_unpack', 'cleandirs', os.path.join('${S}', 'patches')) | 147 | d.setVarFlag('do_unpack', 'cleandirs', os.path.join('${S}', 'patches')) |
| 148 | } | 148 | } |
| 149 | python base_do_unpack() { | 149 | python base_do_unpack() { |
| 150 | src_uri = (d.getVar('SRC_URI', True) or "").split() | 150 | src_uri = (d.getVar('SRC_URI') or "").split() |
| 151 | if len(src_uri) == 0: | 151 | if len(src_uri) == 0: |
| 152 | return | 152 | return |
| 153 | 153 | ||
| 154 | try: | 154 | try: |
| 155 | fetcher = bb.fetch2.Fetch(src_uri, d) | 155 | fetcher = bb.fetch2.Fetch(src_uri, d) |
| 156 | fetcher.unpack(d.getVar('WORKDIR', True)) | 156 | fetcher.unpack(d.getVar('WORKDIR')) |
| 157 | except bb.fetch2.BBFetchException as e: | 157 | except bb.fetch2.BBFetchException as e: |
| 158 | bb.fatal(str(e)) | 158 | bb.fatal(str(e)) |
| 159 | } | 159 | } |
| 160 | 160 | ||
| 161 | def pkgarch_mapping(d): | 161 | def pkgarch_mapping(d): |
| 162 | # Compatibility mappings of TUNE_PKGARCH (opt in) | 162 | # Compatibility mappings of TUNE_PKGARCH (opt in) |
| 163 | if d.getVar("PKGARCHCOMPAT_ARMV7A", True): | 163 | if d.getVar("PKGARCHCOMPAT_ARMV7A"): |
| 164 | if d.getVar("TUNE_PKGARCH", True) == "armv7a-vfp-neon": | 164 | if d.getVar("TUNE_PKGARCH") == "armv7a-vfp-neon": |
| 165 | d.setVar("TUNE_PKGARCH", "armv7a") | 165 | d.setVar("TUNE_PKGARCH", "armv7a") |
| 166 | 166 | ||
| 167 | def get_layers_branch_rev(d): | 167 | def get_layers_branch_rev(d): |
| 168 | layers = (d.getVar("BBLAYERS", True) or "").split() | 168 | layers = (d.getVar("BBLAYERS") or "").split() |
| 169 | layers_branch_rev = ["%-17s = \"%s:%s\"" % (os.path.basename(i), \ | 169 | layers_branch_rev = ["%-17s = \"%s:%s\"" % (os.path.basename(i), \ |
| 170 | base_get_metadata_git_branch(i, None).strip(), \ | 170 | base_get_metadata_git_branch(i, None).strip(), \ |
| 171 | base_get_metadata_git_revision(i, None)) \ | 171 | base_get_metadata_git_revision(i, None)) \ |
| @@ -192,7 +192,7 @@ BUILDCFG_FUNCS[type] = "list" | |||
| 192 | def buildcfg_vars(d): | 192 | def buildcfg_vars(d): |
| 193 | statusvars = oe.data.typed_value('BUILDCFG_VARS', d) | 193 | statusvars = oe.data.typed_value('BUILDCFG_VARS', d) |
| 194 | for var in statusvars: | 194 | for var in statusvars: |
| 195 | value = d.getVar(var, True) | 195 | value = d.getVar(var) |
| 196 | if value is not None: | 196 | if value is not None: |
| 197 | yield '%-17s = "%s"' % (var, value) | 197 | yield '%-17s = "%s"' % (var, value) |
| 198 | 198 | ||
| @@ -200,7 +200,7 @@ def buildcfg_neededvars(d): | |||
| 200 | needed_vars = oe.data.typed_value("BUILDCFG_NEEDEDVARS", d) | 200 | needed_vars = oe.data.typed_value("BUILDCFG_NEEDEDVARS", d) |
| 201 | pesteruser = [] | 201 | pesteruser = [] |
| 202 | for v in needed_vars: | 202 | for v in needed_vars: |
| 203 | val = d.getVar(v, True) | 203 | val = d.getVar(v) |
| 204 | if not val or val == 'INVALID': | 204 | if not val or val == 'INVALID': |
| 205 | pesteruser.append(v) | 205 | pesteruser.append(v) |
| 206 | 206 | ||
| @@ -233,7 +233,7 @@ python base_eventhandler() { | |||
| 233 | if flines: | 233 | if flines: |
| 234 | statuslines.extend(flines) | 234 | statuslines.extend(flines) |
| 235 | 235 | ||
| 236 | statusheader = e.data.getVar('BUILDCFG_HEADER', True) | 236 | statusheader = e.data.getVar('BUILDCFG_HEADER') |
| 237 | if statusheader: | 237 | if statusheader: |
| 238 | bb.plain('\n%s\n%s\n' % (statusheader, '\n'.join(statuslines))) | 238 | bb.plain('\n%s\n%s\n' % (statusheader, '\n'.join(statuslines))) |
| 239 | 239 | ||
| @@ -241,7 +241,7 @@ python base_eventhandler() { | |||
| 241 | # target ones and we'd see dulpicate key names overwriting each other | 241 | # target ones and we'd see dulpicate key names overwriting each other |
| 242 | # for various PREFERRED_PROVIDERS | 242 | # for various PREFERRED_PROVIDERS |
| 243 | if isinstance(e, bb.event.RecipePreFinalise): | 243 | if isinstance(e, bb.event.RecipePreFinalise): |
| 244 | if e.data.getVar("TARGET_PREFIX", True) == e.data.getVar("SDK_PREFIX", True): | 244 | if e.data.getVar("TARGET_PREFIX") == e.data.getVar("SDK_PREFIX"): |
| 245 | e.data.delVar("PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils") | 245 | e.data.delVar("PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils") |
| 246 | e.data.delVar("PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial") | 246 | e.data.delVar("PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial") |
| 247 | e.data.delVar("PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc") | 247 | e.data.delVar("PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc") |
| @@ -267,14 +267,14 @@ python base_eventhandler() { | |||
| 267 | # sysroot since they're now "unreachable". This makes switching virtual/kernel work in | 267 | # sysroot since they're now "unreachable". This makes switching virtual/kernel work in |
| 268 | # particular. | 268 | # particular. |
| 269 | # | 269 | # |
| 270 | pn = d.getVar('PN', True) | 270 | pn = d.getVar('PN') |
| 271 | source_mirror_fetch = d.getVar('SOURCE_MIRROR_FETCH', False) | 271 | source_mirror_fetch = d.getVar('SOURCE_MIRROR_FETCH', False) |
| 272 | if not source_mirror_fetch: | 272 | if not source_mirror_fetch: |
| 273 | provs = (d.getVar("PROVIDES", True) or "").split() | 273 | provs = (d.getVar("PROVIDES") or "").split() |
| 274 | multiwhitelist = (d.getVar("MULTI_PROVIDER_WHITELIST", True) or "").split() | 274 | multiwhitelist = (d.getVar("MULTI_PROVIDER_WHITELIST") or "").split() |
| 275 | for p in provs: | 275 | for p in provs: |
| 276 | if p.startswith("virtual/") and p not in multiwhitelist: | 276 | if p.startswith("virtual/") and p not in multiwhitelist: |
| 277 | profprov = d.getVar("PREFERRED_PROVIDER_" + p, True) | 277 | profprov = d.getVar("PREFERRED_PROVIDER_" + p) |
| 278 | if profprov and pn != profprov: | 278 | if profprov and pn != profprov: |
| 279 | raise bb.parse.SkipPackage("PREFERRED_PROVIDER_%s set to %s, not %s" % (p, profprov, pn)) | 279 | raise bb.parse.SkipPackage("PREFERRED_PROVIDER_%s set to %s, not %s" % (p, profprov, pn)) |
| 280 | } | 280 | } |
| @@ -336,9 +336,9 @@ def set_packagetriplet(d): | |||
| 336 | tos = [] | 336 | tos = [] |
| 337 | tvs = [] | 337 | tvs = [] |
| 338 | 338 | ||
| 339 | archs.append(d.getVar("PACKAGE_ARCHS", True).split()) | 339 | archs.append(d.getVar("PACKAGE_ARCHS").split()) |
| 340 | tos.append(d.getVar("TARGET_OS", True)) | 340 | tos.append(d.getVar("TARGET_OS")) |
| 341 | tvs.append(d.getVar("TARGET_VENDOR", True)) | 341 | tvs.append(d.getVar("TARGET_VENDOR")) |
| 342 | 342 | ||
| 343 | def settriplet(d, varname, archs, tos, tvs): | 343 | def settriplet(d, varname, archs, tos, tvs): |
| 344 | triplets = [] | 344 | triplets = [] |
| @@ -350,16 +350,16 @@ def set_packagetriplet(d): | |||
| 350 | 350 | ||
| 351 | settriplet(d, "PKGTRIPLETS", archs, tos, tvs) | 351 | settriplet(d, "PKGTRIPLETS", archs, tos, tvs) |
| 352 | 352 | ||
| 353 | variants = d.getVar("MULTILIB_VARIANTS", True) or "" | 353 | variants = d.getVar("MULTILIB_VARIANTS") or "" |
| 354 | for item in variants.split(): | 354 | for item in variants.split(): |
| 355 | localdata = bb.data.createCopy(d) | 355 | localdata = bb.data.createCopy(d) |
| 356 | overrides = localdata.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item | 356 | overrides = localdata.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item |
| 357 | localdata.setVar("OVERRIDES", overrides) | 357 | localdata.setVar("OVERRIDES", overrides) |
| 358 | bb.data.update_data(localdata) | 358 | bb.data.update_data(localdata) |
| 359 | 359 | ||
| 360 | archs.append(localdata.getVar("PACKAGE_ARCHS", True).split()) | 360 | archs.append(localdata.getVar("PACKAGE_ARCHS").split()) |
| 361 | tos.append(localdata.getVar("TARGET_OS", True)) | 361 | tos.append(localdata.getVar("TARGET_OS")) |
| 362 | tvs.append(localdata.getVar("TARGET_VENDOR", True)) | 362 | tvs.append(localdata.getVar("TARGET_VENDOR")) |
| 363 | 363 | ||
| 364 | settriplet(d, "PKGMLTRIPLETS", archs, tos, tvs) | 364 | settriplet(d, "PKGMLTRIPLETS", archs, tos, tvs) |
| 365 | 365 | ||
| @@ -374,10 +374,10 @@ python () { | |||
| 374 | # PACKAGECONFIG[foo] = "--enable-foo,--disable-foo,foo_depends,foo_runtime_depends" | 374 | # PACKAGECONFIG[foo] = "--enable-foo,--disable-foo,foo_depends,foo_runtime_depends" |
| 375 | pkgconfigflags = d.getVarFlags("PACKAGECONFIG") or {} | 375 | pkgconfigflags = d.getVarFlags("PACKAGECONFIG") or {} |
| 376 | if pkgconfigflags: | 376 | if pkgconfigflags: |
| 377 | pkgconfig = (d.getVar('PACKAGECONFIG', True) or "").split() | 377 | pkgconfig = (d.getVar('PACKAGECONFIG') or "").split() |
| 378 | pn = d.getVar("PN", True) | 378 | pn = d.getVar("PN") |
| 379 | 379 | ||
| 380 | mlprefix = d.getVar("MLPREFIX", True) | 380 | mlprefix = d.getVar("MLPREFIX") |
| 381 | 381 | ||
| 382 | def expandFilter(appends, extension, prefix): | 382 | def expandFilter(appends, extension, prefix): |
| 383 | appends = bb.utils.explode_deps(d.expand(" ".join(appends))) | 383 | appends = bb.utils.explode_deps(d.expand(" ".join(appends))) |
| @@ -419,7 +419,7 @@ python () { | |||
| 419 | num = len(items) | 419 | num = len(items) |
| 420 | if num > 4: | 420 | if num > 4: |
| 421 | bb.error("%s: PACKAGECONFIG[%s] Only enable,disable,depend,rdepend can be specified!" | 421 | bb.error("%s: PACKAGECONFIG[%s] Only enable,disable,depend,rdepend can be specified!" |
| 422 | % (d.getVar('PN', True), flag)) | 422 | % (d.getVar('PN'), flag)) |
| 423 | 423 | ||
| 424 | if flag in pkgconfig: | 424 | if flag in pkgconfig: |
| 425 | if num >= 3 and items[2]: | 425 | if num >= 3 and items[2]: |
| @@ -434,8 +434,8 @@ python () { | |||
| 434 | appendVar('RDEPENDS_${PN}', extrardeps) | 434 | appendVar('RDEPENDS_${PN}', extrardeps) |
| 435 | appendVar('PACKAGECONFIG_CONFARGS', extraconf) | 435 | appendVar('PACKAGECONFIG_CONFARGS', extraconf) |
| 436 | 436 | ||
| 437 | pn = d.getVar('PN', True) | 437 | pn = d.getVar('PN') |
| 438 | license = d.getVar('LICENSE', True) | 438 | license = d.getVar('LICENSE') |
| 439 | if license == "INVALID": | 439 | if license == "INVALID": |
| 440 | bb.fatal('This recipe does not have the LICENSE field set (%s)' % pn) | 440 | bb.fatal('This recipe does not have the LICENSE field set (%s)' % pn) |
| 441 | 441 | ||
| @@ -465,26 +465,26 @@ python () { | |||
| 465 | d.setVarFlag('do_devshell', 'fakeroot', '1') | 465 | d.setVarFlag('do_devshell', 'fakeroot', '1') |
| 466 | d.appendVarFlag('do_devshell', 'depends', ' virtual/fakeroot-native:do_populate_sysroot') | 466 | d.appendVarFlag('do_devshell', 'depends', ' virtual/fakeroot-native:do_populate_sysroot') |
| 467 | 467 | ||
| 468 | need_machine = d.getVar('COMPATIBLE_MACHINE', True) | 468 | need_machine = d.getVar('COMPATIBLE_MACHINE') |
| 469 | if need_machine: | 469 | if need_machine: |
| 470 | import re | 470 | import re |
| 471 | compat_machines = (d.getVar('MACHINEOVERRIDES', True) or "").split(":") | 471 | compat_machines = (d.getVar('MACHINEOVERRIDES') or "").split(":") |
| 472 | for m in compat_machines: | 472 | for m in compat_machines: |
| 473 | if re.match(need_machine, m): | 473 | if re.match(need_machine, m): |
| 474 | break | 474 | break |
| 475 | else: | 475 | else: |
| 476 | raise bb.parse.SkipPackage("incompatible with machine %s (not in COMPATIBLE_MACHINE)" % d.getVar('MACHINE', True)) | 476 | raise bb.parse.SkipPackage("incompatible with machine %s (not in COMPATIBLE_MACHINE)" % d.getVar('MACHINE')) |
| 477 | 477 | ||
| 478 | source_mirror_fetch = d.getVar('SOURCE_MIRROR_FETCH', False) | 478 | source_mirror_fetch = d.getVar('SOURCE_MIRROR_FETCH', False) |
| 479 | if not source_mirror_fetch: | 479 | if not source_mirror_fetch: |
| 480 | need_host = d.getVar('COMPATIBLE_HOST', True) | 480 | need_host = d.getVar('COMPATIBLE_HOST') |
| 481 | if need_host: | 481 | if need_host: |
| 482 | import re | 482 | import re |
| 483 | this_host = d.getVar('HOST_SYS', True) | 483 | this_host = d.getVar('HOST_SYS') |
| 484 | if not re.match(need_host, this_host): | 484 | if not re.match(need_host, this_host): |
| 485 | raise bb.parse.SkipPackage("incompatible with host %s (not in COMPATIBLE_HOST)" % this_host) | 485 | raise bb.parse.SkipPackage("incompatible with host %s (not in COMPATIBLE_HOST)" % this_host) |
| 486 | 486 | ||
| 487 | bad_licenses = (d.getVar('INCOMPATIBLE_LICENSE', True) or "").split() | 487 | bad_licenses = (d.getVar('INCOMPATIBLE_LICENSE') or "").split() |
| 488 | 488 | ||
| 489 | check_license = False if pn.startswith("nativesdk-") else True | 489 | check_license = False if pn.startswith("nativesdk-") else True |
| 490 | for t in ["-native", "-cross-${TARGET_ARCH}", "-cross-initial-${TARGET_ARCH}", | 490 | for t in ["-native", "-cross-${TARGET_ARCH}", "-cross-initial-${TARGET_ARCH}", |
| @@ -503,21 +503,21 @@ python () { | |||
| 503 | for lic in bad_licenses: | 503 | for lic in bad_licenses: |
| 504 | spdx_license = return_spdx(d, lic) | 504 | spdx_license = return_spdx(d, lic) |
| 505 | for w in ["LGPLv2_WHITELIST_", "WHITELIST_"]: | 505 | for w in ["LGPLv2_WHITELIST_", "WHITELIST_"]: |
| 506 | whitelist.extend((d.getVar(w + lic, True) or "").split()) | 506 | whitelist.extend((d.getVar(w + lic) or "").split()) |
| 507 | if spdx_license: | 507 | if spdx_license: |
| 508 | whitelist.extend((d.getVar(w + spdx_license, True) or "").split()) | 508 | whitelist.extend((d.getVar(w + spdx_license) or "").split()) |
| 509 | ''' | 509 | ''' |
| 510 | We need to track what we are whitelisting and why. If pn is | 510 | We need to track what we are whitelisting and why. If pn is |
| 511 | incompatible we need to be able to note that the image that | 511 | incompatible we need to be able to note that the image that |
| 512 | is created may infact contain incompatible licenses despite | 512 | is created may infact contain incompatible licenses despite |
| 513 | INCOMPATIBLE_LICENSE being set. | 513 | INCOMPATIBLE_LICENSE being set. |
| 514 | ''' | 514 | ''' |
| 515 | incompatwl.extend((d.getVar(w + lic, True) or "").split()) | 515 | incompatwl.extend((d.getVar(w + lic) or "").split()) |
| 516 | if spdx_license: | 516 | if spdx_license: |
| 517 | incompatwl.extend((d.getVar(w + spdx_license, True) or "").split()) | 517 | incompatwl.extend((d.getVar(w + spdx_license) or "").split()) |
| 518 | 518 | ||
| 519 | if not pn in whitelist: | 519 | if not pn in whitelist: |
| 520 | pkgs = d.getVar('PACKAGES', True).split() | 520 | pkgs = d.getVar('PACKAGES').split() |
| 521 | skipped_pkgs = [] | 521 | skipped_pkgs = [] |
| 522 | unskipped_pkgs = [] | 522 | unskipped_pkgs = [] |
| 523 | for pkg in pkgs: | 523 | for pkg in pkgs: |
| @@ -529,7 +529,7 @@ python () { | |||
| 529 | if unskipped_pkgs: | 529 | if unskipped_pkgs: |
| 530 | for pkg in skipped_pkgs: | 530 | for pkg in skipped_pkgs: |
| 531 | bb.debug(1, "SKIPPING the package " + pkg + " at do_rootfs because it's " + license) | 531 | bb.debug(1, "SKIPPING the package " + pkg + " at do_rootfs because it's " + license) |
| 532 | mlprefix = d.getVar('MLPREFIX', True) | 532 | mlprefix = d.getVar('MLPREFIX') |
| 533 | d.setVar('LICENSE_EXCLUSION-' + mlprefix + pkg, 1) | 533 | d.setVar('LICENSE_EXCLUSION-' + mlprefix + pkg, 1) |
| 534 | for pkg in unskipped_pkgs: | 534 | for pkg in unskipped_pkgs: |
| 535 | bb.debug(1, "INCLUDING the package " + pkg) | 535 | bb.debug(1, "INCLUDING the package " + pkg) |
| @@ -545,8 +545,8 @@ python () { | |||
| 545 | # matching of license expressions - just check that all license strings | 545 | # matching of license expressions - just check that all license strings |
| 546 | # in LICENSE_<pkg> are found in LICENSE. | 546 | # in LICENSE_<pkg> are found in LICENSE. |
| 547 | license_set = oe.license.list_licenses(license) | 547 | license_set = oe.license.list_licenses(license) |
| 548 | for pkg in d.getVar('PACKAGES', True).split(): | 548 | for pkg in d.getVar('PACKAGES').split(): |
| 549 | pkg_license = d.getVar('LICENSE_' + pkg, True) | 549 | pkg_license = d.getVar('LICENSE_' + pkg) |
| 550 | if pkg_license: | 550 | if pkg_license: |
| 551 | unlisted = oe.license.list_licenses(pkg_license) - license_set | 551 | unlisted = oe.license.list_licenses(pkg_license) - license_set |
| 552 | if unlisted: | 552 | if unlisted: |
| @@ -554,7 +554,7 @@ python () { | |||
| 554 | "listed in LICENSE" % (pkg, ' '.join(unlisted))) | 554 | "listed in LICENSE" % (pkg, ' '.join(unlisted))) |
| 555 | 555 | ||
| 556 | needsrcrev = False | 556 | needsrcrev = False |
| 557 | srcuri = d.getVar('SRC_URI', True) | 557 | srcuri = d.getVar('SRC_URI') |
| 558 | for uri in srcuri.split(): | 558 | for uri in srcuri.split(): |
| 559 | (scheme, _ , path) = bb.fetch.decodeurl(uri)[:3] | 559 | (scheme, _ , path) = bb.fetch.decodeurl(uri)[:3] |
| 560 | 560 | ||
| @@ -614,8 +614,8 @@ python () { | |||
| 614 | set_packagetriplet(d) | 614 | set_packagetriplet(d) |
| 615 | 615 | ||
| 616 | # 'multimachine' handling | 616 | # 'multimachine' handling |
| 617 | mach_arch = d.getVar('MACHINE_ARCH', True) | 617 | mach_arch = d.getVar('MACHINE_ARCH') |
| 618 | pkg_arch = d.getVar('PACKAGE_ARCH', True) | 618 | pkg_arch = d.getVar('PACKAGE_ARCH') |
| 619 | 619 | ||
| 620 | if (pkg_arch == mach_arch): | 620 | if (pkg_arch == mach_arch): |
| 621 | # Already machine specific - nothing further to do | 621 | # Already machine specific - nothing further to do |
| @@ -625,11 +625,11 @@ python () { | |||
| 625 | # We always try to scan SRC_URI for urls with machine overrides | 625 | # We always try to scan SRC_URI for urls with machine overrides |
| 626 | # unless the package sets SRC_URI_OVERRIDES_PACKAGE_ARCH=0 | 626 | # unless the package sets SRC_URI_OVERRIDES_PACKAGE_ARCH=0 |
| 627 | # | 627 | # |
| 628 | override = d.getVar('SRC_URI_OVERRIDES_PACKAGE_ARCH', True) | 628 | override = d.getVar('SRC_URI_OVERRIDES_PACKAGE_ARCH') |
| 629 | if override != '0': | 629 | if override != '0': |
| 630 | paths = [] | 630 | paths = [] |
| 631 | fpaths = (d.getVar('FILESPATH', True) or '').split(':') | 631 | fpaths = (d.getVar('FILESPATH') or '').split(':') |
| 632 | machine = d.getVar('MACHINE', True) | 632 | machine = d.getVar('MACHINE') |
| 633 | for p in fpaths: | 633 | for p in fpaths: |
| 634 | if os.path.basename(p) == machine and os.path.isdir(p): | 634 | if os.path.basename(p) == machine and os.path.isdir(p): |
| 635 | paths.append(p) | 635 | paths.append(p) |
| @@ -646,16 +646,16 @@ python () { | |||
| 646 | d.setVar('PACKAGE_ARCH', "${MACHINE_ARCH}") | 646 | d.setVar('PACKAGE_ARCH', "${MACHINE_ARCH}") |
| 647 | return | 647 | return |
| 648 | 648 | ||
| 649 | packages = d.getVar('PACKAGES', True).split() | 649 | packages = d.getVar('PACKAGES').split() |
| 650 | for pkg in packages: | 650 | for pkg in packages: |
| 651 | pkgarch = d.getVar("PACKAGE_ARCH_%s" % pkg, True) | 651 | pkgarch = d.getVar("PACKAGE_ARCH_%s" % pkg) |
| 652 | 652 | ||
| 653 | # We could look for != PACKAGE_ARCH here but how to choose | 653 | # We could look for != PACKAGE_ARCH here but how to choose |
| 654 | # if multiple differences are present? | 654 | # if multiple differences are present? |
| 655 | # Look through PACKAGE_ARCHS for the priority order? | 655 | # Look through PACKAGE_ARCHS for the priority order? |
| 656 | if pkgarch and pkgarch == mach_arch: | 656 | if pkgarch and pkgarch == mach_arch: |
| 657 | d.setVar('PACKAGE_ARCH', "${MACHINE_ARCH}") | 657 | d.setVar('PACKAGE_ARCH', "${MACHINE_ARCH}") |
| 658 | bb.warn("Recipe %s is marked as only being architecture specific but seems to have machine specific packages?! The recipe may as well mark itself as machine specific directly." % d.getVar("PN", True)) | 658 | bb.warn("Recipe %s is marked as only being architecture specific but seems to have machine specific packages?! The recipe may as well mark itself as machine specific directly." % d.getVar("PN")) |
| 659 | } | 659 | } |
| 660 | 660 | ||
| 661 | addtask cleansstate after do_clean | 661 | addtask cleansstate after do_clean |
| @@ -666,7 +666,7 @@ addtask cleanall after do_cleansstate | |||
| 666 | do_cleansstate[nostamp] = "1" | 666 | do_cleansstate[nostamp] = "1" |
| 667 | 667 | ||
| 668 | python do_cleanall() { | 668 | python do_cleanall() { |
| 669 | src_uri = (d.getVar('SRC_URI', True) or "").split() | 669 | src_uri = (d.getVar('SRC_URI') or "").split() |
| 670 | if len(src_uri) == 0: | 670 | if len(src_uri) == 0: |
| 671 | return | 671 | return |
| 672 | 672 | ||
