From 01463814c38bcd9483b70106c9be42e52f724e1c Mon Sep 17 00:00:00 2001 From: Mason Reed Date: Thu, 13 Feb 2025 13:26:44 -0500 Subject: [PATCH] Add licensing check for Rust code If we add new rust dependencies we should now be alerted when a new license type is added. --- .github/workflows/rust.yml | 20 +++++++- about.hbs | 70 +++++++++++++++++++++++++++ about.toml | 10 ++++ arch/msp430/Cargo.toml | 1 + arch/riscv/Cargo.toml | 1 + arch/riscv/disasm/Cargo.toml | 1 + plugins/dwarf/dwarf_export/Cargo.toml | 1 + plugins/dwarf/dwarf_import/Cargo.toml | 1 + plugins/dwarf/dwarfdump/Cargo.toml | 1 + plugins/dwarf/shared/Cargo.toml | 1 + plugins/idb_import/Cargo.toml | 1 + plugins/pdb-ng/Cargo.toml | 1 + plugins/pdb-ng/demo/Cargo.toml | 1 + plugins/warp/Cargo.toml | 1 + rust/Cargo.toml | 1 + rust/binaryninjacore-sys/Cargo.toml | 1 + view/minidump/Cargo.toml | 1 + 17 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 about.hbs create mode 100644 about.toml diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 747e152fb2..5d06aaa482 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -53,4 +53,22 @@ jobs: - name: Typo Check uses: crate-ci/typos@v1.29.4 with: - files: ./rust \ No newline at end of file + files: ./rust + + # Check licensing and produce a list of licenses + licensing: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Install cargo-about + uses: baptiste0928/cargo-install@v3 + with: + crate: cargo-about + version: "0.6.6" + - name: Run license check + run: cargo about generate about.hbs > license.html + - name: Archive license file + uses: actions/upload-artifact@v4 + with: + name: license + path: license.html \ No newline at end of file diff --git a/about.hbs b/about.hbs new file mode 100644 index 0000000000..9091a2a7c3 --- /dev/null +++ b/about.hbs @@ -0,0 +1,70 @@ + + + + + + + +
+
+

Third Party Licenses

+

This page lists the licenses of the **rust** projects used in binaryninja-api.

+
+ +

Overview of licenses:

+ + +

All license text:

