From c800fb42df65cd5efe53b449bec3e084461f7dcb Mon Sep 17 00:00:00 2001 From: Tony Aiuto Date: Fri, 20 May 2022 15:17:39 -0400 Subject: [PATCH 1/6] Declare that bazel is under an Apache 2.0 license --- BUILD | 10 ++++++++++ WORKSPACE | 10 ++++++---- src/BUILD | 2 ++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/BUILD b/BUILD index 5eb64a98897fd6..5dd13398ae2f0b 100644 --- a/BUILD +++ b/BUILD @@ -2,10 +2,19 @@ load("//tools/distributions:distribution_rules.bzl", "distrib_jar_filegroup") load("//tools/python:private/defs.bzl", "py_binary") +load("@rules_license//rules:license.bzl", "license") load("@rules_pkg//:pkg.bzl", "pkg_tar") package(default_visibility = ["//scripts/release:__pkg__"]) +license( + name = "license", + license_kinds = [ + "@rules_license//licenses/spdx:Apache-2.0", + ], + license_text = "LICENSE", +) + exports_files(["LICENSE"]) filegroup( @@ -31,6 +40,7 @@ filegroup( "//src/main/starlark/tests/builtins_bzl:srcs", ] + glob([".bazelci/*"]) + [".bazelrc"], visibility = ["//src/test/shell/bazel:__pkg__"], + applicable_licenses = ["//:license"], ) filegroup( diff --git a/WORKSPACE b/WORKSPACE index 2e3994dbc88fba..c7fa7f861cdaae 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -57,6 +57,12 @@ bind( actual = "//third_party:guava", ) +# We must control the version of rules_license we use, so we load ours before +# any other repo can bring it in through their deps. +dist_http_archive( + name = "rules_license", +) + # For src/test/shell/bazel:test_srcs load("//src/test/shell/bazel:list_source_repository.bzl", "list_source_repository") @@ -658,7 +664,3 @@ debian_deps() load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace") bazel_skylib_workspace() - -dist_http_archive( - name = "rules_license", -) diff --git a/src/BUILD b/src/BUILD index 92bbb5586a0ab8..025c7c3ed23369 100644 --- a/src/BUILD +++ b/src/BUILD @@ -5,6 +5,8 @@ load(":embedded_tools.bzl", "srcsfile") load(":rule_size_test.bzl", "rule_size_test") load("//src:release_archive.bzl", "release_archive") +package(default_applicable_licenses = ["//:license"]) + exports_files(["jdeps_modules.golden"]) md5_cmd = "set -e -o pipefail && %s $(SRCS) | %s | %s > $@" From 9f62c99647ccee78c957fcbf18c38d7175f20ae7 Mon Sep 17 00:00:00 2001 From: Tony Aiuto Date: Fri, 20 May 2022 16:05:00 -0400 Subject: [PATCH 2/6] add tool to show the gathering --- BUILD | 2 ++ src/BUILD | 1 + tools/BUILD | 1 + 3 files changed, 4 insertions(+) diff --git a/BUILD b/BUILD index 5dd13398ae2f0b..59e14ecfe3242e 100644 --- a/BUILD +++ b/BUILD @@ -12,7 +12,9 @@ license( license_kinds = [ "@rules_license//licenses/spdx:Apache-2.0", ], + copyright_notice = "Copyright © 2014 The Bazel Authors. All rights reserved.", license_text = "LICENSE", + package_name = "bazelbuild/bazel", ) exports_files(["LICENSE"]) diff --git a/src/BUILD b/src/BUILD index 025c7c3ed23369..d25408881305f2 100644 --- a/src/BUILD +++ b/src/BUILD @@ -381,6 +381,7 @@ genrule( "//scripts/packages:__pkg__", # For installer generation "//src/java:__subpackages__", # For command line reference generation "//src/test:__subpackages__", # For integration tests + "//tools/compliance:__pkg__", # For license gathering ], ) for suffix, jdk in [ ("-dev", "_jdk_allmodules"), diff --git a/tools/BUILD b/tools/BUILD index cddfc5bf10c84b..fa7450a1a7a74a 100644 --- a/tools/BUILD +++ b/tools/BUILD @@ -9,6 +9,7 @@ filegroup( "//tools/buildstamp:srcs", "//tools/build_defs:srcs", "//tools/build_rules:srcs", + "//tools/compliance:srcs", "//tools/config:srcs", "//tools/coverage:srcs", "//tools/ctexplain:srcs", From 082d2f0352fb3e432a5891c26c9e6eb9daa5c2e5 Mon Sep 17 00:00:00 2001 From: Tony Aiuto Date: Fri, 20 May 2022 16:09:49 -0400 Subject: [PATCH 3/6] addmissing --- tools/compliance/BUILD | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 tools/compliance/BUILD diff --git a/tools/compliance/BUILD b/tools/compliance/BUILD new file mode 100644 index 00000000000000..8956cb33fc82c6 --- /dev/null +++ b/tools/compliance/BUILD @@ -0,0 +1,25 @@ +# Tools for gathering OSS licenses + +load("@rules_license//rules:compliance.bzl", "check_license") + +licenses(["notice"]) # Apache 2.0 + +filegroup( + name = "srcs", + srcs = glob(["**"]), + visibility = [ + "//tools:__subpackages__", + "@bazel_tools//tools:__subpackages__", + ], +) + +check_license( + name = "check_bazel", + check_conditions = False, + copyright_notices = "bazel_copyrights.txt", + license_texts = "bazel_licenses.txt", + report = "bazel_report", + deps = [ + "//src:bazel-bin_nojdk", + ], +) From a05c7df66fdb2a1eb0bd6572b3ae3cd6149cf2f1 Mon Sep 17 00:00:00 2001 From: Tony Aiuto Date: Fri, 20 May 2022 17:11:24 -0400 Subject: [PATCH 4/6] make license reference absolute because @bazel_tools is a borked up process --- BUILD | 2 +- src/BUILD | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/BUILD b/BUILD index 59e14ecfe3242e..95909c7ac4ec72 100644 --- a/BUILD +++ b/BUILD @@ -42,7 +42,7 @@ filegroup( "//src/main/starlark/tests/builtins_bzl:srcs", ] + glob([".bazelci/*"]) + [".bazelrc"], visibility = ["//src/test/shell/bazel:__pkg__"], - applicable_licenses = ["//:license"], + applicable_licenses = ["@io_bazel//:license"], ) filegroup( diff --git a/src/BUILD b/src/BUILD index d25408881305f2..4bf0179a24d213 100644 --- a/src/BUILD +++ b/src/BUILD @@ -5,7 +5,7 @@ load(":embedded_tools.bzl", "srcsfile") load(":rule_size_test.bzl", "rule_size_test") load("//src:release_archive.bzl", "release_archive") -package(default_applicable_licenses = ["//:license"]) +package(default_applicable_licenses = ["@io_bazel//:license"]) exports_files(["jdeps_modules.golden"]) From c6e1b7fd573eabcb564812b910f4afbd73686eb6 Mon Sep 17 00:00:00 2001 From: Tony Aiuto Date: Fri, 20 May 2022 21:33:59 -0400 Subject: [PATCH 5/6] more integration tests --- distdir_deps.bzl | 1 + .../build/lib/analysis/mock/BazelAnalysisMock.java | 3 ++- src/test/shell/BUILD | 1 + src/test/shell/bazel/srcs_test.sh | 1 + src/test/shell/testenv.sh.tmpl | 10 ++++++++++ 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/distdir_deps.bzl b/distdir_deps.bzl index 6a7fc33aabd60b..42a1aa6ebf0b77 100644 --- a/distdir_deps.bzl +++ b/distdir_deps.bzl @@ -233,6 +233,7 @@ DIST_DEPS = { ], "used_in": [ "additional_distfiles", + "test_WORKSPACE_files", ], }, "rules_pkg": { diff --git a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java index 4c375d7b7efc37..d3135af05e8098 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java @@ -96,7 +96,8 @@ public ImmutableList getWorkspaceRepos() { "local_config_platform", "local_config_xcode", "platforms", - "rules_java"); + "rules_java", + "rules_license"); } @Override diff --git a/src/test/shell/BUILD b/src/test/shell/BUILD index e8db18642df19c..f3054b8c6c8bf4 100644 --- a/src/test/shell/BUILD +++ b/src/test/shell/BUILD @@ -28,6 +28,7 @@ gen_workspace_stanza( repos = [ "rules_cc", "rules_java", + "rules_license", "rules_proto", ], template = "testenv.sh.tmpl", diff --git a/src/test/shell/bazel/srcs_test.sh b/src/test/shell/bazel/srcs_test.sh index 1fb25f1b9ceb67..6a6e5b58060a9a 100755 --- a/src/test/shell/bazel/srcs_test.sh +++ b/src/test/shell/bazel/srcs_test.sh @@ -25,6 +25,7 @@ SRCS_QUERY="$(mktemp)" # a local_repository located in third_party. cat "${TEST_SRCDIR}/io_bazel/src/test/shell/bazel/srcs_list" \ | sed -e 's|@bazel_tools//||' \ + | sed -e 's|@io_bazel//||' \ | sed -e 's|@\([^/]*\)//|third_party/\1|' \ | sed -e 's|^//||' | sed -e 's|^:||' | sed -e 's|:|/|' \ | sort -u >"${SRCS_QUERY}" diff --git a/src/test/shell/testenv.sh.tmpl b/src/test/shell/testenv.sh.tmpl index 8d49fcbaffe535..3559bba8a55679 100755 --- a/src/test/shell/testenv.sh.tmpl +++ b/src/test/shell/testenv.sh.tmpl @@ -325,6 +325,7 @@ EOF "remotejdk18_win_arm64_for_testing" "rules_cc" "rules_java" + "rules_license" "rules_proto" "rules_python" ) @@ -543,6 +544,14 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") EOF } +function add_rules_license_to_workspace() { + cat >> "$1"<> "$1"< Date: Fri, 20 May 2022 22:21:56 -0400 Subject: [PATCH 6/6] foo --- .../devtools/build/lib/analysis/mock/BazelAnalysisMock.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java index d3135af05e8098..4c375d7b7efc37 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java @@ -96,8 +96,7 @@ public ImmutableList getWorkspaceRepos() { "local_config_platform", "local_config_xcode", "platforms", - "rules_java", - "rules_license"); + "rules_java"); } @Override