From 6424aab69d10605f07b7cae9db1c70d9754c8587 Mon Sep 17 00:00:00 2001 From: Dexoron Date: Sat, 6 Jun 2026 21:19:04 +0800 Subject: [PATCH] feet: add license to docs and updated Cargo.toml to add build with no features flag --- .gitignore | 1 + Cargo.toml | 25 +++++++++++++++++++------ README.md | 1 + docs/README.mdx | 1 + docs/license.mdx | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 68 insertions(+), 6 deletions(-) create mode 100644 docs/license.mdx diff --git a/.gitignore b/.gitignore index cefd271..8f346c0 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ target/ sandbox/** .idea/ .vscode/ +.cargo/ .env personal/ \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index 26b2094..1ad9ff1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -69,16 +69,29 @@ toml = "1.0.3" serde_json = "1" ctrlc = "3" -[target.'cfg(not(windows))'.dependencies] -git2 = { version = "0.20.4", features = ["vendored-libgit2", "vendored-openssl"] } -openssl = { version = "0.10", features = ["vendored"] } +[features] +default = ["vendored"] +vendored = [ + "git2/vendored-libgit2", + "git2/vendored-openssl", + "openssl/vendored", +] -[target.'cfg(windows)'.dependencies] -git2 = { version = "0.20.4", features = ["vendored-libgit2"] } +[target.'cfg(not(windows))'.dependencies] +git2 = "0.20.4" +openssl = "0.10" [profile.release] opt-level = "z" -lto = true +lto = "thin" codegen-units = 1 panic = "abort" +strip = true + +[profile.fast] +inherits = "release" +opt-level = 1 +lto = false +codegen-units = 16 +panic = "abort" strip = true \ No newline at end of file diff --git a/README.md b/README.md index 84bf7dc..177f71f 100644 --- a/README.md +++ b/README.md @@ -271,6 +271,7 @@ cargo test
GPL-3.0 — see [LICENSE](LICENSE)
+DCR is a build tool, not a library. The GPL applies only to DCR's own source code, not to projects built with it.
Made with ❤️ by [Dexoron](https://github.com/dexoron) and contributors.
diff --git a/docs/README.mdx b/docs/README.mdx index a369f83..08bd33f 100644 --- a/docs/README.mdx +++ b/docs/README.mdx @@ -44,6 +44,7 @@ dcr gen vscode | [Self Update](/docs/self-update) | Auto-update | | [FAQ](/docs/faq) | Frequently asked questions | | [Changelog](/docs/changelog) | Version history | +| [License](/docs/license) | DCR and vendored library licenses | | [Contributing](/docs/contributing) | DCR development | ## Features diff --git a/docs/license.mdx b/docs/license.mdx new file mode 100644 index 0000000..f424731 --- /dev/null +++ b/docs/license.mdx @@ -0,0 +1,46 @@ +--- +sidebar_label: License +--- + +# License + +## DCR + +DCR itself is [GPL-3.0-or-later](https://spdx.org/licenses/GPL-3.0-or-later.html) licensed. + +> **Note:** DCR is a build tool, not a library. The GPL applies only to DCR's own source code. Projects built with DCR are not subject to DCR's license — their licensing is determined solely by their own code and dependencies. + +## Vendored libraries + +DCR statically links the following C libraries through its vendored Rust dependencies: + +| Library | License | Bundled by | +|---|---|---| +| [libgit2](https://libgit2.org) | MIT OR Apache-2.0 | `git2` / `libgit2-sys` | +| [libssh2](https://libssh2.org) | MIT OR Apache-2.0 | `libgit2-sys` | +| [zlib](https://zlib.net) | MIT OR Apache-2.0 | `libgit2-sys` | +| [OpenSSL](https://openssl.org) | Apache-2.0 | `openssl-sys` / `openssl-src` | +| [ring](https://github.com/briansmith/ring) | Apache-2.0 AND ISC | `rustls` | + +## Rust dependencies + +DCR is written in Rust. The following notable Rust crates are statically linked: + +| Crate | License | +|---|---| +| [`reqwest`](https://crates.io/crates/reqwest) | MIT OR Apache-2.0 | +| [`rustls`](https://crates.io/crates/rustls) | Apache-2.0 OR ISC OR MIT | +| [`serde`](https://crates.io/crates/serde) | MIT OR Apache-2.0 | +| [`toml`](https://crates.io/crates/toml) | MIT OR Apache-2.0 | +| [`sha2`](https://crates.io/crates/sha2) | MIT OR Apache-2.0 | +| [`git2`](https://crates.io/crates/git2) | MIT OR Apache-2.0 | +| [`openssl`](https://crates.io/crates/openssl) | Apache-2.0 | +| [`tokio`](https://crates.io/crates/tokio) | MIT | +| [`hyper`](https://crates.io/crates/hyper) | MIT | +| [`ctrlc`](https://crates.io/crates/ctrlc) | MIT OR Apache-2.0 | + +Full dependency tree (143 packages) is available in [`Cargo.lock`](https://github.com/dexoron/dcr/blob/main/Cargo.lock). The overwhelming majority are dual-licensed under MIT OR Apache-2.0. + +## Additional credits + +- DCR's CLI design and project model are inspired by [Cargo](https://doc.rust-lang.org/cargo/).