r3bl-org / r3bl-open-core

TUI framework and developer productivity apps in Rust πŸ¦€
https://r3bl.com
Apache License 2.0
351 stars 20 forks source link

[all] Do a license audit on all crates used in workspace `r3bl_rs_utils` #112

Closed nazmulidris closed 1 year ago

nazmulidris commented 1 year ago

Use of r3bl_ansi_color crate and stop using ansi-colours crate.

Make sure to remove all dependencies that don't use MIT or Apache (ie, that use any kind of copyleft license), eg: ansi-colours, maybe lolcat?

We should look at all the crates we have as dependencies and remove the ones that have incompatible licenses to ours (Apache2.0), such as any copyleft type license.

More info

Related issues:

Harshil-Jani commented 1 year ago

Hey @nazmulidris have you checked this out yet ? https://embarkstudios.github.io/cargo-deny/index.html

If you look at config in ch-3.1 we can set based on our requirement

[licenses]
unlicensed = "deny"
allow-osi-fsf-free = "neither"
copyleft = "deny"
# We want really high confidence when inferring licenses from text
confidence-threshold = 0.93
allow = [
    "Apache-2.0",
    "Apache-2.0 WITH LLVM-exception",
    "MIT",
    "MPL-2.0",
    "BSD-3-Clause",
    "ISC",
]

And we can test this directly. I feel this to be a good alternative to have instead of building entire application to do this. I suggest to include this into the CI using Github Actions https://github.com/EmbarkStudios/cargo-deny-action. Please let me know about this :)

nazmulidris commented 1 year ago

@Harshil-Jani That is a great suggestion πŸ‘πŸ½ . I didn't know about that crate. I like the idea of the GitHub Action as well to automate this in CI/CD. That's cool that the GA was written by EmbardStudios. We use crossterm which is written by Timon who works there πŸ‘πŸ½

Harshil-Jani commented 1 year ago

Hii, So I have done the audit locally and below is the script which you can include in deny.toml in project root. And then run cargo deny check licenses.

[licenses]
unlicensed = "deny"
allow = [
    "MIT",
    "Apache-2.0",
]
copyleft = "deny"

This is the generated report based on above configuration

