Merge pull request #2083 from mozilla/dependency-licenses-in-pom-file; r=thomcc

Include dependency license info in megazord .pom files.
This commit is contained in:
Ryan Kelly 2019-11-02 16:56:10 +11:00 коммит произвёл GitHub
Родитель 13cbb5f3ec d07fb1b27f
Коммит 54d9b3a601
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
13 изменённых файлов: 1912 добавлений и 99 удалений

Просмотреть файл

@ -163,10 +163,13 @@ commands:
rustup install nightly
cargo metadata --locked > /dev/null
python3 ./tools/dependency_summary.py --check ./DEPENDENCIES.md
python3 ./tools/dependency_summary.py --all-android-targets --package megazord --check megazords/full/DEPENDENCIES.md
python3 ./tools/dependency_summary.py --all-ios-targets --package megazord_ios --check megazords/ios/DEPENDENCIES.md
python3 ./tools/dependency_summary.py --all-android-targets --package megazord --check megazords/full/DEPENDENCIES.md
python3 ./tools/dependency_summary.py --all-android-targets --package megazord --format pom --check megazords/full/android/dependency-licenses.xml
python3 ./tools/dependency_summary.py --all-android-targets --package fenix --check megazords/fenix/DEPENDENCIES.md
python3 ./tools/dependency_summary.py --all-android-targets --package fenix --format pom --check megazords/fenix/android/dependency-licenses.xml
python3 ./tools/dependency_summary.py --all-android-targets --package lockbox --check megazords/lockbox/DEPENDENCIES.md
python3 ./tools/dependency_summary.py --all-android-targets --package lockbox --format pom --check megazords/lockbox/android/dependency-licenses.xml
sync-bugzilla-to-github:
steps:

Просмотреть файл