+ +
+ + + \ No newline at end of file diff --git a/about.toml b/about.toml new file mode 100644 index 0000000000..aaf511f8a3 --- /dev/null +++ b/about.toml @@ -0,0 +1,10 @@ +accepted = [ + "Apache-2.0", + "MIT", + "Unicode-DFS-2016", + "Unicode-3.0", + "ISC", + "BSD-3-Clause", + "BSL-1.0", + "LicenseRef-scancode-google-patent-license-fuchsia" +] \ No newline at end of file diff --git a/arch/msp430/Cargo.toml b/arch/msp430/Cargo.toml index ddc442e8aa..03940cd873 100644 --- a/arch/msp430/Cargo.toml +++ b/arch/msp430/Cargo.toml @@ -3,6 +3,7 @@ name = "arch_msp430" version = "0.1.0" authors = ["jrozner"] edition = "2021" +license = "Apache-2.0" [dependencies] binaryninja.workspace = true diff --git a/arch/riscv/Cargo.toml b/arch/riscv/Cargo.toml index 1c0979e918..a90000dd0b 100644 --- a/arch/riscv/Cargo.toml +++ b/arch/riscv/Cargo.toml @@ -3,6 +3,7 @@ name = "arch_riscv" version = "0.1.0" authors = ["Ryan Snyder "] edition = "2021" +license = "Apache-2.0" [dependencies] binaryninja.workspace = true diff --git a/arch/riscv/disasm/Cargo.toml b/arch/riscv/disasm/Cargo.toml index a799dc180a..f1e52d4901 100644 --- a/arch/riscv/disasm/Cargo.toml +++ b/arch/riscv/disasm/Cargo.toml @@ -3,6 +3,7 @@ name = "riscv-dis" version = "0.1.0" authors = ["Ryan Snyder "] edition = "2021" +license = "Apache-2.0" [dependencies] byteorder = "1" diff --git a/plugins/dwarf/dwarf_export/Cargo.toml b/plugins/dwarf/dwarf_export/Cargo.toml index a3d0e75b32..570626f60e 100644 --- a/plugins/dwarf/dwarf_export/Cargo.toml +++ b/plugins/dwarf/dwarf_export/Cargo.toml @@ -2,6 +2,7 @@ name = "dwarf_export" version = "0.1.0" edition = "2021" +license = "Apache-2.0" [lib] crate-type = ["cdylib"] diff --git a/plugins/dwarf/dwarf_import/Cargo.toml b/plugins/dwarf/dwarf_import/Cargo.toml index 52f89a4699..9527274a24 100644 --- a/plugins/dwarf/dwarf_import/Cargo.toml +++ b/plugins/dwarf/dwarf_import/Cargo.toml @@ -2,6 +2,7 @@ name = "dwarf_import" version = "0.1.0" edition = "2021" +license = "Apache-2.0" [lib] crate-type = ["cdylib"] diff --git a/plugins/dwarf/dwarfdump/Cargo.toml b/plugins/dwarf/dwarfdump/Cargo.toml index a58e2e33a9..cd13206a1b 100644 --- a/plugins/dwarf/dwarfdump/Cargo.toml +++ b/plugins/dwarf/dwarfdump/Cargo.toml @@ -3,6 +3,7 @@ name = "dwarfdump" version = "0.1.0" authors = ["Kyle Martin "] edition = "2021" +license = "Apache-2.0" [lib] crate-type = ["cdylib"] diff --git a/plugins/dwarf/shared/Cargo.toml b/plugins/dwarf/shared/Cargo.toml index 2e2ee51e20..83ecee936b 100644 --- a/plugins/dwarf/shared/Cargo.toml +++ b/plugins/dwarf/shared/Cargo.toml @@ -3,6 +3,7 @@ name = "dwarfreader" version = "0.1.0" authors = ["Kyle Martin "] edition = "2021" +license = "Apache-2.0" [dependencies] binaryninja.workspace = true diff --git a/plugins/idb_import/Cargo.toml b/plugins/idb_import/Cargo.toml index 1871df6e3c..db41d40a83 100644 --- a/plugins/idb_import/Cargo.toml +++ b/plugins/idb_import/Cargo.toml @@ -3,6 +3,7 @@ name = "idb_import" version = "0.1.0" authors = ["Rubens Brandao "] edition = "2021" +license = "Apache-2.0" [lib] crate-type = ["cdylib"] diff --git a/plugins/pdb-ng/Cargo.toml b/plugins/pdb-ng/Cargo.toml index d431fd649f..3a9017d5cf 100644 --- a/plugins/pdb-ng/Cargo.toml +++ b/plugins/pdb-ng/Cargo.toml @@ -2,6 +2,7 @@ name = "pdb-import-plugin" version = "0.1.0" edition = "2021" +license = "Apache-2.0" [lib] crate-type = ["cdylib"] diff --git a/plugins/pdb-ng/demo/Cargo.toml b/plugins/pdb-ng/demo/Cargo.toml index 02a645d0d9..ddde9b9464 100644 --- a/plugins/pdb-ng/demo/Cargo.toml +++ b/plugins/pdb-ng/demo/Cargo.toml @@ -2,6 +2,7 @@ name = "pdb-import-plugin-static" version = "0.1.0" edition = "2021" +license = "Apache-2.0" [lib] crate-type = ["staticlib"] diff --git a/plugins/warp/Cargo.toml b/plugins/warp/Cargo.toml index e7634075b5..07e0a4de07 100644 --- a/plugins/warp/Cargo.toml +++ b/plugins/warp/Cargo.toml @@ -2,6 +2,7 @@ name = "warp_ninja" version = "0.1.0" edition = "2021" +license = "Apache-2.0" [lib] crate-type = ["lib", "cdylib"] diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 29170b6d1b..361b2057a6 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -4,6 +4,7 @@ version = "0.1.0" authors = ["Ryan Snyder ", "Kyle Martin "] edition = "2021" rust-version = "1.83.0" +license = "Apache-2.0" [features] # This is used when statically linking to prevent exporting CorePluginABIVersion and UiPluginABIVersion. diff --git a/rust/binaryninjacore-sys/Cargo.toml b/rust/binaryninjacore-sys/Cargo.toml index 3c72600aa6..bfd49a4170 100644 --- a/rust/binaryninjacore-sys/Cargo.toml +++ b/rust/binaryninjacore-sys/Cargo.toml @@ -5,6 +5,7 @@ authors = ["Ryan Snyder ", "Kyle Martin "] build = "build.rs" edition = "2021" links = "binaryninjacore" +license = "Apache-2.0" [build-dependencies] bindgen = "0.71.1" diff --git a/view/minidump/Cargo.toml b/view/minidump/Cargo.toml index 276080b4ca..aa1ff40ec0 100644 --- a/view/minidump/Cargo.toml +++ b/view/minidump/Cargo.toml @@ -2,6 +2,7 @@ name = "minidump_bn" version = "0.1.0" edition = "2021" +license = "Apache-2.0" [lib] crate-type = ["cdylib"]