From 00bf3d9b29087b77fe6c508d4fc019bd164f193b Mon Sep 17 00:00:00 2001 From: Bob Badour Date: Tue, 11 Jan 2022 15:04:04 -0800 Subject: [PATCH] Regression testcase for shipped vs nonshipped. 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: I17221ec8fe429b5f745c0733f8bb1ab0ea2f4567 --- tools/compliance/cmd/listshare_test.go | 92 +++++++++++++++++++ tools/compliance/cmd/testdata/README.md | 5 +- .../cmd/testdata/regressgpl1/README.md | 32 +++++++ .../testdata/regressgpl1/bin/bin1.meta_lic | 14 +++ .../testdata/regressgpl1/bin/bin2.meta_lic | 19 ++++ .../testdata/regressgpl1/bin/bin3.meta_lic | 23 +++++ .../regressgpl1/container.zip.meta_lic | 32 +++++++ .../regressgpl1/lib/libapache.so.meta_lic | 14 +++ .../regressgpl1/lib/libc++.so.meta_lic | 8 ++ .../regressgpl1/lib/libgpl.so.meta_lic | 12 +++ .../cmd/testdata/regressgpl2/README.md | 35 +++++++ .../testdata/regressgpl2/bin/bin1.meta_lic | 14 +++ .../testdata/regressgpl2/bin/bin2.meta_lic | 19 ++++ .../testdata/regressgpl2/bin/bin3.meta_lic | 23 +++++ .../regressgpl2/container.zip.meta_lic | 44 +++++++++ .../regressgpl2/lib/libapache.so.meta_lic | 14 +++ .../regressgpl2/lib/libc++.so.meta_lic | 8 ++ .../regressgpl2/lib/libgpl.so.meta_lic | 12 +++ 18 files changed, 419 insertions(+), 1 deletion(-) create mode 100644 tools/compliance/cmd/testdata/regressgpl1/README.md create mode 100644 tools/compliance/cmd/testdata/regressgpl1/bin/bin1.meta_lic create mode 100644 tools/compliance/cmd/testdata/regressgpl1/bin/bin2.meta_lic create mode 100644 tools/compliance/cmd/testdata/regressgpl1/bin/bin3.meta_lic create mode 100644 tools/compliance/cmd/testdata/regressgpl1/container.zip.meta_lic create mode 100644 tools/compliance/cmd/testdata/regressgpl1/lib/libapache.so.meta_lic create mode 100644 tools/compliance/cmd/testdata/regressgpl1/lib/libc++.so.meta_lic create mode 100644 tools/compliance/cmd/testdata/regressgpl1/lib/libgpl.so.meta_lic create mode 100644 tools/compliance/cmd/testdata/regressgpl2/README.md create mode 100644 tools/compliance/cmd/testdata/regressgpl2/bin/bin1.meta_lic create mode 100644 tools/compliance/cmd/testdata/regressgpl2/bin/bin2.meta_lic create mode 100644 tools/compliance/cmd/testdata/regressgpl2/bin/bin3.meta_lic create mode 100644 tools/compliance/cmd/testdata/regressgpl2/container.zip.meta_lic create mode 100644 tools/compliance/cmd/testdata/regressgpl2/lib/libapache.so.meta_lic create mode 100644 tools/compliance/cmd/testdata/regressgpl2/lib/libc++.so.meta_lic create mode 100644 tools/compliance/cmd/testdata/regressgpl2/lib/libgpl.so.meta_lic diff --git a/tools/compliance/cmd/listshare_test.go b/tools/compliance/cmd/listshare_test.go index 2ee249dd7a..71a0be6506 100644 --- a/tools/compliance/cmd/listshare_test.go +++ b/tools/compliance/cmd/listshare_test.go @@ -357,6 +357,98 @@ func Test(t *testing.T) { roots: []string{"lib/libd.so.meta_lic"}, expectedOut: []projectShare{}, }, + { + condition: "regressgpl1", + name: "container", + roots: []string{"container.zip.meta_lic"}, + expectedOut: []projectShare{ + { + project: "bin/threelibraries", + conditions: []string{"restricted"}, + }, + { + project: "container/zip", + conditions: []string{"restricted"}, + }, + }, + }, + { + condition: "regressgpl1", + name: "containerplus", + roots: []string{"container.zip.meta_lic", "lib/libapache.so.meta_lic", "lib/libc++.so.meta_lic"}, + expectedOut: []projectShare{ + { + project: "bin/threelibraries", + conditions: []string{"restricted"}, + }, + { + project: "container/zip", + conditions: []string{"restricted"}, + }, + { + project: "lib/apache", + conditions: []string{"restricted"}, + }, + { + project: "lib/c++", + conditions: []string{"restricted"}, + }, + }, + }, + { + condition: "regressgpl2", + name: "container", + roots: []string{"container.zip.meta_lic"}, + expectedOut: []projectShare{ + { + project: "bin/threelibraries", + conditions: []string{"restricted"}, + }, + { + project: "container/zip", + conditions: []string{"restricted"}, + }, + { + project: "lib/apache", + conditions: []string{"restricted"}, + }, + { + project: "lib/c++", + conditions: []string{"restricted"}, + }, + { + project: "lib/gpl", + conditions: []string{"restricted"}, + }, + }, + }, + { + condition: "regressgpl2", + name: "containerplus", + roots: []string{"container.zip.meta_lic", "lib/libapache.so.meta_lic", "lib/libc++.so.meta_lic"}, + expectedOut: []projectShare{ + { + project: "bin/threelibraries", + conditions: []string{"restricted"}, + }, + { + project: "container/zip", + conditions: []string{"restricted"}, + }, + { + project: "lib/apache", + conditions: []string{"restricted"}, + }, + { + project: "lib/c++", + conditions: []string{"restricted"}, + }, + { + project: "lib/gpl", + conditions: []string{"restricted"}, + }, + }, + }, } for _, tt := range tests { t.Run(tt.condition+" "+tt.name, func(t *testing.T) { diff --git a/tools/compliance/cmd/testdata/README.md b/tools/compliance/cmd/testdata/README.md index 9872c04452..44d687c6e8 100644 --- a/tools/compliance/cmd/testdata/README.md +++ b/tools/compliance/cmd/testdata/README.md @@ -1,9 +1,12 @@ ## Test data -Each directory under testdata/ defines a similar build graph. +Each non-regression directory under testdata/ defines a similar build graph. All have the same structure, but different versions of the graph have different license metadata. +The regression* directories can have whatever structure is required for the +specific test case. + ### Testdata build graph structure: The structure is meant to simulate some common scenarios: diff --git a/tools/compliance/cmd/testdata/regressgpl1/README.md b/tools/compliance/cmd/testdata/regressgpl1/README.md new file mode 100644 index 0000000000..6ab872d31c --- /dev/null +++ b/tools/compliance/cmd/testdata/regressgpl1/README.md @@ -0,0 +1,32 @@ +## Shipped versus non-shipped libraries with restricted license + +### Testdata build graph structure: + +A restricted licensed library sandwiched between a notice library and a notice +binary. The source-code for the libraries only needs to be shared if shipped +alongside the container with the binaries. + +```dot +strict digraph { + rankdir=LR; + bin1 [label="bin/bin1.meta_lic\nnotice"]; + bin2 [label="bin/bin2.meta_lic\nnotice"]; + bin3 [label="bin/bin3.meta_lic\nnotice"]; + container [label="container.zip.meta_lic\nnotice"]; + libapache [label="lib/libapache.so.meta_lic\nnotice"]; + libcxx [label="lib/libc++.so.meta_lic\nnotice"]; + libgpl [label="lib/libgpl.so.meta_lic\nrestricted"]; + container -> bin1[label="static"]; + container -> bin2 [label="static"]; + container -> bin3 [label="static"]; + bin1 -> libcxx [label="dynamic"]; + bin2 -> libapache [label="dynamic"]; + bin2 -> libcxx [label="dynamic"]; + bin3 -> libapache [label="dynamic"]; + bin3 -> libcxx [label="dynamic"]; + bin3 -> libgpl [label="dynamic"]; + libapache -> libcxx [label="dynamic"]; + libgpl -> libcxx [label="dynamic"]; + {rank=same; container} +} +``` diff --git a/tools/compliance/cmd/testdata/regressgpl1/bin/bin1.meta_lic b/tools/compliance/cmd/testdata/regressgpl1/bin/bin1.meta_lic new file mode 100644 index 0000000000..4afd240223 --- /dev/null +++ b/tools/compliance/cmd/testdata/regressgpl1/bin/bin1.meta_lic @@ -0,0 +1,14 @@ +package_name: "Android" +module_classes: "EXECUTABLES" +projects: "bin/onelibrary" +license_kinds: "SPDX-license-identifier-Apache-2.0" +license_conditions: "notice" +license_texts: "build/soong/licenses/LICENSE" +is_container: false +built: "out/target/product/fictional/obj/EXECUTABLES/bin_intermediates/bin1" +installed: "out/target/product/fictional/system/bin/bin1" +sources: "out/target/product/fictional/system/lib/libc++.so" +deps: { + file: "testdata/regressgpl1/lib/libc++.so.meta_lic" + annotations: "dynamic" +} diff --git a/tools/compliance/cmd/testdata/regressgpl1/bin/bin2.meta_lic b/tools/compliance/cmd/testdata/regressgpl1/bin/bin2.meta_lic new file mode 100644 index 0000000000..4e56fa357a --- /dev/null +++ b/tools/compliance/cmd/testdata/regressgpl1/bin/bin2.meta_lic @@ -0,0 +1,19 @@ +package_name: "Android" +module_classes: "EXECUTABLES" +projects: "bin/twolibraries" +license_kinds: "SPDX-license-identifier-Apache-2.0" +license_conditions: "notice" +license_texts: "build/soong/licenses/LICENSE" +is_container: false +built: "out/target/product/fictional/obj/EXECUTABLES/bin_intermediates/bin2" +installed: "out/target/product/fictional/system/bin/bin2" +sources: "out/target/product/fictional/system/lib/libc++.so" +sources: "out/target/product/fictional/system/lib/libapache.so" +deps: { + file: "testdata/regressgpl1/lib/libc++.so.meta_lic" + annotations: "dynamic" +} +deps: { + file: "testdata/regressgpl1/lib/libapache.so.meta_lic" + annotations: "dynamic" +} diff --git a/tools/compliance/cmd/testdata/regressgpl1/bin/bin3.meta_lic b/tools/compliance/cmd/testdata/regressgpl1/bin/bin3.meta_lic new file mode 100644 index 0000000000..16290d36ea --- /dev/null +++ b/tools/compliance/cmd/testdata/regressgpl1/bin/bin3.meta_lic @@ -0,0 +1,23 @@ +package_name: "Compiler" +module_classes: "EXECUTABLES" +projects: "bin/threelibraries" +license_kinds: "SPDX-license-identifier-NCSA" +license_conditions: "notice" +is_container: false +built: "out/target/product/fictional/obj/EXECUTABLES/bin_intermediates/bin3" +installed: "out/target/product/fictional/system/bin/bin3" +sources: "out/target/product/fictional/system/lib/libc++.so" +sources: "out/target/product/fictional/system/lib/libapache.so" +sources: "out/target/product/fictional/system/lib/libgpl.so" +deps: { + file: "testdata/regressgpl1/lib/libc++.so.meta_lic" + annotations: "dynamic" +} +deps: { + file: "testdata/regressgpl1/lib/libapache.so.meta_lic" + annotations: "dynamic" +} +deps: { + file: "testdata/regressgpl1/lib/libgpl.so.meta_lic" + annotations: "dynamic" +} diff --git a/tools/compliance/cmd/testdata/regressgpl1/container.zip.meta_lic b/tools/compliance/cmd/testdata/regressgpl1/container.zip.meta_lic new file mode 100644 index 0000000000..295bcdbac2 --- /dev/null +++ b/tools/compliance/cmd/testdata/regressgpl1/container.zip.meta_lic @@ -0,0 +1,32 @@ +package_name: "Android" +projects: "container/zip" +license_kinds: "SPDX-license-identifier-Apache-2.0" +license_conditions: "notice" +license_texts: "build/soong/licenses/LICENSE" +is_container: true +built: "out/target/product/fictional/obj/ETC/container_intermediates/container.zip" +installed: "out/target/product/fictional/data/container.zip" +install_map { + from_path: "out/target/product/fictional/system/lib/" + container_path: "" +} +install_map { + from_path: "out/target/product/fictional/system/bin/" + container_path: "" +} +sources: "out/target/product/fictional/system/bin/bin1" +sources: "out/target/product/fictional/system/bin/bin2" +sources: "out/target/product/fictional/system/bin/bin3" +sources: "out/target/product/fictional/system/lib/libapache.so" +deps: { + file: "testdata/regressgpl1/bin/bin1.meta_lic" + annotations: "static" +} +deps: { + file: "testdata/regressgpl1/bin/bin2.meta_lic" + annotations: "static" +} +deps: { + file: "testdata/regressgpl1/bin/bin3.meta_lic" + annotations: "static" +} diff --git a/tools/compliance/cmd/testdata/regressgpl1/lib/libapache.so.meta_lic b/tools/compliance/cmd/testdata/regressgpl1/lib/libapache.so.meta_lic new file mode 100644 index 0000000000..9184501536 --- /dev/null +++ b/tools/compliance/cmd/testdata/regressgpl1/lib/libapache.so.meta_lic @@ -0,0 +1,14 @@ +package_name: "Android" +projects: "lib/apache" +license_kinds: "SPDX-license-identifier-Apache-2.0" +license_conditions: "notice" +license_texts: "build/soong/licenses/LICENSE" +is_container: false +built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/libapache.so" +built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/libapache.a" +installed: "out/target/product/fictional/system/lib/libapache.so" +sources: "out/target/product/fictional/system/lib/libc++.so" +deps: { + file: "testdata/regressgpl1/lib/libc++.so.meta_lic" + annotations: "dynamic" +} diff --git a/tools/compliance/cmd/testdata/regressgpl1/lib/libc++.so.meta_lic b/tools/compliance/cmd/testdata/regressgpl1/lib/libc++.so.meta_lic new file mode 100644 index 0000000000..b789377adc --- /dev/null +++ b/tools/compliance/cmd/testdata/regressgpl1/lib/libc++.so.meta_lic @@ -0,0 +1,8 @@ +package_name: "Device" +projects: "lib/c++" +license_kinds: "SPDX-license-identifier-BSD" +license_conditions: "notice" +is_container: false +built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/libc++.so" +built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/libc++.a" +installed: "out/target/product/fictional/system/lib/libc++.so" diff --git a/tools/compliance/cmd/testdata/regressgpl1/lib/libgpl.so.meta_lic b/tools/compliance/cmd/testdata/regressgpl1/lib/libgpl.so.meta_lic new file mode 100644 index 0000000000..a3afa2b26f --- /dev/null +++ b/tools/compliance/cmd/testdata/regressgpl1/lib/libgpl.so.meta_lic @@ -0,0 +1,12 @@ +package_name: "External" +projects: "lib/gpl" +license_kinds: "SPDX-license-identifier-GPL-2.0" +license_conditions: "restricted" +is_container: false +built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/libgpl.so" +installed: "out/target/product/fictional/system/lib/libgpl.so" +sources: "out/target/product/fictional/system/lib/libc++.so" +deps: { + file: "testdata/regressgpl1/lib/libc++.so.meta_lic" + annotations: "dynamic" +} diff --git a/tools/compliance/cmd/testdata/regressgpl2/README.md b/tools/compliance/cmd/testdata/regressgpl2/README.md new file mode 100644 index 0000000000..9da0f4d1da --- /dev/null +++ b/tools/compliance/cmd/testdata/regressgpl2/README.md @@ -0,0 +1,35 @@ +## Libraries shipped inside container with restricted license + +### Testdata build graph structure: + +A restricted licensed library sandwiched between a notice library and a notice +binary. The source-code for the libraries needs to be shared when shipped as +part of the container with the binaries. + +```dot +strict digraph { + rankdir=LR; + bin1 [label="bin/bin1.meta_lic\nnotice"]; + bin2 [label="bin/bin2.meta_lic\nnotice"]; + bin3 [label="bin/bin3.meta_lic\nnotice"]; + container [label="container.zip.meta_lic\nnotice"]; + libapache [label="lib/libapache.so.meta_lic\nnotice"]; + libcxx [label="lib/libc++.so.meta_lic\nnotice"]; + libgpl [label="lib/libgpl.so.meta_lic\nrestricted"]; + container -> bin1[label="static"]; + container -> bin2 [label="static"]; + container -> bin3 [label="static"]; + container -> libapache [label="static"]; + container -> libcxx [label="static"]; + container -> libgpl [label="static"]; + bin1 -> libcxx [label="dynamic"]; + bin2 -> libapache [label="dynamic"]; + bin2 -> libcxx [label="dynamic"]; + bin3 -> libapache [label="dynamic"]; + bin3 -> libcxx [label="dynamic"]; + bin3 -> libgpl [label="dynamic"]; + libapache -> libcxx [label="dynamic"]; + libgpl -> libcxx [label="dynamic"]; + {rank=same; container} +} +``` diff --git a/tools/compliance/cmd/testdata/regressgpl2/bin/bin1.meta_lic b/tools/compliance/cmd/testdata/regressgpl2/bin/bin1.meta_lic new file mode 100644 index 0000000000..839fd9c41f --- /dev/null +++ b/tools/compliance/cmd/testdata/regressgpl2/bin/bin1.meta_lic @@ -0,0 +1,14 @@ +package_name: "Android" +module_classes: "EXECUTABLES" +projects: "bin/onelibrary" +license_kinds: "SPDX-license-identifier-Apache-2.0" +license_conditions: "notice" +license_texts: "build/soong/licenses/LICENSE" +is_container: false +built: "out/target/product/fictional/obj/EXECUTABLES/bin_intermediates/bin1" +installed: "out/target/product/fictional/system/bin/bin1" +sources: "out/target/product/fictional/system/lib/libc++.so" +deps: { + file: "testdata/regressgpl2/lib/libc++.so.meta_lic" + annotations: "dynamic" +} diff --git a/tools/compliance/cmd/testdata/regressgpl2/bin/bin2.meta_lic b/tools/compliance/cmd/testdata/regressgpl2/bin/bin2.meta_lic new file mode 100644 index 0000000000..96baaaed53 --- /dev/null +++ b/tools/compliance/cmd/testdata/regressgpl2/bin/bin2.meta_lic @@ -0,0 +1,19 @@ +package_name: "Android" +module_classes: "EXECUTABLES" +projects: "bin/twolibraries" +license_kinds: "SPDX-license-identifier-Apache-2.0" +license_conditions: "notice" +license_texts: "build/soong/licenses/LICENSE" +is_container: false +built: "out/target/product/fictional/obj/EXECUTABLES/bin_intermediates/bin2" +installed: "out/target/product/fictional/system/bin/bin2" +sources: "out/target/product/fictional/system/lib/libc++.so" +sources: "out/target/product/fictional/system/lib/libapache.so" +deps: { + file: "testdata/regressgpl2/lib/libc++.so.meta_lic" + annotations: "dynamic" +} +deps: { + file: "testdata/regressgpl2/lib/libapache.so.meta_lic" + annotations: "dynamic" +} diff --git a/tools/compliance/cmd/testdata/regressgpl2/bin/bin3.meta_lic b/tools/compliance/cmd/testdata/regressgpl2/bin/bin3.meta_lic new file mode 100644 index 0000000000..3cd86028d7 --- /dev/null +++ b/tools/compliance/cmd/testdata/regressgpl2/bin/bin3.meta_lic @@ -0,0 +1,23 @@ +package_name: "Compiler" +module_classes: "EXECUTABLES" +projects: "bin/threelibraries" +license_kinds: "SPDX-license-identifier-NCSA" +license_conditions: "notice" +is_container: false +built: "out/target/product/fictional/obj/EXECUTABLES/bin_intermediates/bin3" +installed: "out/target/product/fictional/system/bin/bin3" +sources: "out/target/product/fictional/system/lib/libc++.so" +sources: "out/target/product/fictional/system/lib/libapache.so" +sources: "out/target/product/fictional/system/lib/libgpl.so" +deps: { + file: "testdata/regressgpl2/lib/libc++.so.meta_lic" + annotations: "dynamic" +} +deps: { + file: "testdata/regressgpl2/lib/libapache.so.meta_lic" + annotations: "dynamic" +} +deps: { + file: "testdata/regressgpl2/lib/libgpl.so.meta_lic" + annotations: "dynamic" +} diff --git a/tools/compliance/cmd/testdata/regressgpl2/container.zip.meta_lic b/tools/compliance/cmd/testdata/regressgpl2/container.zip.meta_lic new file mode 100644 index 0000000000..71b68cdec2 --- /dev/null +++ b/tools/compliance/cmd/testdata/regressgpl2/container.zip.meta_lic @@ -0,0 +1,44 @@ +package_name: "Android" +projects: "container/zip" +license_kinds: "SPDX-license-identifier-Apache-2.0" +license_conditions: "notice" +license_texts: "build/soong/licenses/LICENSE" +is_container: true +built: "out/target/product/fictional/obj/ETC/container_intermediates/container.zip" +installed: "out/target/product/fictional/data/container.zip" +install_map { + from_path: "out/target/product/fictional/system/lib/" + container_path: "" +} +install_map { + from_path: "out/target/product/fictional/system/bin/" + container_path: "" +} +sources: "out/target/product/fictional/system/bin/bin1" +sources: "out/target/product/fictional/system/bin/bin2" +sources: "out/target/product/fictional/system/bin/bin3" +sources: "out/target/product/fictional/system/lib/libapache.so" +deps: { + file: "testdata/regressgpl2/bin/bin1.meta_lic" + annotations: "static" +} +deps: { + file: "testdata/regressgpl2/bin/bin2.meta_lic" + annotations: "static" +} +deps: { + file: "testdata/regressgpl2/bin/bin3.meta_lic" + annotations: "static" +} +deps: { + file: "testdata/regressgpl2/lib/libapache.so.meta_lic" + annotations: "static" +} +deps: { + file: "testdata/regressgpl2/lib/libc++.so.meta_lic" + annotations: "static" +} +deps: { + file: "testdata/regressgpl2/lib/libgpl.so.meta_lic" + annotations: "static" +} diff --git a/tools/compliance/cmd/testdata/regressgpl2/lib/libapache.so.meta_lic b/tools/compliance/cmd/testdata/regressgpl2/lib/libapache.so.meta_lic new file mode 100644 index 0000000000..ae47340d8b --- /dev/null +++ b/tools/compliance/cmd/testdata/regressgpl2/lib/libapache.so.meta_lic @@ -0,0 +1,14 @@ +package_name: "Android" +projects: "lib/apache" +license_kinds: "SPDX-license-identifier-Apache-2.0" +license_conditions: "notice" +license_texts: "build/soong/licenses/LICENSE" +is_container: false +built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/libapache.so" +built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/libapache.a" +installed: "out/target/product/fictional/system/lib/libapache.so" +sources: "out/target/product/fictional/system/lib/libc++.so" +deps: { + file: "testdata/regressgpl2/lib/libc++.so.meta_lic" + annotations: "dynamic" +} diff --git a/tools/compliance/cmd/testdata/regressgpl2/lib/libc++.so.meta_lic b/tools/compliance/cmd/testdata/regressgpl2/lib/libc++.so.meta_lic new file mode 100644 index 0000000000..b789377adc --- /dev/null +++ b/tools/compliance/cmd/testdata/regressgpl2/lib/libc++.so.meta_lic @@ -0,0 +1,8 @@ +package_name: "Device" +projects: "lib/c++" +license_kinds: "SPDX-license-identifier-BSD" +license_conditions: "notice" +is_container: false +built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/libc++.so" +built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/libc++.a" +installed: "out/target/product/fictional/system/lib/libc++.so" diff --git a/tools/compliance/cmd/testdata/regressgpl2/lib/libgpl.so.meta_lic b/tools/compliance/cmd/testdata/regressgpl2/lib/libgpl.so.meta_lic new file mode 100644 index 0000000000..4e78697d93 --- /dev/null +++ b/tools/compliance/cmd/testdata/regressgpl2/lib/libgpl.so.meta_lic @@ -0,0 +1,12 @@ +package_name: "External" +projects: "lib/gpl" +license_kinds: "SPDX-license-identifier-GPL-2.0" +license_conditions: "restricted" +is_container: false +built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/libgpl.so" +installed: "out/target/product/fictional/system/lib/libgpl.so" +sources: "out/target/product/fictional/system/lib/libc++.so" +deps: { + file: "testdata/regressgpl2/lib/libc++.so.meta_lic" + annotations: "dynamic" +}