platform_build/tools/compliance/Android.bp
Bob Badour 6dd0035e04 compliance package: listshare and checkshare
package to read, consume, and analyze license metadata and dependency
graph.

Includes the below command-line tools:

listshare outputs csv of projects to share to meet restricted and
reciprocal license requirements with one project per line. The first
field is the path to the project, and subsequent fields identify the
license resolutions as colon-separated target:annotations tuples.

checkshare outputs error messages to stderr for any targets where
policy dictates both sharing and not sharing the source-code, and PASS
or FAIL to stdout. exit status indicates success 0 or conflict found 1

Bug: 68860345
Bug: 151177513
Bug: 151953481

Test: m all
Test: m systemlicense
Test: m listshare; out/soong/host/linux-x86/bin/listshare ...
Test: m checkshare; out/soong/host/linux-x86/bin/checkshare ...
Test: m dumpgraph; out/soong/host/linux-x86/dumpgraph ...
Test: m dumpresolutions; out/soong/host/linux-x86/dumpresolutions ...

where ... is the path to the .meta_lic file for the system image. In my
case if

$ export PRODUCT=$(realpath $ANDROID_PRODUCT_OUT --relative-to=$PWD)

... can be expressed as:

${PRODUCT}/gen/META/lic_intermediates/${PRODUCT}/system.img.meta_lic

Change-Id: I4ff3f98848f7e6d03a35734300d763ef5f245d53
2021-12-06 16:39:35 -08:00

88 lines
2.4 KiB
Text

//
// Copyright (C) 2021 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package {
default_applicable_licenses: ["Android-Apache-2.0"],
}
blueprint_go_binary {
name: "checkshare",
srcs: ["cmd/checkshare.go"],
deps: ["compliance-module"],
testSrcs: ["cmd/checkshare_test.go"],
}
blueprint_go_binary {
name: "listshare",
srcs: ["cmd/listshare.go"],
deps: ["compliance-module"],
testSrcs: ["cmd/listshare_test.go"],
}
blueprint_go_binary {
name: "dumpgraph",
srcs: ["cmd/dumpgraph.go"],
deps: ["compliance-module"],
testSrcs: ["cmd/dumpgraph_test.go"],
}
blueprint_go_binary {
name: "dumpresolutions",
srcs: ["cmd/dumpresolutions.go"],
deps: ["compliance-module"],
testSrcs: ["cmd/dumpresolutions_test.go"],
}
bootstrap_go_package {
name: "compliance-module",
srcs: [
"actionset.go",
"condition.go",
"conditionset.go",
"graph.go",
"policy/policy.go",
"policy/resolve.go",
"policy/resolvenotices.go",
"policy/resolveshare.go",
"policy/resolveprivacy.go",
"policy/shareprivacyconflicts.go",
"policy/shipped.go",
"policy/walk.go",
"readgraph.go",
"resolution.go",
"resolutionset.go",
],
testSrcs: [
"condition_test.go",
"conditionset_test.go",
"readgraph_test.go",
"policy/policy_test.go",
"policy/resolve_test.go",
"policy/resolvenotices_test.go",
"policy/resolveshare_test.go",
"policy/resolveprivacy_test.go",
"policy/shareprivacyconflicts_test.go",
"policy/shipped_test.go",
"policy/walk_test.go",
"resolutionset_test.go",
"test_util.go",
],
deps: [
"golang-protobuf-proto",
"golang-protobuf-encoding-prototext",
"license_metadata_proto",
],
pkgPath: "compliance",
}