0
0
mirror of https://github.com/signalapp/libsignal.git synced 2024-09-19 19:42:19 +02:00
libsignal/bin/verify_duplicate_crates
2024-05-28 13:14:32 -07:00

36 lines
1.0 KiB
Bash
Executable File

#!/bin/bash
#
# Copyright 2021 Signal Messenger, LLC.
# SPDX-License-Identifier: AGPL-3.0-only
#
# To keep code size down, we try to avoid depending on multiple versions of crates.
#
# Sometimes we decide it's okay for certain dependencies.
# You can use the `cargo tree` command below to see where they come from,
# and then document them here.
#
# jni: v0.19 is used by rustls-platform-verifier on Android, v0.21 by us
# pqcrypto-kyber: v0.7 is what we shipped PQXDH on, v0.8 contains the NIST standard version
EXPECTED="
jni v0.19.0
jni v0.21.1
pqcrypto-kyber v0.7.9
pqcrypto-kyber v0.8.1"
check_cargo_tree() {
# Only check the mobile targets, where we care most about code size.
cargo tree --quiet --duplicates --edges normal,no-proc-macro \
--workspace --all-features --locked \
--target aarch64-apple-ios \
--target armv7-linux-androideabi \
--target aarch64-linux-android \
"$@"
}
if [[ "$(check_cargo_tree --depth 0 | sort -u -V)" != "${EXPECTED}" ]]; then
check_cargo_tree
exit 1
fi