error[rejected]: failed to satisfy license requirements
  β”Œβ”€ ansi_colours 1.2.2 (registry+https://github.com/rust-lang/crates.io-index):4:12
  β”‚
4 β”‚ license = "LGPL-3.0-or-later"
  β”‚            ^^^^^^^^^^^^^^^^^
  β”‚            β”‚
  β”‚            license expression retrieved via Cargo.toml `license`
  β”‚            rejected: license is considered copyleft
  β”‚
  = ansi_colours v1.2.2
    β”œβ”€β”€ r3bl_rs_utils_core v0.9.3
    β”‚   β”œβ”€β”€ r3bl_redux v0.2.3
    β”‚   β”‚   β”œβ”€β”€ r3bl_rs_utils v0.9.8
    β”‚   β”‚   └── r3bl_tui v0.3.4
    β”‚   β”‚       └── r3bl_rs_utils v0.9.8 (*)
    β”‚   β”œβ”€β”€ r3bl_rs_utils v0.9.8 (*)
    β”‚   β”œβ”€β”€ r3bl_rs_utils_macro v0.9.3
    β”‚   β”‚   β”œβ”€β”€ r3bl_redux v0.2.3 (*)
    β”‚   β”‚   β”œβ”€β”€ r3bl_rs_utils v0.9.8 (*)
    β”‚   β”‚   └── r3bl_tui v0.3.4 (*)
    β”‚   └── r3bl_tui v0.3.4 (*)
    └── r3bl_tui v0.3.4 (*)

error[rejected]: failed to satisfy license requirements
  β”Œβ”€ encoding_rs 0.8.33 (registry+https://github.com/rust-lang/crates.io-index):4:13
  β”‚
4 β”‚ license = "(Apache-2.0 OR MIT) AND BSD-3-Clause"
  β”‚            -^^^^^^^^^^----^^^------^^^^^^^^^^^^
  β”‚            β”‚β”‚             β”‚        β”‚
  β”‚            β”‚β”‚             β”‚        rejected: not explicitly allowed
  β”‚            β”‚β”‚             accepted: license is explicitly allowed
  β”‚            β”‚accepted: license is explicitly allowed
  β”‚            license expression retrieved via Cargo.toml `license`
  β”‚
  = encoding_rs v0.8.33
    └── reqwest v0.11.20
        └── r3bl_rs_utils_core v0.9.3
            β”œβ”€β”€ r3bl_redux v0.2.3
            β”‚   β”œβ”€β”€ r3bl_rs_utils v0.9.8
            β”‚   └── r3bl_tui v0.3.4
            β”‚       └── r3bl_rs_utils v0.9.8 (*)
            β”œβ”€β”€ r3bl_rs_utils v0.9.8 (*)
            β”œβ”€β”€ r3bl_rs_utils_macro v0.9.3
            β”‚   β”œβ”€β”€ r3bl_redux v0.2.3 (*)
            β”‚   β”œβ”€β”€ r3bl_rs_utils v0.9.8 (*)
            β”‚   └── r3bl_tui v0.3.4 (*)
            └── r3bl_tui v0.3.4 (*)

error[rejected]: failed to satisfy license requirements
  β”Œβ”€ unicode-ident 1.0.12 (registry+https://github.com/rust-lang/crates.io-index):4:13
  β”‚
4 β”‚ license = "(MIT OR Apache-2.0) AND Unicode-DFS-2016"
  β”‚            -^^^----^^^^^^^^^^------^^^^^^^^^^^^^^^^
  β”‚            β”‚β”‚      β”‚               β”‚
  β”‚            β”‚β”‚      β”‚               rejected: not explicitly allowed
  β”‚            β”‚β”‚      accepted: license is explicitly allowed
  β”‚            β”‚accepted: license is explicitly allowed
  β”‚            license expression retrieved via Cargo.toml `license`
  β”‚
  = unicode-ident v1.0.12
    β”œβ”€β”€ proc-macro2 v1.0.67
    β”‚   β”œβ”€β”€ async-trait v0.1.73
    β”‚   β”‚   β”œβ”€β”€ r3bl_redux v0.2.3
    β”‚   β”‚   β”‚   β”œβ”€β”€ r3bl_rs_utils v0.9.8
    β”‚   β”‚   β”‚   └── r3bl_tui v0.3.4
    β”‚   β”‚   β”‚       └── r3bl_rs_utils v0.9.8 (*)
    β”‚   β”‚   β”œβ”€β”€ r3bl_rs_utils v0.9.8 (*)
    β”‚   β”‚   β”œβ”€β”€ r3bl_rs_utils_core v0.9.3
    β”‚   β”‚   β”‚   β”œβ”€β”€ r3bl_redux v0.2.3 (*)
    β”‚   β”‚   β”‚   β”œβ”€β”€ r3bl_rs_utils v0.9.8 (*)
    β”‚   β”‚   β”‚   β”œβ”€β”€ r3bl_rs_utils_macro v0.9.3
    β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ r3bl_redux v0.2.3 (*)
    β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ r3bl_rs_utils v0.9.8 (*)
    β”‚   β”‚   β”‚   β”‚   └── r3bl_tui v0.3.4 (*)
    β”‚   β”‚   β”‚   └── r3bl_tui v0.3.4 (*)
    β”‚   β”‚   └── r3bl_tui v0.3.4 (*)
    β”‚   β”œβ”€β”€ attribute-derive v0.6.1
    β”‚   β”‚   └── get-size-derive v0.1.3
    β”‚   β”‚       └── get-size v0.1.4
    β”‚   β”‚           β”œβ”€β”€ r3bl_redux v0.2.3 (*)
    β”‚   β”‚           β”œβ”€β”€ r3bl_rs_utils v0.9.8 (*)
    β”‚   β”‚           β”œβ”€β”€ r3bl_rs_utils_core v0.9.3 (*)
    β”‚   β”‚           └── r3bl_tui v0.3.4 (*)
    β”‚   β”œβ”€β”€ attribute-derive-macro v0.6.1
    β”‚   β”‚   └── attribute-derive v0.6.1 (*)
    β”‚   β”œβ”€β”€ derive-where v1.2.5
    β”‚   β”‚   └── quote-use-macros v0.7.2
    β”‚   β”‚       └── quote-use v0.7.2
    β”‚   β”‚           └── attribute-derive-macro v0.6.1 (*)
    β”‚   β”œβ”€β”€ futures-macro v0.3.28
    β”‚   β”‚   └── futures-util v0.3.28
    β”‚   β”‚       β”œβ”€β”€ futures v0.3.28
    β”‚   β”‚       β”‚   β”œβ”€β”€ r3bl_redux v0.2.3 (*)
    β”‚   β”‚       β”‚   β”œβ”€β”€ r3bl_rs_utils v0.9.8 (*)
    β”‚   β”‚       β”‚   └── r3bl_tui v0.3.4 (*)
    β”‚   β”‚       β”œβ”€β”€ futures-executor v0.3.28
    β”‚   β”‚       β”‚   └── futures v0.3.28 (*)
    β”‚   β”‚       β”œβ”€β”€ h2 v0.3.21
    β”‚   β”‚       β”‚   β”œβ”€β”€ hyper v0.14.27
    β”‚   β”‚       β”‚   β”‚   β”œβ”€β”€ hyper-tls v0.5.0
    β”‚   β”‚       β”‚   β”‚   β”‚   └── reqwest v0.11.20
    β”‚   β”‚       β”‚   β”‚   β”‚       └── r3bl_rs_utils_core v0.9.3 (*)
    β”‚   β”‚       β”‚   β”‚   └── reqwest v0.11.20 (*)
    β”‚   β”‚       β”‚   └── reqwest v0.11.20 (*)
    β”‚   β”‚       β”œβ”€β”€ hyper v0.14.27 (*)
    β”‚   β”‚       β”œβ”€β”€ r3bl_redux v0.2.3 (*)
    β”‚   β”‚       β”œβ”€β”€ r3bl_rs_utils v0.9.8 (*)
    β”‚   β”‚       β”œβ”€β”€ r3bl_rs_utils_core v0.9.3 (*)
    β”‚   β”‚       β”œβ”€β”€ r3bl_rs_utils_macro v0.9.3 (*)
    β”‚   β”‚       β”œβ”€β”€ r3bl_tui v0.3.4 (*)
    β”‚   β”‚       └── reqwest v0.11.20 (*)
    β”‚   β”œβ”€β”€ openssl-macros v0.1.1
    β”‚   β”‚   └── openssl v0.10.57
    β”‚   β”‚       └── native-tls v0.2.11
    β”‚   β”‚           β”œβ”€β”€ hyper-tls v0.5.0 (*)
    β”‚   β”‚           β”œβ”€β”€ reqwest v0.11.20 (*)
    β”‚   β”‚           └── tokio-native-tls v0.3.1
    β”‚   β”‚               β”œβ”€β”€ hyper-tls v0.5.0 (*)
    β”‚   β”‚               └── reqwest v0.11.20 (*)
    β”‚   β”œβ”€β”€ palette_derive v0.6.1
    β”‚   β”‚   └── palette v0.6.1
    β”‚   β”‚       └── r3bl_tui v0.3.4 (*)
    β”‚   β”œβ”€β”€ phf_macros v0.11.2
    β”‚   β”‚   └── phf v0.11.2
    β”‚   β”‚       └── palette v0.6.1 (*)
    β”‚   β”œβ”€β”€ proc-macro-error v1.0.4
    β”‚   β”‚   └── attribute-derive-macro v0.6.1 (*)
    β”‚   β”œβ”€β”€ proc-macro-error-attr v1.0.4
    β”‚   β”‚   └── proc-macro-error v1.0.4 (*)
    β”‚   β”œβ”€β”€ proc-macro-utils v0.8.0
    β”‚   β”‚   └── attribute-derive-macro v0.6.1 (*)
    β”‚   β”œβ”€β”€ quote v1.0.33
    β”‚   β”‚   β”œβ”€β”€ async-trait v0.1.73 (*)
    β”‚   β”‚   β”œβ”€β”€ attribute-derive v0.6.1 (*)
    β”‚   β”‚   β”œβ”€β”€ attribute-derive-macro v0.6.1 (*)
    β”‚   β”‚   β”œβ”€β”€ derive-where v1.2.5 (*)
    β”‚   β”‚   β”œβ”€β”€ futures-macro v0.3.28 (*)
    β”‚   β”‚   β”œβ”€β”€ get-size-derive v0.1.3 (*)
    β”‚   β”‚   β”œβ”€β”€ openssl-macros v0.1.1 (*)
    β”‚   β”‚   β”œβ”€β”€ palette_derive v0.6.1 (*)
    β”‚   β”‚   β”œβ”€β”€ phf_macros v0.11.2 (*)
    β”‚   β”‚   β”œβ”€β”€ proc-macro-error v1.0.4 (*)
    β”‚   β”‚   β”œβ”€β”€ proc-macro-error-attr v1.0.4 (*)
    β”‚   β”‚   β”œβ”€β”€ proc-macro-utils v0.8.0 (*)
    β”‚   β”‚   β”œβ”€β”€ quote-use v0.7.2 (*)
    β”‚   β”‚   β”œβ”€β”€ quote-use-macros v0.7.2 (*)
    β”‚   β”‚   β”œβ”€β”€ r3bl_rs_utils_macro v0.9.3 (*)
    β”‚   β”‚   β”œβ”€β”€ serde_derive v1.0.188
    β”‚   β”‚   β”‚   └── serde v1.0.188
    β”‚   β”‚   β”‚       β”œβ”€β”€ bincode v1.3.3
    β”‚   β”‚   β”‚       β”‚   └── syntect v5.1.0
    β”‚   β”‚   β”‚       β”‚       β”œβ”€β”€ r3bl_rs_utils_core v0.9.3 (*)
    β”‚   β”‚   β”‚       β”‚       └── r3bl_tui v0.3.4 (*)
    β”‚   β”‚   β”‚       β”œβ”€β”€ crossterm v0.24.0
    β”‚   β”‚   β”‚       β”‚   └── reedline v0.16.0
    β”‚   β”‚   β”‚       β”‚       β”œβ”€β”€ (dev) r3bl_rs_utils v0.9.8 (*)
    β”‚   β”‚   β”‚       β”‚       └── (dev) r3bl_tui v0.3.4 (*)
    β”‚   β”‚   β”‚       β”œβ”€β”€ crossterm v0.26.1
    β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ r3bl_redux v0.2.3 (*)
    β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ r3bl_rs_utils v0.9.8 (*)
    β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ r3bl_rs_utils_core v0.9.3 (*)
    β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ r3bl_rs_utils_macro v0.9.3 (*)
    β”‚   β”‚   β”‚       β”‚   └── r3bl_tui v0.3.4 (*)
    β”‚   β”‚   β”‚       β”œβ”€β”€ plist v1.5.0
    β”‚   β”‚   β”‚       β”‚   └── syntect v5.1.0 (*)
    β”‚   β”‚   β”‚       β”œβ”€β”€ r3bl_redux v0.2.3 (*)
    β”‚   β”‚   β”‚       β”œβ”€β”€ r3bl_rs_utils v0.9.8 (*)
    β”‚   β”‚   β”‚       β”œβ”€β”€ r3bl_rs_utils_core v0.9.3 (*)
    β”‚   β”‚   β”‚       β”œβ”€β”€ r3bl_tui v0.3.4 (*)
    β”‚   β”‚   β”‚       β”œβ”€β”€ reedline v0.16.0 (*)
    β”‚   β”‚   β”‚       β”œβ”€β”€ reqwest v0.11.20 (*)
    β”‚   β”‚   β”‚       β”œβ”€β”€ serde_json v1.0.107
    β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ r3bl_redux v0.2.3 (*)
    β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ r3bl_rs_utils v0.9.8 (*)
    β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ r3bl_rs_utils_core v0.9.3 (*)
    β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ r3bl_tui v0.3.4 (*)
    β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ reqwest v0.11.20 (*)
    β”‚   β”‚   β”‚       β”‚   └── syntect v5.1.0 (*)
    β”‚   β”‚   β”‚       β”œβ”€β”€ serde_urlencoded v0.7.1
    β”‚   β”‚   β”‚       β”‚   └── reqwest v0.11.20 (*)
    β”‚   β”‚   β”‚       β”œβ”€β”€ syntect v5.1.0 (*)
    β”‚   β”‚   β”‚       └── toml v0.5.11
    β”‚   β”‚   β”‚           └── find-crate v0.6.3
    β”‚   β”‚   β”‚               └── palette_derive v0.6.1 (*)
    β”‚   β”‚   β”œβ”€β”€ strum_macros v0.24.3
    β”‚   β”‚   β”‚   β”œβ”€β”€ r3bl_tui v0.3.4 (*)
    β”‚   β”‚   β”‚   └── reedline v0.16.0 (*)
    β”‚   β”‚   β”œβ”€β”€ syn v1.0.109
    β”‚   β”‚   β”‚   β”œβ”€β”€ palette_derive v0.6.1 (*)
    β”‚   β”‚   β”‚   β”œβ”€β”€ proc-macro-error v1.0.4 (*)
    β”‚   β”‚   β”‚   β”œβ”€β”€ r3bl_rs_utils_macro v0.9.3 (*)
    β”‚   β”‚   β”‚   └── strum_macros v0.24.3 (*)
    β”‚   β”‚   β”œβ”€β”€ syn v2.0.37
    β”‚   β”‚   β”‚   β”œβ”€β”€ async-trait v0.1.73 (*)
    β”‚   β”‚   β”‚   β”œβ”€β”€ attribute-derive v0.6.1 (*)
    β”‚   β”‚   β”‚   β”œβ”€β”€ attribute-derive-macro v0.6.1 (*)
    β”‚   β”‚   β”‚   β”œβ”€β”€ derive-where v1.2.5 (*)
    β”‚   β”‚   β”‚   β”œβ”€β”€ futures-macro v0.3.28 (*)
    β”‚   β”‚   β”‚   β”œβ”€β”€ get-size-derive v0.1.3 (*)
    β”‚   β”‚   β”‚   β”œβ”€β”€ openssl-macros v0.1.1 (*)
    β”‚   β”‚   β”‚   β”œβ”€β”€ phf_macros v0.11.2 (*)
    β”‚   β”‚   β”‚   β”œβ”€β”€ quote-use v0.7.2 (*)
    β”‚   β”‚   β”‚   β”œβ”€β”€ quote-use-macros v0.7.2 (*)
    β”‚   β”‚   β”‚   β”œβ”€β”€ serde_derive v1.0.188 (*)
    β”‚   β”‚   β”‚   β”œβ”€β”€ thiserror-impl v1.0.49
    β”‚   β”‚   β”‚   β”‚   └── thiserror v1.0.49
    β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ reedline v0.16.0 (*)
    β”‚   β”‚   β”‚   β”‚       └── syntect v5.1.0 (*)
    β”‚   β”‚   β”‚   β”œβ”€β”€ tokio-macros v2.1.0
    β”‚   β”‚   β”‚   β”‚   └── tokio v1.32.0
    β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ h2 v0.3.21 (*)
    β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ hyper v0.14.27 (*)
    β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ hyper-tls v0.5.0 (*)
    β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ r3bl_redux v0.2.3 (*)
    β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ r3bl_rs_utils v0.9.8 (*)
    β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ r3bl_rs_utils_core v0.9.3 (*)
    β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ r3bl_tui v0.3.4 (*)
    β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ reqwest v0.11.20 (*)
    β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ tokio-native-tls v0.3.1 (*)
    β”‚   β”‚   β”‚   β”‚       └── tokio-util v0.7.9
    β”‚   β”‚   β”‚   β”‚           └── h2 v0.3.21 (*)
    β”‚   β”‚   β”‚   β”œβ”€β”€ wasm-bindgen-backend v0.2.87
    β”‚   β”‚   β”‚   β”‚   └── wasm-bindgen-macro-support v0.2.87
    β”‚   β”‚   β”‚   β”‚       └── wasm-bindgen-macro v0.2.87
    β”‚   β”‚   β”‚   β”‚           └── wasm-bindgen v0.2.87
    β”‚   β”‚   β”‚   β”‚               β”œβ”€β”€ chrono v0.4.31
    β”‚   β”‚   β”‚   β”‚               β”‚   β”œβ”€β”€ r3bl_redux v0.2.3 (*)
    β”‚   β”‚   β”‚   β”‚               β”‚   β”œβ”€β”€ r3bl_rs_utils v0.9.8 (*)
    β”‚   β”‚   β”‚   β”‚               β”‚   β”œβ”€β”€ r3bl_rs_utils_core v0.9.3 (*)
    β”‚   β”‚   β”‚   β”‚               β”‚   β”œβ”€β”€ r3bl_tui v0.3.4 (*)
    β”‚   β”‚   β”‚   β”‚               β”‚   └── reedline v0.16.0 (*)
    β”‚   β”‚   β”‚   β”‚               β”œβ”€β”€ iana-time-zone v0.1.57
    β”‚   β”‚   β”‚   β”‚               β”‚   └── chrono v0.4.31 (*)
    β”‚   β”‚   β”‚   β”‚               β”œβ”€β”€ js-sys v0.3.64
    β”‚   β”‚   β”‚   β”‚               β”‚   β”œβ”€β”€ chrono v0.4.31 (*)
    β”‚   β”‚   β”‚   β”‚               β”‚   β”œβ”€β”€ iana-time-zone v0.1.57 (*)
    β”‚   β”‚   β”‚   β”‚               β”‚   β”œβ”€β”€ reqwest v0.11.20 (*)
    β”‚   β”‚   β”‚   β”‚               β”‚   β”œβ”€β”€ wasm-bindgen-futures v0.4.37
    β”‚   β”‚   β”‚   β”‚               β”‚   β”‚   └── reqwest v0.11.20 (*)
    β”‚   β”‚   β”‚   β”‚               β”‚   └── web-sys v0.3.64
    β”‚   β”‚   β”‚   β”‚               β”‚       β”œβ”€β”€ reqwest v0.11.20 (*)
    β”‚   β”‚   β”‚   β”‚               β”‚       └── wasm-bindgen-futures v0.4.37 (*)
    β”‚   β”‚   β”‚   β”‚               β”œβ”€β”€ reqwest v0.11.20 (*)
    β”‚   β”‚   β”‚   β”‚               β”œβ”€β”€ wasm-bindgen-futures v0.4.37 (*)
    β”‚   β”‚   β”‚   β”‚               └── web-sys v0.3.64 (*)
    β”‚   β”‚   β”‚   └── wasm-bindgen-macro-support v0.2.87 (*)
    β”‚   β”‚   β”œβ”€β”€ thiserror-impl v1.0.49 (*)
    β”‚   β”‚   β”œβ”€β”€ tokio-macros v2.1.0 (*)
    β”‚   β”‚   β”œβ”€β”€ vte_generate_state_changes v0.1.1
    β”‚   β”‚   β”‚   └── vte v0.10.1
    β”‚   β”‚   β”‚       └── strip-ansi-escapes v0.1.1
    β”‚   β”‚   β”‚           └── reedline v0.16.0 (*)
    β”‚   β”‚   β”œβ”€β”€ wasm-bindgen-backend v0.2.87 (*)
    β”‚   β”‚   β”œβ”€β”€ wasm-bindgen-macro v0.2.87 (*)
    β”‚   β”‚   └── wasm-bindgen-macro-support v0.2.87 (*)
    β”‚   β”œβ”€β”€ quote-use-macros v0.7.2 (*)
    β”‚   β”œβ”€β”€ r3bl_rs_utils_macro v0.9.3 (*)
    β”‚   β”œβ”€β”€ serde_derive v1.0.188 (*)
    β”‚   β”œβ”€β”€ strum_macros v0.24.3 (*)
    β”‚   β”œβ”€β”€ syn v1.0.109 (*)
    β”‚   β”œβ”€β”€ syn v2.0.37 (*)
    β”‚   β”œβ”€β”€ thiserror-impl v1.0.49 (*)
    β”‚   β”œβ”€β”€ tokio-macros v2.1.0 (*)
    β”‚   β”œβ”€β”€ vte_generate_state_changes v0.1.1 (*)
    β”‚   β”œβ”€β”€ wasm-bindgen-backend v0.2.87 (*)
    β”‚   └── wasm-bindgen-macro-support v0.2.87 (*)
    β”œβ”€β”€ syn v1.0.109 (*)
    └── syn v2.0.37 (*)

licenses FAILED
nazmulidris commented 1 year ago

@Harshil-Jani Thank you for running this audit. I am taking a look at the crates that were flagged. Also did you want to make a PR w/ these changes into the repo? It is hacktoberfest, and you could get credit for it? Also if you would like to chat about the PR, here is our discord server: https://discord.gg/UejyhKfx

nazmulidris commented 1 year ago

@Harshil-Jani I did a little more digging from the generated report that you shared in an earlier comment.

[licenses]
unlicensed = "deny"
allow = ["MIT", "Apache-2.0"]
copyleft = "deny"

# https://github.com/EmbarkStudios/cargo-deny/blob/main/examples/01_allow_license/deny.toml
# https://embarkstudios.github.io/cargo-deny/checks/licenses/cfg.html?highlight=exception#the-exceptions-field-optional
# https://docs.rs/cargo-deny/latest/cargo_deny/licenses/cfg/struct.Exception.html
exceptions = [
    { 
        name = "unicode-ident", 
        allow = ["Unicode-DFS-2016"] 
    },
    { 
        name = "encoding_rs", 
        allow = ["BSD-3-Clause"] 
    }
]

Note - I haven't tried to run this yet πŸ˜„

Unicode-DFS-2016

BSD-3-Clause

SPDX identifiers

https://spdx.org/licenses/

SPDX identifiers are short text strings that uniquely identify a software license. SPDX identifiers are used to communicate license information in a standardized and machine-readable format. SPDX identifiers are part of the Software Package Data Exchange (SPDX) standard, which is an open standard for communicating software bill of materials (SBOM) information including components, licenses, copyrights, and security references.

mdbook for the crate

Also I found the mdbook for this crate here: https://embarkstudios.github.io/cargo-deny/

exception field in deny.toml

The exception field in the cargo-deny crate is a way to allow one or more licenses to be permitted only for a particular crate. It is a part of the cfg module in the licenses module of the cargo-deny crate.

The exception field has three fields: name, version, and allow. The name field specifies the name of the crate to apply the exception to. The version field is an optional version constraint for the crate, which defaults to any version. The allow field is a list of one or more SPDX identifiers that are allowed only for this crate.

Example: https://github.com/EmbarkStudios/cargo-deny/blob/main/examples/01_allow_license/deny.toml

nazmulidris commented 1 year ago

@Harshil-Jani Also we have a discord server if you want to chat about this issue over there: https://discord.com/invite/UejyhKfx

Harshil-Jani commented 1 year ago

Also did you want to make a PR w/ these changes into the repo?

Sure, I would love to contribute in the project.

Looking forward towards doing all the changes suggested by you above πŸš€ .

nazmulidris commented 1 year ago

@Harshil-Jani I am assigning this issue to you πŸŽ‰ And I will work on generating new issues for each of the Action item checkboxes in one of the comments above. And I will clean up this issue and other existing issues as well (update cross links, etc) πŸ‘πŸ½