Change fix to ensure that we return a valid license info.
diff --git a/rules/gather_licenses_info.bzl b/rules/gather_licenses_info.bzl
index 64f9a43..518d5ff 100644
--- a/rules/gather_licenses_info.bzl
+++ b/rules/gather_licenses_info.bzl
@@ -30,9 +30,9 @@
The is to make str(label) compatible between bazel 5.x and 6.x
"""
s = str(label)
- if s.startswith("@//"):
+ if s.startswith('@//'):
return s[1:]
- elif s.startswith("@@//"):
+ elif s.startswith('@@//'):
return s[2:]
return s
@@ -150,7 +150,7 @@
licenses_files = []
for dep in deps:
if TransitiveLicensesInfo in dep:
- transitive_licenses_info = dep[TransitiveLicensesInfo]
+ transitive_licenses_info = dep[TransitiveLicensesInfo]
lic_info, _ = licenses_info_to_json(transitive_licenses_info)
licenses_json.extend(lic_info)
for info in transitive_licenses_info.licenses.to_list():
@@ -253,7 +253,6 @@
label = _strip_null_repo(license.label),
used_by = ",\n ".join(sorted(['"%s"' % x for x in used_by[str(license.label)]])),
))
-
# Additionally return all File references so that other rules invoking
# this method can load license text file contents from external repos
# using runfiles
@@ -267,12 +266,8 @@
licenses = ",\n ".join(sorted(['"%s"' % _strip_null_repo(x) for x in dep_licenses])),
))
- top_level_target = ""
- if hasattr(licenses_info, "target_under_license"):
- top_level_target = licenses_info.target_under_license
-
return [main_template.format(
- top_level_target = _strip_null_repo(top_level_target),
+ top_level_target = _strip_null_repo(licenses_info.target_under_license),
dependencies = ",".join(all_deps),
licenses = ",".join(all_licenses),
)], all_license_text_files
diff --git a/rules/licenses_core.bzl b/rules/licenses_core.bzl
index fff3b82..921cb06 100644
--- a/rules/licenses_core.bzl
+++ b/rules/licenses_core.bzl
@@ -151,7 +151,12 @@
# fully resolved. If exec is in the bin_dir path, then the current
# configuration is probably cfg = exec.
if "-exec-" in ctx.bin_dir.path:
- return [provider_factory(deps = depset(), licenses = depset(), traces = [])]
+ return [provider_factory(
+ target_under_license = target.label,
+ deps = depset(),
+ licenses = depset(),
+ traces = [],
+ )]
# Now gather transitive collection of providers from the targets
# this target depends upon.
@@ -164,7 +169,12 @@
_get_transitive_metadata(ctx, trans_licenses, trans_other_metadata, trans_package_info, trans_deps, traces, provider_factory, filter_func)
if not licenses and not trans_licenses:
- return [provider_factory(deps = depset(), licenses = depset(), traces = [])]
+ return [provider_factory(
+ target_under_license = target.label,
+ deps = depset(),
+ licenses = depset(),
+ traces = [],
+ )]
# If this is the target, start the sequence of traces.
if ctx.attr._trace[TraceInfo].trace and ctx.attr._trace[TraceInfo].trace in str(ctx.label):