diff --git a/CHANGELOG.md b/CHANGELOG.md index 299894fa70..e1444c566b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,12 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Note to packagers + +* `jj` now links `libgit2` statically by default. To use dynamic linking, you + need to set the environment variable `LIBGIT2_NO_VENDOR=1` while compiling. + ([#4163](https://github.com/martinvonz/jj/pull/4163)) + ### Breaking changes * `jj rebase --skip-empty` has been renamed to `jj rebase --skip-emptied` diff --git a/Cargo.toml b/Cargo.toml index 631855ede5..4284a6abe1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,7 +48,16 @@ dunce = "1.0.4" either = "1.13.0" esl01-renderdag = "0.3.0" futures = "0.3.30" -git2 = "0.18.3" +git2 = { version = "0.18.3", features = [ + # Do *not* disable this feature even if you'd like dynamic linking. Instead, + # set the environment variable `LIBGIT2_NO_VENDOR=1` if dynamic linking must + # be used (this will override the Cargo feature), and allow static linking + # in other cases. Rationale: If neither the feature nor the environment + # variable are set, `git2` may still decide to vendor `libgit2` if it + # doesn't find a version of `libgit2` to link to dynamically. See also + # https://github.com/rust-lang/git2-rs/commit/3cef4119f + "vendored-libgit2" +] } gix = { version = "0.63.0", default-features = false, features = [ "index", "max-performance-safe",