@ -3,3 +3,11 @@
# Unreleased Changes
[Full Changelog](https://github.com/mozilla/application-services/compare/v0.42.2...master)
## General
### What's New
- On Android, our Megazord libraries now include license information for dependencies
as part of their `.pom` file, making it easily available to tools such as the
[oss-licenses-plugin](https://github.com/google/play-services-plugins/tree/master/oss-licenses-plugin)

Просмотреть файл

@ -45,7 +45,7 @@ the details of which are reproduced below.
* [BSD-3-Clause License: sqlcipher](#bsd-3-clause-license-sqlcipher)
* [Zlib License: adler32](#zlib-license-adler32)
* [OpenSSL License](#openssl-license)
* [Optional Notice: SQlite](#optional-notice-sqlite)
* [Optional Notice: SQLite](#optional-notice-sqlite)
-------------
## Mozilla Public License 2.0
@ -478,7 +478,7 @@ The following text applies to code linked from these dependendencies:
[hex](https://github.com/KokaKiwi/rust-hex),
[http](https://github.com/hyperium/http),
[httparse](https://github.com/seanmonstar/httparse),
[humantime](None),
[humantime](https://github.com/tailhook/humantime),
[hyper-tls](https://github.com/hyperium/hyper-tls),
[idna](https://github.com/servo/rust-url/),
[indexmap](https://github.com/bluss/indexmap),
@ -809,7 +809,7 @@ THE SOFTWARE.
## MIT License: ansi_term
The following text applies to code linked from these dependendencies:
[ansi_term](None)
[ansi_term](https://github.com/ogham/rust-ansi-term)
```
The MIT License (MIT)
@ -2178,7 +2178,7 @@ The following text applies to code linked from these dependendencies:
```
-------------
## Optional Notice: SQlite
## Optional Notice: SQLite
The following text applies to code linked from these dependendencies:
[sqlite](https://www.sqlite.org/)

Просмотреть файл

@ -26,7 +26,7 @@ the details of which are reproduced below.
* [BSD-3-Clause License: bindgen](#bsd-3-clause-license-bindgen)
* [BSD-3-Clause License: protobuf](#bsd-3-clause-license-protobuf)
* [BSD-3-Clause License: sqlcipher](#bsd-3-clause-license-sqlcipher)
* [Optional Notice: SQlite](#optional-notice-sqlite)
* [Optional Notice: SQLite](#optional-notice-sqlite)
-------------
## Mozilla Public License 2.0
@ -438,7 +438,7 @@ The following text applies to code linked from these dependendencies:
[glob](https://github.com/rust-lang/glob),
[heck](https://github.com/withoutboats/heck),
[hex](https://github.com/KokaKiwi/rust-hex),
[humantime](None),
[humantime](https://github.com/tailhook/humantime),
[idna](https://github.com/servo/rust-url/),
[iovec](https://github.com/carllerche/iovec),
[itertools](https://github.com/bluss/rust-itertools),
@ -750,7 +750,7 @@ THE SOFTWARE.
## MIT License: ansi_term
The following text applies to code linked from these dependendencies:
[ansi_term](None)
[ansi_term](https://github.com/ogham/rust-ansi-term)
```
The MIT License (MIT)
@ -1415,7 +1415,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
```
-------------
## Optional Notice: SQlite
## Optional Notice: SQLite
The following text applies to code linked from these dependendencies:
[sqlite](https://www.sqlite.org/)

Просмотреть файл

@ -0,0 +1,539 @@
<licenses>
<!--
Binary distributions of this software incorporate code from a number of third-party dependencies.
These dependencies are available under a variety of free and open source licenses,
the details of which are reproduced below.
-->
<license>
<name>Mozilla Public License 2.0: NSPR</name>
<url>https://hg.mozilla.org/projects/nspr/raw-file/tip/LICENSE</url>
</license>
<license>
<name>Mozilla Public License 2.0: NSS</name>
<url>https://hg.mozilla.org/projects/nss/raw-file/tip/COPYING</url>
</license>
<license>
<name>Mozilla Public License 2.0: ece</name>
<url>https://github.com/mozilla/rust-ece/blob/master/LICENSE</url>
</license>
<license>
<name>Mozilla Public License 2.0: hawk</name>
<url>https://github.com/taskcluster/rust-hawk/blob/master/LICENSE</url>
</license>
<license>
<name>Apache License 2.0: autocfg</name>
<url>https://github.com/cuviper/autocfg/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: backtrace</name>
<url>https://github.com/rust-lang/backtrace-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: backtrace-sys</name>
<url>https://github.com/rust-lang/backtrace-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: base64</name>
<url>https://github.com/alicemaz/rust-base64/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: base64</name>
<url>https://github.com/alicemaz/rust-base64/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: bitflags</name>
<url>https://github.com/bitflags/bitflags/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: c2-chacha</name>
<url>https://github.com/cryptocorrosion/cryptocorrosion/blob/master/stream-ciphers/chacha/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: cc</name>
<url>https://github.com/alexcrichton/cc-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: cexpr</name>
<url>https://github.com/jethrogb/rust-cexpr/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: cfg-if</name>
<url>https://github.com/alexcrichton/cfg-if/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: clang-sys</name>
<url>https://github.com/KyleMayes/clang-sys/blob/master/LICENSE.txt</url>
</license>
<license>
<name>Apache License 2.0: dogear</name>
<url>https://github.com/mozilla/dogear/blob/master/LICENSE</url>
</license>
<license>
<name>Apache License 2.0: either</name>
<url>https://github.com/bluss/either/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: env_logger</name>
<url>https://github.com/sebasmagri/env_logger/blob//master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: failure</name>
<url>https://github.com/rust-lang-nursery/failure/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: failure_derive</name>
<url>https://github.com/withoutboats/failure_derive/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: fallible-iterator</name>
<url>https://github.com/sfackler/rust-fallible-iterator/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: fallible-streaming-iterator</name>
<url>https://github.com/sfackler/fallible-streaming-iterator/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: fixedbitset</name>
<url>https://github.com/bluss/fixedbitset/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: getrandom</name>
<url>https://github.com/rust-random/getrandom/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: glob</name>
<url>https://github.com/rust-lang/glob/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: heck</name>
<url>https://github.com/withoutboats/heck/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: hex</name>
<url>https://github.com/KokaKiwi/rust-hex/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: humantime</name>
<url>https://github.com/tailhook/humantime/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: idna</name>
<url>https://github.com/servo/rust-url/blob//master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: idna</name>
<url>https://github.com/servo/rust-url/blob//master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: iovec</name>
<url>https://github.com/carllerche/iovec/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: itertools</name>
<url>https://github.com/bluss/rust-itertools/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: itoa</name>
<url>https://github.com/dtolnay/itoa/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: jna</name>
<url>https://github.com/java-native-access/jna/blob/master/AL2.0</url>
</license>
<license>
<name>Apache License 2.0: lazy_static</name>
<url>https://github.com/rust-lang-nursery/lazy-static.rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: libc</name>
<url>https://github.com/rust-lang/libc/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: linked-hash-map</name>
<url>https://github.com/contain-rs/linked-hash-map/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: lock_api</name>
<url>https://github.com/Amanieu/parking_lot/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: log</name>
<url>https://github.com/rust-lang/log/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: lru-cache</name>
<url>https://github.com/contain-rs/lru-cache/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: multimap</name>
<url>https://github.com/havarnov/multimap/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: once_cell</name>
<url>https://github.com/matklad/once_cell/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: once_cell</name>
<url>https://github.com/matklad/once_cell/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: parking_lot</name>
<url>https://github.com/Amanieu/parking_lot/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: parking_lot_core</name>
<url>https://github.com/Amanieu/parking_lot/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: peeking_take_while</name>
<url>https://github.com/fitzgen/peeking_take_while/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: percent-encoding</name>
<url>https://github.com/servo/rust-url/blob//master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: petgraph</name>
<url>https://github.com/bluss/petgraph/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: pkg-config</name>
<url>https://github.com/rust-lang/pkg-config-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: ppv-lite86</name>
<url>https://github.com/cryptocorrosion/cryptocorrosion/blob/master/utils-simd/ppv-lite86/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: proc-macro2</name>
<url>https://github.com/alexcrichton/proc-macro2/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: proc-macro2</name>
<url>https://github.com/alexcrichton/proc-macro2/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: prost</name>
<url>https://github.com/danburkert/prost/blob/master/LICENSE</url>
</license>
<license>
<name>Apache License 2.0: prost-build</name>
<url>https://github.com/danburkert/prost/blob/master/LICENSE</url>
</license>
<license>
<name>Apache License 2.0: prost-derive</name>
<url>https://github.com/danburkert/prost/blob/master/LICENSE</url>
</license>
<license>
<name>Apache License 2.0: prost-types</name>
<url>https://github.com/danburkert/prost/blob/master/LICENSE</url>
</license>
<license>
<name>Apache License 2.0: quick-error</name>
<url>https://github.com/tailhook/quick-error/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: quote</name>
<url>https://github.com/dtolnay/quote/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: quote</name>
<url>https://github.com/dtolnay/quote/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_chacha</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_chacha</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_core</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_core</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_core</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_hc</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_isaac</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_jitter</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_os</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_pcg</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_xorshift</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: regex</name>
<url>https://github.com/rust-lang/regex/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: regex-syntax</name>
<url>https://github.com/rust-lang/regex/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: remove_dir_all</name>
<url>https://github.com/XAMPPRocky/remove_dir_all/blob/master/LICENCE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rustc-demangle</name>
<url>https://github.com/alexcrichton/rustc-demangle/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rustc-hash</name>
<url>https://github.com/rust-lang-nursery/rustc-hash/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rustc_version</name>
<url>https://github.com/Kimundi/rustc-version-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: ryu</name>
<url>https://github.com/dtolnay/ryu/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: safemem</name>
<url>https://github.com/abonander/safemem/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: scopeguard</name>
<url>https://github.com/bluss/scopeguard/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: semver</name>
<url>https://github.com/steveklabnik/semver/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: semver-parser</name>
<url>https://github.com/steveklabnik/semver-parser/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: serde</name>
<url>https://github.com/serde-rs/serde/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: serde_derive</name>
<url>https://github.com/serde-rs/serde/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: serde_json</name>
<url>https://github.com/serde-rs/json/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: shlex</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
<license>
<name>Apache License 2.0: smallbitvec</name>
<url>https://github.com/servo/smallbitvec/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: smallvec</name>
<url>https://github.com/servo/rust-smallvec/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: syn</name>
<url>https://github.com/dtolnay/syn/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: syn</name>
<url>https://github.com/dtolnay/syn/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: tempfile</name>
<url>https://github.com/Stebalien/tempfile/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: thread_local</name>
<url>https://github.com/Amanieu/thread_local-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: time</name>
<url>https://github.com/time-rs/time/blob/master/LICENSE-Apache</url>
</license>
<license>
<name>Apache License 2.0: toml</name>
<url>https://github.com/alexcrichton/toml-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: unicode-bidi</name>
<url>https://github.com/servo/unicode-bidi/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: unicode-normalization</name>
<url>https://github.com/unicode-rs/unicode-normalization/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: unicode-segmentation</name>
<url>https://github.com/unicode-rs/unicode-segmentation/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: unicode-width</name>
<url>https://github.com/unicode-rs/unicode-width/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: unicode-xid</name>
<url>https://github.com/unicode-rs/unicode-xid/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: unicode-xid</name>
<url>https://github.com/unicode-rs/unicode-xid/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: url</name>
<url>https://github.com/servo/rust-url/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: url_serde</name>
<url>https://github.com/servo/rust-url/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: vec_map</name>
<url>https://github.com/contain-rs/vec-map/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: version_check</name>
<url>https://github.com/SergioBenitez/version_check/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: winapi</name>
<url>https://github.com/retep998/winapi-rs/blob/master/LICENSE-MIT</url>
</license>
<license>
<name>Apache License 2.0: winapi-x86_64-pc-windows-gnu</name>
<url>https://github.com/retep998/winapi-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>MIT License: aho-corasick</name>
<url>https://github.com/BurntSushi/aho-corasick/blob/master/LICENSE-MIT</url>
</license>
<license>
<name>MIT License: byteorder</name>
<url>https://github.com/BurntSushi/byteorder/blob/master/LICENSE-MIT</url>
</license>
<license>
<name>MIT License: memchr</name>
<url>https://github.com/BurntSushi/rust-memchr/blob/master/LICENSE-MIT</url>
</license>
<license>
<name>MIT License: termcolor</name>
<url>https://github.com/BurntSushi/termcolor/blob/master/LICENSE-MIT</url>
</license>
<license>
<name>MIT License: ansi_term</name>
<url>https://github.com/ogham/rust-ansi-term/blob/master/LICENCE</url>
</license>
<license>
<name>MIT License: atty</name>
<url>https://github.com/softprops/atty/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: bincode</name>
<url>https://github.com/servo/bincode/blob/master/LICENSE.md</url>
</license>
<license>
<name>MIT License: bytes</name>
<url>https://github.com/carllerche/bytes/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: caseless</name>
<url>https://github.com/SimonSapin/rust-caseless/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: clap</name>
<url>https://github.com/clap-rs/clap/blob/master/LICENSE-MIT</url>
</license>
<license>
<name>MIT License: libsqlite3-sys</name>
<url>https://github.com/jgallagher/rusqlite/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: rusqlite</name>
<url>https://github.com/jgallagher/rusqlite/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: matches</name>
<url>https://github.com/SimonSapin/rust-std-candidates/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: nom</name>
<url>https://github.com/Geal/nom/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: strsim</name>
<url>https://github.com/dguo/strsim-rs/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: synstructure</name>
<url>https://github.com/mystor/synstructure/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: textwrap</name>
<url>https://github.com/mgeisler/textwrap/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: which</name>
<url>https://github.com/harryfei/which-rs/blob/master/LICENSE.txt</url>
</license>
<license>
<name>MIT License: which</name>
<url>https://github.com/harryfei/which-rs/blob/master/LICENSE.txt</url>
</license>
<license>
<name>CC0-1.0 License: base16</name>
<url>https://github.com/thomcc/rust-base16/blob/master/LICENSE-CC0</url>
</license>
<license>
<name>ISC License: libloading</name>
<url>https://github.com/nagisa/rust_libloading/blob//master/LICENSE</url>
</license>
<license>
<name>ISC License: ring</name>
<url>https://github.com/briansmith/ring/blob/master/LICENSE</url>
</license>
<license>
<name>BSD-3-Clause License: bindgen</name>
<url>https://github.com/rust-lang/rust-bindgen/blob/master/LICENSE</url>
</license>
<license>
<name>BSD-3-Clause License: protobuf</name>
<url>https://github.com/protocolbuffers/protobuf/blob/master/LICENSE</url>
</license>
<license>
<name>BSD-3-Clause License: sqlcipher</name>
<url>https://github.com/sqlcipher/sqlcipher/blob/master/LICENSE</url>
</license>
<license>
<name>Optional Notice: SQLite</name>
<url>https://sqlite.org/copyright.html</url>
</license>
</licenses>

Просмотреть файл

@ -26,7 +26,7 @@ the details of which are reproduced below.
* [BSD-3-Clause License: bindgen](#bsd-3-clause-license-bindgen)
* [BSD-3-Clause License: protobuf](#bsd-3-clause-license-protobuf)
* [BSD-3-Clause License: sqlcipher](#bsd-3-clause-license-sqlcipher)
* [Optional Notice: SQlite](#optional-notice-sqlite)
* [Optional Notice: SQLite](#optional-notice-sqlite)
-------------
## Mozilla Public License 2.0
@ -438,7 +438,7 @@ The following text applies to code linked from these dependendencies:
[glob](https://github.com/rust-lang/glob),
[heck](https://github.com/withoutboats/heck),
[hex](https://github.com/KokaKiwi/rust-hex),
[humantime](None),
[humantime](https://github.com/tailhook/humantime),
[idna](https://github.com/servo/rust-url/),
[iovec](https://github.com/carllerche/iovec),
[itertools](https://github.com/bluss/rust-itertools),
@ -750,7 +750,7 @@ THE SOFTWARE.
## MIT License: ansi_term
The following text applies to code linked from these dependendencies:
[ansi_term](None)
[ansi_term](https://github.com/ogham/rust-ansi-term)
```
The MIT License (MIT)
@ -1415,7 +1415,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
```
-------------
## Optional Notice: SQlite
## Optional Notice: SQLite
The following text applies to code linked from these dependendencies:
[sqlite](https://www.sqlite.org/)

Просмотреть файл

@ -0,0 +1,539 @@
<licenses>
<!--
Binary distributions of this software incorporate code from a number of third-party dependencies.
These dependencies are available under a variety of free and open source licenses,
the details of which are reproduced below.
-->
<license>
<name>Mozilla Public License 2.0: NSPR</name>
<url>https://hg.mozilla.org/projects/nspr/raw-file/tip/LICENSE</url>
</license>
<license>
<name>Mozilla Public License 2.0: NSS</name>
<url>https://hg.mozilla.org/projects/nss/raw-file/tip/COPYING</url>
</license>
<license>
<name>Mozilla Public License 2.0: ece</name>
<url>https://github.com/mozilla/rust-ece/blob/master/LICENSE</url>
</license>
<license>
<name>Mozilla Public License 2.0: hawk</name>
<url>https://github.com/taskcluster/rust-hawk/blob/master/LICENSE</url>
</license>
<license>
<name>Apache License 2.0: autocfg</name>
<url>https://github.com/cuviper/autocfg/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: backtrace</name>
<url>https://github.com/rust-lang/backtrace-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: backtrace-sys</name>
<url>https://github.com/rust-lang/backtrace-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: base64</name>
<url>https://github.com/alicemaz/rust-base64/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: base64</name>
<url>https://github.com/alicemaz/rust-base64/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: bitflags</name>
<url>https://github.com/bitflags/bitflags/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: c2-chacha</name>
<url>https://github.com/cryptocorrosion/cryptocorrosion/blob/master/stream-ciphers/chacha/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: cc</name>
<url>https://github.com/alexcrichton/cc-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: cexpr</name>
<url>https://github.com/jethrogb/rust-cexpr/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: cfg-if</name>
<url>https://github.com/alexcrichton/cfg-if/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: clang-sys</name>
<url>https://github.com/KyleMayes/clang-sys/blob/master/LICENSE.txt</url>
</license>
<license>
<name>Apache License 2.0: dogear</name>
<url>https://github.com/mozilla/dogear/blob/master/LICENSE</url>
</license>
<license>
<name>Apache License 2.0: either</name>
<url>https://github.com/bluss/either/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: env_logger</name>
<url>https://github.com/sebasmagri/env_logger/blob//master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: failure</name>
<url>https://github.com/rust-lang-nursery/failure/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: failure_derive</name>
<url>https://github.com/withoutboats/failure_derive/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: fallible-iterator</name>
<url>https://github.com/sfackler/rust-fallible-iterator/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: fallible-streaming-iterator</name>
<url>https://github.com/sfackler/fallible-streaming-iterator/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: fixedbitset</name>
<url>https://github.com/bluss/fixedbitset/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: getrandom</name>
<url>https://github.com/rust-random/getrandom/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: glob</name>
<url>https://github.com/rust-lang/glob/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: heck</name>
<url>https://github.com/withoutboats/heck/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: hex</name>
<url>https://github.com/KokaKiwi/rust-hex/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: humantime</name>
<url>https://github.com/tailhook/humantime/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: idna</name>
<url>https://github.com/servo/rust-url/blob//master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: idna</name>
<url>https://github.com/servo/rust-url/blob//master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: iovec</name>
<url>https://github.com/carllerche/iovec/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: itertools</name>
<url>https://github.com/bluss/rust-itertools/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: itoa</name>
<url>https://github.com/dtolnay/itoa/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: jna</name>
<url>https://github.com/java-native-access/jna/blob/master/AL2.0</url>
</license>
<license>
<name>Apache License 2.0: lazy_static</name>
<url>https://github.com/rust-lang-nursery/lazy-static.rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: libc</name>
<url>https://github.com/rust-lang/libc/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: linked-hash-map</name>
<url>https://github.com/contain-rs/linked-hash-map/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: lock_api</name>
<url>https://github.com/Amanieu/parking_lot/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: log</name>
<url>https://github.com/rust-lang/log/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: lru-cache</name>
<url>https://github.com/contain-rs/lru-cache/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: multimap</name>
<url>https://github.com/havarnov/multimap/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: once_cell</name>
<url>https://github.com/matklad/once_cell/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: once_cell</name>
<url>https://github.com/matklad/once_cell/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: parking_lot</name>
<url>https://github.com/Amanieu/parking_lot/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: parking_lot_core</name>
<url>https://github.com/Amanieu/parking_lot/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: peeking_take_while</name>
<url>https://github.com/fitzgen/peeking_take_while/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: percent-encoding</name>
<url>https://github.com/servo/rust-url/blob//master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: petgraph</name>
<url>https://github.com/bluss/petgraph/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: pkg-config</name>
<url>https://github.com/rust-lang/pkg-config-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: ppv-lite86</name>
<url>https://github.com/cryptocorrosion/cryptocorrosion/blob/master/utils-simd/ppv-lite86/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: proc-macro2</name>
<url>https://github.com/alexcrichton/proc-macro2/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: proc-macro2</name>
<url>https://github.com/alexcrichton/proc-macro2/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: prost</name>
<url>https://github.com/danburkert/prost/blob/master/LICENSE</url>
</license>
<license>
<name>Apache License 2.0: prost-build</name>
<url>https://github.com/danburkert/prost/blob/master/LICENSE</url>
</license>
<license>
<name>Apache License 2.0: prost-derive</name>
<url>https://github.com/danburkert/prost/blob/master/LICENSE</url>
</license>
<license>
<name>Apache License 2.0: prost-types</name>
<url>https://github.com/danburkert/prost/blob/master/LICENSE</url>
</license>
<license>
<name>Apache License 2.0: quick-error</name>
<url>https://github.com/tailhook/quick-error/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: quote</name>
<url>https://github.com/dtolnay/quote/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: quote</name>
<url>https://github.com/dtolnay/quote/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_chacha</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_chacha</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_core</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_core</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_core</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_hc</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_isaac</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_jitter</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_os</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_pcg</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_xorshift</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: regex</name>
<url>https://github.com/rust-lang/regex/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: regex-syntax</name>
<url>https://github.com/rust-lang/regex/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: remove_dir_all</name>
<url>https://github.com/XAMPPRocky/remove_dir_all/blob/master/LICENCE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rustc-demangle</name>
<url>https://github.com/alexcrichton/rustc-demangle/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rustc-hash</name>
<url>https://github.com/rust-lang-nursery/rustc-hash/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rustc_version</name>
<url>https://github.com/Kimundi/rustc-version-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: ryu</name>
<url>https://github.com/dtolnay/ryu/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: safemem</name>
<url>https://github.com/abonander/safemem/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: scopeguard</name>
<url>https://github.com/bluss/scopeguard/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: semver</name>
<url>https://github.com/steveklabnik/semver/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: semver-parser</name>
<url>https://github.com/steveklabnik/semver-parser/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: serde</name>
<url>https://github.com/serde-rs/serde/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: serde_derive</name>
<url>https://github.com/serde-rs/serde/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: serde_json</name>
<url>https://github.com/serde-rs/json/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: shlex</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
<license>
<name>Apache License 2.0: smallbitvec</name>
<url>https://github.com/servo/smallbitvec/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: smallvec</name>
<url>https://github.com/servo/rust-smallvec/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: syn</name>
<url>https://github.com/dtolnay/syn/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: syn</name>
<url>https://github.com/dtolnay/syn/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: tempfile</name>
<url>https://github.com/Stebalien/tempfile/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: thread_local</name>
<url>https://github.com/Amanieu/thread_local-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: time</name>
<url>https://github.com/time-rs/time/blob/master/LICENSE-Apache</url>
</license>
<license>
<name>Apache License 2.0: toml</name>
<url>https://github.com/alexcrichton/toml-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: unicode-bidi</name>
<url>https://github.com/servo/unicode-bidi/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: unicode-normalization</name>
<url>https://github.com/unicode-rs/unicode-normalization/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: unicode-segmentation</name>
<url>https://github.com/unicode-rs/unicode-segmentation/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: unicode-width</name>
<url>https://github.com/unicode-rs/unicode-width/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: unicode-xid</name>
<url>https://github.com/unicode-rs/unicode-xid/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: unicode-xid</name>
<url>https://github.com/unicode-rs/unicode-xid/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: url</name>
<url>https://github.com/servo/rust-url/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: url_serde</name>
<url>https://github.com/servo/rust-url/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: vec_map</name>
<url>https://github.com/contain-rs/vec-map/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: version_check</name>
<url>https://github.com/SergioBenitez/version_check/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: winapi</name>
<url>https://github.com/retep998/winapi-rs/blob/master/LICENSE-MIT</url>
</license>
<license>
<name>Apache License 2.0: winapi-x86_64-pc-windows-gnu</name>
<url>https://github.com/retep998/winapi-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>MIT License: aho-corasick</name>
<url>https://github.com/BurntSushi/aho-corasick/blob/master/LICENSE-MIT</url>
</license>
<license>
<name>MIT License: byteorder</name>
<url>https://github.com/BurntSushi/byteorder/blob/master/LICENSE-MIT</url>
</license>
<license>
<name>MIT License: memchr</name>
<url>https://github.com/BurntSushi/rust-memchr/blob/master/LICENSE-MIT</url>
</license>
<license>
<name>MIT License: termcolor</name>
<url>https://github.com/BurntSushi/termcolor/blob/master/LICENSE-MIT</url>
</license>
<license>
<name>MIT License: ansi_term</name>
<url>https://github.com/ogham/rust-ansi-term/blob/master/LICENCE</url>
</license>
<license>
<name>MIT License: atty</name>
<url>https://github.com/softprops/atty/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: bincode</name>
<url>https://github.com/servo/bincode/blob/master/LICENSE.md</url>
</license>
<license>
<name>MIT License: bytes</name>
<url>https://github.com/carllerche/bytes/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: caseless</name>
<url>https://github.com/SimonSapin/rust-caseless/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: clap</name>
<url>https://github.com/clap-rs/clap/blob/master/LICENSE-MIT</url>
</license>
<license>
<name>MIT License: libsqlite3-sys</name>
<url>https://github.com/jgallagher/rusqlite/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: rusqlite</name>
<url>https://github.com/jgallagher/rusqlite/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: matches</name>
<url>https://github.com/SimonSapin/rust-std-candidates/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: nom</name>
<url>https://github.com/Geal/nom/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: strsim</name>
<url>https://github.com/dguo/strsim-rs/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: synstructure</name>
<url>https://github.com/mystor/synstructure/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: textwrap</name>
<url>https://github.com/mgeisler/textwrap/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: which</name>
<url>https://github.com/harryfei/which-rs/blob/master/LICENSE.txt</url>
</license>
<license>
<name>MIT License: which</name>
<url>https://github.com/harryfei/which-rs/blob/master/LICENSE.txt</url>
</license>
<license>
<name>CC0-1.0 License: base16</name>
<url>https://github.com/thomcc/rust-base16/blob/master/LICENSE-CC0</url>
</license>
<license>
<name>ISC License: libloading</name>
<url>https://github.com/nagisa/rust_libloading/blob//master/LICENSE</url>
</license>
<license>
<name>ISC License: ring</name>
<url>https://github.com/briansmith/ring/blob/master/LICENSE</url>
</license>
<license>
<name>BSD-3-Clause License: bindgen</name>
<url>https://github.com/rust-lang/rust-bindgen/blob/master/LICENSE</url>
</license>
<license>
<name>BSD-3-Clause License: protobuf</name>
<url>https://github.com/protocolbuffers/protobuf/blob/master/LICENSE</url>
</license>
<license>
<name>BSD-3-Clause License: sqlcipher</name>
<url>https://github.com/sqlcipher/sqlcipher/blob/master/LICENSE</url>
</license>
<license>
<name>Optional Notice: SQLite</name>
<url>https://sqlite.org/copyright.html</url>
</license>
</licenses>

Просмотреть файл

@ -37,7 +37,7 @@ the details of which are reproduced below.
* [BSD-3-Clause License: bindgen](#bsd-3-clause-license-bindgen)
* [BSD-3-Clause License: sqlcipher](#bsd-3-clause-license-sqlcipher)
* [Zlib License: adler32](#zlib-license-adler32)
* [Optional Notice: SQlite](#optional-notice-sqlite)
* [Optional Notice: SQLite](#optional-notice-sqlite)
-------------
## Mozilla Public License 2.0
@ -468,7 +468,7 @@ The following text applies to code linked from these dependendencies:
[hex](https://github.com/KokaKiwi/rust-hex),
[http](https://github.com/hyperium/http),
[httparse](https://github.com/seanmonstar/httparse),
[humantime](None),
[humantime](https://github.com/tailhook/humantime),
[hyper-tls](https://github.com/hyperium/hyper-tls),
[idna](https://github.com/servo/rust-url/),
[indexmap](https://github.com/bluss/indexmap),
@ -792,7 +792,7 @@ THE SOFTWARE.
## MIT License: ansi_term
The following text applies to code linked from these dependendencies:
[ansi_term](None)
[ansi_term](https://github.com/ogham/rust-ansi-term)
```
The MIT License (MIT)
@ -1818,7 +1818,7 @@ Copyright notice for the original C code from the zlib project:
```
-------------
## Optional Notice: SQlite
## Optional Notice: SQLite
The following text applies to code linked from these dependendencies:
[sqlite](https://www.sqlite.org/)

Просмотреть файл

@ -24,7 +24,7 @@ the details of which are reproduced below.
* [BSD-3-Clause License: bindgen](#bsd-3-clause-license-bindgen)
* [BSD-3-Clause License: protobuf](#bsd-3-clause-license-protobuf)
* [BSD-3-Clause License: sqlcipher](#bsd-3-clause-license-sqlcipher)
* [Optional Notice: SQlite](#optional-notice-sqlite)
* [Optional Notice: SQLite](#optional-notice-sqlite)
-------------
## Mozilla Public License 2.0
@ -435,7 +435,7 @@ The following text applies to code linked from these dependendencies:
[glob](https://github.com/rust-lang/glob),
[heck](https://github.com/withoutboats/heck),
[hex](https://github.com/KokaKiwi/rust-hex),
[humantime](None),
[humantime](https://github.com/tailhook/humantime),
[idna](https://github.com/servo/rust-url/),
[iovec](https://github.com/carllerche/iovec),
[itertools](https://github.com/bluss/rust-itertools),
@ -745,7 +745,7 @@ THE SOFTWARE.
## MIT License: ansi_term
The following text applies to code linked from these dependendencies:
[ansi_term](None)
[ansi_term](https://github.com/ogham/rust-ansi-term)
```
The MIT License (MIT)
@ -1349,7 +1349,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
```
-------------
## Optional Notice: SQlite
## Optional Notice: SQLite
The following text applies to code linked from these dependendencies:
[sqlite](https://www.sqlite.org/)

Просмотреть файл

@ -0,0 +1,515 @@
<licenses>
<!--
Binary distributions of this software incorporate code from a number of third-party dependencies.
These dependencies are available under a variety of free and open source licenses,
the details of which are reproduced below.
-->
<license>
<name>Mozilla Public License 2.0: NSPR</name>
<url>https://hg.mozilla.org/projects/nspr/raw-file/tip/LICENSE</url>
</license>
<license>
<name>Mozilla Public License 2.0: NSS</name>
<url>https://hg.mozilla.org/projects/nss/raw-file/tip/COPYING</url>
</license>
<license>
<name>Mozilla Public License 2.0: ece</name>
<url>https://github.com/mozilla/rust-ece/blob/master/LICENSE</url>
</license>
<license>
<name>Mozilla Public License 2.0: hawk</name>
<url>https://github.com/taskcluster/rust-hawk/blob/master/LICENSE</url>
</license>
<license>
<name>Apache License 2.0: autocfg</name>
<url>https://github.com/cuviper/autocfg/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: backtrace</name>
<url>https://github.com/rust-lang/backtrace-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: backtrace-sys</name>
<url>https://github.com/rust-lang/backtrace-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: base64</name>
<url>https://github.com/alicemaz/rust-base64/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: base64</name>
<url>https://github.com/alicemaz/rust-base64/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: bitflags</name>
<url>https://github.com/bitflags/bitflags/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: c2-chacha</name>
<url>https://github.com/cryptocorrosion/cryptocorrosion/blob/master/stream-ciphers/chacha/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: cc</name>
<url>https://github.com/alexcrichton/cc-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: cexpr</name>
<url>https://github.com/jethrogb/rust-cexpr/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: cfg-if</name>
<url>https://github.com/alexcrichton/cfg-if/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: clang-sys</name>
<url>https://github.com/KyleMayes/clang-sys/blob/master/LICENSE.txt</url>
</license>
<license>
<name>Apache License 2.0: either</name>
<url>https://github.com/bluss/either/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: env_logger</name>
<url>https://github.com/sebasmagri/env_logger/blob//master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: failure</name>
<url>https://github.com/rust-lang-nursery/failure/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: failure_derive</name>
<url>https://github.com/withoutboats/failure_derive/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: fallible-iterator</name>
<url>https://github.com/sfackler/rust-fallible-iterator/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: fallible-streaming-iterator</name>
<url>https://github.com/sfackler/fallible-streaming-iterator/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: fixedbitset</name>
<url>https://github.com/bluss/fixedbitset/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: getrandom</name>
<url>https://github.com/rust-random/getrandom/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: glob</name>
<url>https://github.com/rust-lang/glob/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: heck</name>
<url>https://github.com/withoutboats/heck/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: hex</name>
<url>https://github.com/KokaKiwi/rust-hex/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: humantime</name>
<url>https://github.com/tailhook/humantime/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: idna</name>
<url>https://github.com/servo/rust-url/blob//master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: iovec</name>
<url>https://github.com/carllerche/iovec/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: itertools</name>
<url>https://github.com/bluss/rust-itertools/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: itoa</name>
<url>https://github.com/dtolnay/itoa/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: jna</name>
<url>https://github.com/java-native-access/jna/blob/master/AL2.0</url>
</license>
<license>
<name>Apache License 2.0: lazy_static</name>
<url>https://github.com/rust-lang-nursery/lazy-static.rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: libc</name>
<url>https://github.com/rust-lang/libc/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: linked-hash-map</name>
<url>https://github.com/contain-rs/linked-hash-map/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: lock_api</name>
<url>https://github.com/Amanieu/parking_lot/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: log</name>
<url>https://github.com/rust-lang/log/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: lru-cache</name>
<url>https://github.com/contain-rs/lru-cache/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: multimap</name>
<url>https://github.com/havarnov/multimap/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: once_cell</name>
<url>https://github.com/matklad/once_cell/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: once_cell</name>
<url>https://github.com/matklad/once_cell/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: parking_lot</name>
<url>https://github.com/Amanieu/parking_lot/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: parking_lot_core</name>
<url>https://github.com/Amanieu/parking_lot/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: peeking_take_while</name>
<url>https://github.com/fitzgen/peeking_take_while/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: percent-encoding</name>
<url>https://github.com/servo/rust-url/blob//master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: petgraph</name>
<url>https://github.com/bluss/petgraph/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: pkg-config</name>
<url>https://github.com/rust-lang/pkg-config-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: ppv-lite86</name>
<url>https://github.com/cryptocorrosion/cryptocorrosion/blob/master/utils-simd/ppv-lite86/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: proc-macro2</name>
<url>https://github.com/alexcrichton/proc-macro2/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: proc-macro2</name>
<url>https://github.com/alexcrichton/proc-macro2/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: prost</name>
<url>https://github.com/danburkert/prost/blob/master/LICENSE</url>
</license>
<license>
<name>Apache License 2.0: prost-build</name>
<url>https://github.com/danburkert/prost/blob/master/LICENSE</url>
</license>
<license>
<name>Apache License 2.0: prost-derive</name>
<url>https://github.com/danburkert/prost/blob/master/LICENSE</url>
</license>
<license>
<name>Apache License 2.0: prost-types</name>
<url>https://github.com/danburkert/prost/blob/master/LICENSE</url>
</license>
<license>
<name>Apache License 2.0: quick-error</name>
<url>https://github.com/tailhook/quick-error/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: quote</name>
<url>https://github.com/dtolnay/quote/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: quote</name>
<url>https://github.com/dtolnay/quote/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_chacha</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_chacha</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_core</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_core</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_core</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_hc</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_isaac</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_jitter</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_os</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_pcg</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rand_xorshift</name>
<url>https://github.com/rust-random/rand/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: regex</name>
<url>https://github.com/rust-lang/regex/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: regex-syntax</name>
<url>https://github.com/rust-lang/regex/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: remove_dir_all</name>
<url>https://github.com/XAMPPRocky/remove_dir_all/blob/master/LICENCE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rustc-demangle</name>
<url>https://github.com/alexcrichton/rustc-demangle/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rustc-hash</name>
<url>https://github.com/rust-lang-nursery/rustc-hash/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: rustc_version</name>
<url>https://github.com/Kimundi/rustc-version-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: ryu</name>
<url>https://github.com/dtolnay/ryu/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: safemem</name>
<url>https://github.com/abonander/safemem/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: scopeguard</name>
<url>https://github.com/bluss/scopeguard/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: semver</name>
<url>https://github.com/steveklabnik/semver/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: semver-parser</name>
<url>https://github.com/steveklabnik/semver-parser/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: serde</name>
<url>https://github.com/serde-rs/serde/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: serde_derive</name>
<url>https://github.com/serde-rs/serde/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: serde_json</name>
<url>https://github.com/serde-rs/json/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: shlex</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
<license>
<name>Apache License 2.0: smallvec</name>
<url>https://github.com/servo/rust-smallvec/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: syn</name>
<url>https://github.com/dtolnay/syn/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: syn</name>
<url>https://github.com/dtolnay/syn/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: tempfile</name>
<url>https://github.com/Stebalien/tempfile/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: thread_local</name>
<url>https://github.com/Amanieu/thread_local-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: time</name>
<url>https://github.com/time-rs/time/blob/master/LICENSE-Apache</url>
</license>
<license>
<name>Apache License 2.0: toml</name>
<url>https://github.com/alexcrichton/toml-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: unicode-bidi</name>
<url>https://github.com/servo/unicode-bidi/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: unicode-normalization</name>
<url>https://github.com/unicode-rs/unicode-normalization/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: unicode-segmentation</name>
<url>https://github.com/unicode-rs/unicode-segmentation/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: unicode-width</name>
<url>https://github.com/unicode-rs/unicode-width/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: unicode-xid</name>
<url>https://github.com/unicode-rs/unicode-xid/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: unicode-xid</name>
<url>https://github.com/unicode-rs/unicode-xid/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: url</name>
<url>https://github.com/servo/rust-url/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: vec_map</name>
<url>https://github.com/contain-rs/vec-map/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: version_check</name>
<url>https://github.com/SergioBenitez/version_check/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: winapi</name>
<url>https://github.com/retep998/winapi-rs/blob/master/LICENSE-MIT</url>
</license>
<license>
<name>Apache License 2.0: winapi-x86_64-pc-windows-gnu</name>
<url>https://github.com/retep998/winapi-rs/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>MIT License: aho-corasick</name>
<url>https://github.com/BurntSushi/aho-corasick/blob/master/LICENSE-MIT</url>
</license>
<license>
<name>MIT License: byteorder</name>
<url>https://github.com/BurntSushi/byteorder/blob/master/LICENSE-MIT</url>
</license>
<license>
<name>MIT License: memchr</name>
<url>https://github.com/BurntSushi/rust-memchr/blob/master/LICENSE-MIT</url>
</license>
<license>
<name>MIT License: termcolor</name>
<url>https://github.com/BurntSushi/termcolor/blob/master/LICENSE-MIT</url>
</license>
<license>
<name>MIT License: ansi_term</name>
<url>https://github.com/ogham/rust-ansi-term/blob/master/LICENCE</url>
</license>
<license>
<name>MIT License: atty</name>
<url>https://github.com/softprops/atty/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: bytes</name>
<url>https://github.com/carllerche/bytes/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: clap</name>
<url>https://github.com/clap-rs/clap/blob/master/LICENSE-MIT</url>
</license>
<license>
<name>MIT License: libsqlite3-sys</name>
<url>https://github.com/jgallagher/rusqlite/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: rusqlite</name>
<url>https://github.com/jgallagher/rusqlite/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: matches</name>
<url>https://github.com/SimonSapin/rust-std-candidates/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: nom</name>
<url>https://github.com/Geal/nom/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: strsim</name>
<url>https://github.com/dguo/strsim-rs/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: synstructure</name>
<url>https://github.com/mystor/synstructure/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: textwrap</name>
<url>https://github.com/mgeisler/textwrap/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: which</name>
<url>https://github.com/harryfei/which-rs/blob/master/LICENSE.txt</url>
</license>
<license>
<name>MIT License: which</name>
<url>https://github.com/harryfei/which-rs/blob/master/LICENSE.txt</url>
</license>
<license>
<name>CC0-1.0 License: base16</name>
<url>https://github.com/thomcc/rust-base16/blob/master/LICENSE-CC0</url>
</license>
<license>
<name>ISC License: libloading</name>
<url>https://github.com/nagisa/rust_libloading/blob//master/LICENSE</url>
</license>
<license>
<name>ISC License: ring</name>
<url>https://github.com/briansmith/ring/blob/master/LICENSE</url>
</license>
<license>
<name>BSD-3-Clause License: bindgen</name>
<url>https://github.com/rust-lang/rust-bindgen/blob/master/LICENSE</url>
</license>
<license>
<name>BSD-3-Clause License: protobuf</name>
<url>https://github.com/protocolbuffers/protobuf/blob/master/LICENSE</url>
</license>
<license>
<name>BSD-3-Clause License: sqlcipher</name>
<url>https://github.com/sqlcipher/sqlcipher/blob/master/LICENSE</url>
</license>
<license>
<name>Optional Notice: SQLite</name>
<url>https://sqlite.org/copyright.html</url>
</license>
</licenses>

Просмотреть файл

@ -112,10 +112,22 @@ ext.configurePublish = { jnaForTestConfiguration = null ->
version = rootProject.ext.library.version
packaging = "aar"
licenses {
license {
name = libLicense
url = libLicenseUrl
license {
name = libLicense
url = libLicenseUrl
}
// Megazords include compiled code from third-party rust dependencies.
// We add the license info of those dependencies to the .pom to make it
// easy for consumers to incorporate into their license info page.
if (isMegazord) {
def depLicenses = new XmlSlurper().parse(new File("${projectDir}/dependency-licenses.xml"))
depLicenses.license.each { node ->
license {
name = node.name.text()
url = node.url.text()
}
}
}

Просмотреть файл

@ -1,3 +1,4 @@
#!/usr/bin/env python3
#
# This script can be used to generate a summary of our third-party dependencies,
# including license details. Use it like this:
@ -18,6 +19,9 @@ import json
import textwrap
import itertools
import collections
from urllib.parse import urlparse, urlunparse
from xml.sax import saxutils
import requests
# The targets used by rust-android-gradle, including the ones for unit testing.
@ -121,11 +125,14 @@ EXTRA_PACKAGE_METADATA = {
"repository": "https://www.openssl.org/source/",
"license": "EXT-OPENSSL",
"license_file": "https://www.openssl.org/source/license-openssl-ssleay.txt",
"license_url": "https://www.openssl.org/source/license.html",
},
"ext-ring": {
"name": "ring",
"repository": "https://github.com/briansmith/ring",
"license": "ISC",
"license_file": "https://raw.githubusercontent.com/briansmith/ring/master/LICENSE",
"license_url": "https://github.com/briansmith/ring/blob/master/LICENSE",
# We're only using the API surface from ring, not its internals,
# and all the relevant files and under this ISC-style license.
"license_text": textwrap.dedent(r"""
@ -154,6 +161,7 @@ EXTRA_PACKAGE_METADATA = {
"name": "sqlite",
"repository": "https://www.sqlite.org/",
"license": "EXT-SQLITE",
"license_file": "https://sqlite.org/copyright.html",
"license_text": "This software makes use of the 'SQLite' database engine, and we are very"\
" grateful to D. Richard Hipp and team for producing it.",
},
@ -418,7 +426,71 @@ PACKAGE_METADATA_FIXUPS = {
"check": None,
"fixup": "https://raw.githubusercontent.com/retep998/winapi-rs/master/LICENSE-MIT",
},
}
},
# These packages do not make it easy to infer a URL at which their license can be read,
# so we track it down by hand and hard-code it here.
"ansi_term": {
"repository": {
"check": None,
"fixup": "https://github.com/ogham/rust-ansi-term",
},
},
"c2-chacha": {
"repository": {
"check": "https://github.com/cryptocorrosion/cryptocorrosion",
},
"license_url": {
"check": None,
"fixup": "https://github.com/cryptocorrosion/cryptocorrosion/blob/master/stream-ciphers/chacha/LICENSE-APACHE"
},
},
"humantime": {
"repository": {
"check": None,
"fixup": "https://github.com/tailhook/humantime",
},
},
"mime": {
# The current head of "mime" repo has been re-licensed from MIT/Apache-2.0 to MIT,
# meaning that the expected "LICENSE-APACHE" file is not available on master.
"version": {
"check": "0.3.14",
},
"license_url": {
"check": None,
"fixup": "https://github.com/hyperium/mime/blob/v0.3.14/LICENSE-APACHE"
},
},
"ppv-lite86": {
"repository": {
"check": "https://github.com/cryptocorrosion/cryptocorrosion",
},
"license_url": {
"check": None,
"fixup": "https://github.com/cryptocorrosion/cryptocorrosion/blob/master/utils-simd/ppv-lite86/LICENSE-APACHE"
},
},
"time": {
"repository": {
"check": "https://github.com/rust-lang/time",
},
"license_url": {
"check": None,
# The repo has been moved to a difference org.
"fixup": "https://github.com/time-rs/time/blob/master/LICENSE-Apache"
},
},
"winapi": {
"repository": {
# This repo as a whole says its "MIT/Apache-2.0", but the crate distribution
# for this particular crate only specifies "MIT".
"check": "https://github.com/retep998/winapi-rs",
},
"license_url": {
"check": None,
"fixup": "https://github.com/retep998/winapi-rs/blob/master/LICENSE-MIT",
},
},
}
# Sets of common licence file names, by license type.
@ -622,11 +694,16 @@ class WorkspaceMetadata(object):
pkgInfo = self.pkgInfoById[id]
chosenLicense = self.pick_most_acceptable_license(
id, pkgInfo["license"])
licenseFile = self._find_license_file(id, chosenLicense, pkgInfo)
assert pkgInfo["name"] is not None
assert pkgInfo["repository"] is not None
return {
"name": pkgInfo["name"],
"repository": pkgInfo["repository"],
"license": chosenLicense,
"license_text": self._fetch_license_text(id, chosenLicense, pkgInfo),
"license_file": licenseFile,
"license_text": self._fetch_license_text(id, licenseFile, pkgInfo),
"license_url": self._find_license_url(id, chosenLicense, licenseFile, pkgInfo)
}
def pick_most_acceptable_license(self, id, licenseId):
@ -647,19 +724,10 @@ class WorkspaceMetadata(object):
raise RuntimeError(
"Could not determine acceptable license for {}; license is '{}'".format(id, licenseId))
def _fetch_license_text(self, id, license, pkgInfo):
if "license_text" in pkgInfo:
return pkgInfo["license_text"]
def _find_license_file(self, id, license, pkgInfo):
licenseFile = pkgInfo.get("license_file", None)
if licenseFile is not None:
if licenseFile.startswith("https://"):
r = requests.get(licenseFile)
r.raise_for_status()
return r.content.decode("utf8")
else:
pkgRoot = os.path.dirname(pkgInfo["manifest_path"])
with open(os.path.join(pkgRoot, licenseFile)) as f:
return f.read()
return licenseFile
# No explicit license file was declared, let's see if we can unambiguously identify one
# using common naming conventions.
pkgRoot = os.path.dirname(pkgInfo["manifest_path"])
@ -670,9 +738,8 @@ class WorkspaceMetadata(object):
foundLicenseFiles = [nm for nm in os.listdir(
pkgRoot) if nm.lower() in licenseFileNames]
if len(foundLicenseFiles) == 1:
with open(os.path.join(pkgRoot, foundLicenseFiles[0])) as f:
return f.read()
# We couldn't find the right license text. Let's do what we can to help a human
return foundLicenseFiles[0]
# We couldn't find the right license file. Let's do what we can to help a human
# pick the right one and add it to the list of manual fixups.
if len(foundLicenseFiles) > 1:
err = "Multiple ambiguous license files found for '{}'.\n".format(
@ -687,15 +754,92 @@ class WorkspaceMetadata(object):
pkgInfo["repository"])
raise RuntimeError(err)
def _fetch_license_text(self, id, licenseFile, pkgInfo):
if "license_text" in pkgInfo:
return pkgInfo["license_text"]
if licenseFile.startswith("https://"):
r = requests.get(licenseFile)
r.raise_for_status()
return r.content.decode("utf8")
else:
pkgRoot = os.path.dirname(pkgInfo["manifest_path"])
with open(os.path.join(pkgRoot, licenseFile)) as f:
return f.read()
def print_dependency_summary(deps, file=sys.stdout):
"""Print a nicely-formatted summary of dependencies and their license info."""
def pf(string, *args):
if args:
string = string.format(*args)
print(string, file=file)
def _find_license_url(self, id, chosenLicense, licenseFile, pkgInfo):
"""Find an appropriate URL at which humans can view a project's license."""
licenseUrl = pkgInfo.get("license_url")
if licenseUrl is not None:
return licenseUrl
# Try to infer a sutiable URL from the local license file
# and github repo metadata.
if urlparse(licenseFile).scheme:
licenseUrl = licenseFile
else:
repo = pkgInfo["repository"]
if repo:
if repo.startswith("http://github.com/"):
repo = repo.replace("http://", "https://")
if repo.startswith("https://github.com/"):
# Some projects include extra context in their repo URL; strip it off.
for strip_suffix in [".git", "/tree/master/{}".format(pkgInfo["name"])]:
if repo.endswith(strip_suffix):
repo = repo[:-len(strip_suffix)]
# Try a couple of common locations for the license file.
for path in ["/master/", "/master/{}/".format(pkgInfo["name"])]:
licenseUrl = repo.replace("github.com", "raw.githubusercontent.com")
licenseUrl += path + licenseFile
r = requests.get(licenseUrl)
if r.status_code == 200:
# Found it!
# TODO: We could check whether the content matches what was on disk.
break
else:
# No potential URLs were actually live.
licenseUrl = None
if licenseUrl is None:
err = "Could not infer license URL for '{}'.\n".format(pkgInfo["name"])
err += "Please locate the correct license URL and add it to `PACKAGE_METADATA_FIXUPS`.\n"
err += "You may need to poke around in the source repository at {}".format(repo)
err += " for a {} license file named {}.".format(chosenLicense, licenseFile)
#raise RuntimeError(err)
print(err)
return None
# As a special case, convert raw github URLs back into human-friendly page URLs.
if licenseUrl.startswith("https://raw.githubusercontent.com/"):
licenseUrl = re.sub(r"raw.githubusercontent.com/([^/]+)/([^/]+)/",
r"github.com/\1/\2/blob/",
licenseUrl)
return licenseUrl
# Dedupe by shared license text where possible.
def make_license_title(license, deps=None):
"""Make a nice human-readable title for a license, and the deps it applies to."""
if license == "EXT-OPENSSL":
return "OpenSSL License"
if license == "EXT-SQLITE":
return "Optional Notice: SQLite"
if license == "MPL-2.0":
title = "Mozilla Public License 2.0"
elif license == "Apache-2.0":
title = "Apache License 2.0"
else:
title = "{} License".format(license)
if deps:
# Dedupe in case of multiple versons of dependencies
names = sorted(set(d["name"] for d in deps))
title = "{}: {}".format(title, ", ".join(names))
return title
def group_dependencies_for_printing(deps):
"""Iterate over groups of dependencies and their license info, in print order.
This is a helper function to group and sort our various dependencies,
so that they're always printed in sensible, consistent order and we
don't unnecessarily repeat any license text.
"""
# Group by shared license text where possible.
depsByLicenseTextHash = collections.defaultdict(list)
for info in deps:
if info["license"] in ("MPL-2.0", "Apache-2.0") or info["license"].startswith("EXT-"):
@ -709,15 +853,60 @@ def print_dependency_summary(deps, file=sys.stdout):
hashlib.sha256(text.encode("utf8")).hexdigest()
depsByLicenseTextHash[licenseTextHash].append(info)
# List licenses in the order in which we prefer them, then in alphabetical order
# of the dependency names. This ensures a convenient and stable ordering.
def sort_key(licenseTextHash):
for i, license in enumerate(LICENES_IN_PREFERENCE_ORDER):
if licenseTextHash.startswith(license):
return (i, sorted(info["name"] for info in depsByLicenseTextHash[licenseTextHash]))
return (i + 1, sorted(info["name"] for info in depsByLicenseTextHash[licenseTextHash]))
# Add summary information for each group.
groups = []
for licenseTextHash, deps in depsByLicenseTextHash.items():
deps = sorted(deps, key=lambda i: i["name"])
sections = sorted(depsByLicenseTextHash.keys(), key=sort_key)
# Find single canonical license text for the group, which is the whole point of grouping.
license = deps[0]["license"]
if licenseTextHash != "Apache-2.0":
licenseText = deps[0]["license_text"]
else:
# As a bit of a hack, we need to find a copy of the "canonical" apache license text
# that still has the copyright placeholders in it, and no project-specific additions.
for dep in deps:
licenseText = dep["license_text"]
if "[yyyy]" in licenseText and "NSS" not in licenseText:
break
else:
raise RuntimeError(
"Could not find appropriate apache license text")
# Make a nice human-readable description for the group.
# For some licenses we don't want to list all the deps in the title.
if license in ("MPL-2.0", "Apache-2.0"):
title = make_license_title(license)
else:
title = make_license_title(license, deps)
groups.append({
"title": title,
"dependencies": deps,
"license": license,
"license_text_hash": licenseTextHash,
"license_text": licenseText,
"license_url": deps[0].get("license_url", "No license URL for {}".format(title)),
})
# List groups in the order in which we prefer their license, then in alphabetical order
# of the dependency names. This ensures a convenient and stable ordering.
def sort_key(group):
for i, license in enumerate(LICENES_IN_PREFERENCE_ORDER):
if group["license"] == license:
return (i, [d["name"] for d in group["dependencies"]])
return (i + 1, [d["name"] for d in group["dependencies"]])
groups.sort(key=sort_key)
return groups
def print_dependency_summary_markdown(deps, file=sys.stdout):
"""Print a nicely-formatted summary of dependencies and their license info."""
def pf(string, *args):
if args:
string = string.format(*args)
print(string, file=file)
pf("# Licenses for Third-Party Dependencies")
pf("")
@ -726,62 +915,59 @@ def print_dependency_summary(deps, file=sys.stdout):
pf("the details of which are reproduced below.")
pf("")
sections = group_dependencies_for_printing(deps)
# First a "table of contents" style thing.
for licenseTextHash in sections:
header = format_license_header(
licenseTextHash, depsByLicenseTextHash[licenseTextHash])
pf("* [{}](#{})", header, header_to_anchor(header))
for section in sections:
header = section["title"]
anchor = header.lower().replace(" ", "-").replace(".",
"").replace(",", "").replace(":", "")
pf("* [{}](#{})", header, anchor)
pf("-------------")
# Now the actual license details.
for licenseTextHash in sections:
deps = sorted(
depsByLicenseTextHash[licenseTextHash], key=lambda i: i["name"])
licenseText = deps[0]["license_text"]
for dep in deps:
licenseText = dep["license_text"]
# As a bit of a hack, we need to find a copy of the "canonical" apache license text
# that still has the copyright placeholders in it, and no project-specific additions.
if licenseTextHash != "Apache-2.0":
break
if "[yyyy]" in licenseText and "NSS" not in licenseText:
break
else:
raise RuntimeError(
"Could not find appropriate apache license text")
pf("## {}", format_license_header(licenseTextHash, deps))
for section in sections:
pf("## {}", section["title"])
pf("")
pkgs = ["[{}]({})".format(info["name"], info["repository"])
for info in deps]
for info in section["dependencies"]]
# Dedupe in case of multiple versons of dependencies.
pkgs = sorted(set(pkgs))
pf("The following text applies to code linked from these dependendencies:\n{}", ",\n".join(pkgs))
pf("")
pf("```")
assert "```" not in licenseText
pf("{}", licenseText)
assert "```" not in section["license_text"]
pf("{}", section["license_text"])
pf("```")
pf("-------------")
def format_license_header(license, deps):
if license == "MPL-2.0":
return "Mozilla Public License 2.0"
if license == "Apache-2.0":
return "Apache License 2.0"
if license == "EXT-OPENSSL":
return "OpenSSL License"
if license == "EXT-SQLITE":
return "Optional Notice: SQlite"
license = license.split(":")[0]
# Dedupe in case of multiple versons of dependencies
names = sorted(set(info["name"] for info in deps))
return "{} License: {}".format(license, ", ".join(names))
def print_dependency_summary_pom(deps, file=sys.stdout):
"""Print a summary of dependencies and their license info in .pom file XML format."""
def pf(string, *args):
if args:
string = string.format(*args)
print(string, file=file)
pf("<licenses>")
pf("<!--")
pf("Binary distributions of this software incorporate code from a number of third-party dependencies.")
pf("These dependencies are available under a variety of free and open source licenses,")
pf("the details of which are reproduced below.")
pf("-->")
def header_to_anchor(header):
return header.lower().replace(" ", "-").replace(".", "").replace(",", "").replace(":", "")
sections = group_dependencies_for_printing(deps)
for section in sections:
# For the .pom file we want to list each dependency separately.
for dep in section["dependencies"]:
pf(" <license>")
pf(" <name>{}</name>", saxutils.escape(make_license_title(dep["license"], [dep])))
pf(" <url>{}</url>", saxutils.escape(dep["license_url"]))
pf(" </license>")
pf("</licenses>")
if __name__ == "__main__":
@ -793,8 +979,10 @@ if __name__ == "__main__":
dest="targets", const=ALL_ANDROID_TARGETS)
parser.add_argument('--all-ios-targets', action="append_const",
dest="targets", const=ALL_IOS_TARGETS)
parser.add_argument('--json', action="store_true",
help="output JSON rather than human-readable text")
parser.add_argument('--format',
choices=["markdown", "json", "pom"],
default="markdown",
help="output format to generate")
parser.add_argument('--check', action="store",
help="suppress output, instead checking that it matches the given file")
args = parser.parse_args()
@ -817,10 +1005,12 @@ if __name__ == "__main__":
else:
output = sys.stdout
if args.json:
if args.format == "json":
json.dump([info for info in deps], output)
elif args.format == "pom":
print_dependency_summary_pom(deps, file=output)
else:
print_dependency_summary(deps, file=output)
print_dependency_summary_markdown(deps, file=output)
if args.check:
with open(args.check, 'r') as f:

Просмотреть файл

@ -1,7 +1,14 @@
#!/bin/sh
python3 ./tools/dependency_summary.py > ./DEPENDENCIES.md
python3 ./tools/dependency_summary.py --all-android-targets --package megazord > megazords/full/DEPENDENCIES.md
python3 ./tools/dependency_summary.py --all-ios-targets --package megazord_ios > megazords/ios/DEPENDENCIES.md
python3 ./tools/dependency_summary.py --all-android-targets --package megazord > megazords/full/DEPENDENCIES.md
python3 ./tools/dependency_summary.py --all-android-targets --package megazord --format pom > megazords/full/android/dependency-licenses.xml
python3 ./tools/dependency_summary.py --all-android-targets --package fenix > megazords/fenix/DEPENDENCIES.md
python3 ./tools/dependency_summary.py --all-android-targets --package fenix --format pom > megazords/fenix/android/dependency-licenses.xml
python3 ./tools/dependency_summary.py --all-android-targets --package lockbox > megazords/lockbox/DEPENDENCIES.md
python3 ./tools/dependency_summary.py --all-android-targets --package lockbox --format pom > megazords/lockbox/android/dependency-licenses.xml