Import nimbus-sdk as submodule, republish as part of the megazord.

This commit pulls in https://github.com/mozilla/nimbus-sdk as a
git submodule, and adds some build integration to publish it as
part of the application-services megazord. Instead of an all-in-one
nimbus package, we produce two separate packages:

* `org.mozilla.appservices:nimbus` with the Nimbus Kotlin code
* `org.mozilla.appservices:full-megazord` updated to include the
  Nimbus Rust code.
This commit is contained in:
Ryan Kelly 2020-10-21 13:46:04 +11:00
Родитель f597001821
Коммит 260d10e19c
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: FB70C973A037D258
31 изменённых файлов: 1427 добавлений и 79 удалений

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

@ -71,6 +71,13 @@ projects:
- name: tabs
type: aar
description: Sync 1.5 remote tabs implementation.
nimbus:
path: components/nimbus
artifactId: nimbus
publications:
- name: nimbus
type: aar
description: The Nimbus SDK, compiled to work with the Application Services full-megazord.
lockbox-megazord:
uploadSymbols: true
path: megazords/lockbox/android

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

@ -9,6 +9,12 @@ parameters:
default: 1.43.0
commands:
full-checkout:
steps:
- checkout
- run:
name: "Pull git submodules"
command: git submodule update --init
setup-sccache:
steps:
- run:
@ -92,6 +98,9 @@ commands:
rustup install <<parameters.rust-version>>
rustup default <<parameters.rust-version>>
rustc --version
- run:
name: Install UniFFI
command: cargo install --version 0.5.0 uniffi_bindgen
build-libs:
parameters:
platform:
@ -155,7 +164,7 @@ commands:
type: string
default: << pipeline.parameters.stable-rust-version >>
steps:
- checkout
- full-checkout
- build-desktop-libs
- setup-rust-toolchain:
rust-version: <<parameters.rust-version>>
@ -205,7 +214,6 @@ commands:
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 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:
- checkout
@ -255,7 +263,7 @@ jobs:
macos:
xcode: "12.0.0"
steps:
- checkout
- full-checkout
- run: brew install swiftlint swiftformat
- run: swiftlint --strict
- run: swiftformat megazords components/*/ios --lint --swiftversion 4 --verbose
@ -264,7 +272,7 @@ jobs:
- image: circleci/rust:latest
resource_class: small
steps:
- checkout
- full-checkout
- setup-rust-toolchain
- run: rustup component add rustfmt
- run: rustfmt --version
@ -300,7 +308,7 @@ jobs:
- image: circleci/rust:latest
resource_class: small
steps:
- checkout
- full-checkout
- run: ./automation/check_protobuf_files_current.py
Lint Bash scripts:
docker:
@ -318,7 +326,7 @@ jobs:
steps:
- install-rust
- setup-rust-toolchain
- checkout
- full-checkout
- dependency-checks
Mirror Bugzilla issues into GitHub:
docker:
@ -369,7 +377,7 @@ jobs:
- restore_cache:
name: Restore sccache cache
key: sccache-cache-macos-{{ arch }}
- checkout
- full-checkout
- install-rust
- setup-rust-toolchain
- run:
@ -449,7 +457,7 @@ jobs:
macos:
xcode: "12.0.0"
steps:
- checkout
- full-checkout
- attach_workspace:
at: .
- run:

7
.gitmodules поставляемый
Просмотреть файл

@ -1,3 +1,6 @@
[submodule "components/glean"]
path = components/glean
[submodule "components/external/glean"]
path = components/external/glean
url = https://github.com/mozilla/glean
[submodule "components/external/nimbus-sdk"]
path = components/external/nimbus-sdk
url = https://github.com/mozilla/nimbus-sdk

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

@ -4,6 +4,34 @@
[Full Changelog](https://github.com/mozilla/application-services/compare/v66.0.0...main)
## iOS
## What's Changed
- The bundled version of Glean has been updated to v33.1.2.
(as part of [#3701](https://github.com/mozilla/application-services/pull/3701))
## Android
## What's Changed
- This release comes with a nontrivial increase in the compiled code size of the
`org.mozilla.appservices:full-megazord` package, adding approximately 1M per platform
thanks to the addition of the Nimbus SDK component.
([#3701](https://github.com/mozilla/application-services/pull/3701))
- Several core gradle dependencies have been updated, including gradle itself (now v6.5)
and the android gradle plugin (now v4.0.1).
([#3701](https://github.com/mozilla/application-services/pull/3701))
## Nimbus SDK
### What's New
- The first version of the Nimbus Experimentation SDK is now available, via the
`org.mozilla.appservices:nimbus` package. More details can be found in the
[nimbus-sdk repo](https://github.com/mozilla/nimbus-sdk).
([#3701](https://github.com/mozilla/application-services/pull/3701))
## FxA Client
### What's Fixed

298
Cargo.lock сгенерированный
Просмотреть файл

@ -84,6 +84,50 @@ version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
[[package]]
name = "askama"
version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "70a6e7ebd44d0047fd48206c83c5cd3214acc7b9d87f001da170145c47ef7d12"
dependencies = [
"askama_derive",
"askama_escape",
"askama_shared",
]
[[package]]
name = "askama_derive"
version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e1d7169690c4f56343dcd821ab834972a22570a2662a19a84fd7775d5e1c3881"
dependencies = [
"askama_shared",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "askama_escape"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90c108c1a94380c89d2215d0ac54ce09796823cca0fd91b299cfff3b33e346fb"
[[package]]
name = "askama_shared"
version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62fc272363345c8cdc030e4c259d9d028237f8b057dc9bb327772a257bde6bb5"
dependencies = [
"askama_escape",
"nom",
"proc-macro2",
"quote",
"serde",
"syn",
"toml",
]
[[package]]
name = "assert-json-diff"
version = "1.1.0"
@ -205,6 +249,15 @@ version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
[[package]]
name = "block-buffer"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
dependencies = [
"generic-array",
]
[[package]]
name = "bstr"
version = "0.2.14"
@ -235,6 +288,17 @@ version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
[[package]]
name = "cargo_metadata"
version = "0.11.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3a567c24b86754d629addc2db89e340ac9398d07b5875efcff837e3878e17ec"
dependencies = [
"semver 0.10.0",
"serde",
"serde_json",
]
[[package]]
name = "caseless"
version = "0.2.1"
@ -421,6 +485,12 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"
[[package]]
name = "cpuid-bool"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634"
[[package]]
name = "crc32fast"
version = "1.2.1"
@ -605,6 +675,15 @@ version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
[[package]]
name = "digest"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
dependencies = [
"generic-array",
]
[[package]]
name = "dirs"
version = "1.0.5"
@ -838,7 +917,7 @@ dependencies = [
"num-traits",
"rand 0.6.5",
"rustc_version",
"semver",
"semver 0.9.0",
"serde",
]
@ -1071,6 +1150,16 @@ dependencies = [
"viaduct",
]
[[package]]
name = "generic-array"
version = "0.14.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817"
dependencies = [
"typenum",
"version_check",
]
[[package]]
name = "getrandom"
version = "0.1.15"
@ -1101,9 +1190,7 @@ checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce"
[[package]]
name = "glean-core"
version = "32.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9add31f49d7b8085c58d2f3ea926ea999f166bd2901bf7a317480ecadba6c99b"
version = "33.1.2"
dependencies = [
"bincode",
"chrono",
@ -1119,9 +1206,7 @@ dependencies = [
[[package]]
name = "glean-ffi"
version = "32.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5288a0df737d9648c92ed449f6b97593ba4d58aaf979eaa4a137b5a1c14e2168"
version = "33.1.2"
dependencies = [
"android_logger",
"env_logger",
@ -1296,6 +1381,12 @@ dependencies = [
"tokio-tls",
]
[[package]]
name = "id-arena"
version = "2.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005"
[[package]]
name = "idna"
version = "0.2.0"
@ -1360,6 +1451,29 @@ version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
[[package]]
name = "jexl-eval"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c208de9bf204836fe5894bb756cd850075ba3acf3f327d04b656fb84046e1a4"
dependencies = [
"anyhow",
"jexl-parser",
"serde",
"serde_json",
"thiserror",
]
[[package]]
name = "jexl-parser"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95e7c453f4c7dde64c914aa5ddd1183fc61dd446112d2b80a7f62390b9f0487c"
dependencies = [
"lalrpop-util",
"regex",
]
[[package]]
name = "js-sys"
version = "0.3.45"
@ -1391,6 +1505,15 @@ dependencies = [
"winapi-build",
]
[[package]]
name = "lalrpop-util"
version = "0.19.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6771161eff561647fad8bb7e745e002c304864fb8f436b52b30acda51fca4408"
dependencies = [
"regex",
]
[[package]]
name = "lazy_static"
version = "1.4.0"
@ -1530,6 +1653,7 @@ dependencies = [
"fxaclient_ffi",
"lazy_static",
"logins_ffi",
"nimbus-sdk",
"places-ffi",
"push-ffi",
"rc_log_ffi",
@ -1718,6 +1842,28 @@ dependencies = [
"winapi 0.3.9",
]
[[package]]
name = "nimbus-sdk"
version = "0.4.0"
dependencies = [
"anyhow",
"hex",
"jexl-eval",
"log 0.4.11",
"once_cell",
"rkv",
"serde",
"serde_derive",
"serde_json",
"sha2",
"thiserror",
"uniffi",
"uniffi_build",
"url",
"uuid",
"viaduct",
]
[[package]]
name = "nix"
version = "0.18.0"
@ -1730,6 +1876,16 @@ dependencies = [
"libc",
]
[[package]]
name = "nom"
version = "5.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
dependencies = [
"memchr",
"version_check",
]
[[package]]
name = "nss"
version = "0.1.0"
@ -1836,6 +1992,12 @@ version = "11.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a170cebd8021a008ea92e4db85a72f80b35df514ec664b296fdcbb654eac0b2c"
[[package]]
name = "opaque-debug"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
[[package]]
name = "openssl"
version = "0.10.30"
@ -1908,6 +2070,31 @@ dependencies = [
"winapi 0.3.9",
]
[[package]]
name = "paste"
version = "0.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880"
dependencies = [
"paste-impl",
"proc-macro-hack",
]
[[package]]
name = "paste"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba7ae1a2180ed02ddfdb5ab70c70d596a26dd642e097bb6fe78b1bde8588ed97"
[[package]]
name = "paste-impl"
version = "0.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6"
dependencies = [
"proc-macro-hack",
]
[[package]]
name = "percent-encoding"
version = "2.1.0"
@ -2601,18 +2788,21 @@ dependencies = [
[[package]]
name = "rkv"
version = "0.10.4"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "30a3dbc1f4971372545ed4175f23ef206c81e5874cd574d153646e7ee78f6793"
checksum = "e97d1b6321740ce36d77d67d22ff84ac8a996cf69dbd0727b8bcae52f1c98aaa"
dependencies = [
"arrayref",
"bincode",
"bitflags 1.2.1",
"byteorder",
"failure",
"id-arena",
"lazy_static",
"lmdb-rkv",
"log 0.4.11",
"ordered-float",
"paste 0.1.18",
"serde",
"serde_derive",
"url",
@ -2659,7 +2849,7 @@ version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
dependencies = [
"semver",
"semver 0.9.0",
]
[[package]]
@ -2725,6 +2915,16 @@ dependencies = [
"semver-parser",
]
[[package]]
name = "semver"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "394cec28fa623e00903caf7ba4fa6fb9a0e260280bb8cdbbba029611108a0190"
dependencies = [
"semver-parser",
"serde",
]
[[package]]
name = "semver-parser"
version = "0.7.0"
@ -2793,6 +2993,19 @@ dependencies = [
"url",
]
[[package]]
name = "sha2"
version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e7aab86fe2149bad8c507606bdb3f4ef5e7b2380eb92350f56122cca72a42a8"
dependencies = [
"block-buffer",
"cfg-if 1.0.0",
"cpuid-bool",
"digest",
"opaque-debug",
]
[[package]]
name = "slab"
version = "0.4.2"
@ -3182,18 +3395,18 @@ dependencies = [
[[package]]
name = "thiserror"
version = "1.0.21"
version = "1.0.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "318234ffa22e0920fe9a40d7b8369b5f649d490980cf7aadcf1eb91594869b42"
checksum = "0e9ae34b84616eedaaf1e9dd6026dbe00dcafa92aa0c8077cb69df1fcfe5e53e"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.21"
version = "1.0.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cae2447b6282786c3493999f40a9be2a6ad20cb8bd268b0a0dbf5a065535c0ab"
checksum = "9ba20f23e85b10754cd195504aebf6a27e2e6cbe28c17778a0c930724628dd56"
dependencies = [
"proc-macro2",
"quote",
@ -3330,6 +3543,12 @@ version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
[[package]]
name = "typenum"
version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
[[package]]
name = "types"
version = "0.1.0"
@ -3391,6 +3610,47 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
[[package]]
name = "uniffi"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4bec682ed64f9e7d63038df2c1482d078bde432acf10418573a1fd7414cf7e40"
dependencies = [
"anyhow",
"bytes",
"cargo_metadata",
"ffi-support 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static",
"log 0.4.11",
"paste 1.0.2",
]
[[package]]
name = "uniffi_bindgen"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d666448591e47695c05de35d1a8f3314971143b08d0ea8e95cc0983ea33da29b"
dependencies = [
"anyhow",
"askama",
"cargo_metadata",
"clap",
"heck",
"serde",
"toml",
"weedle",
]
[[package]]
name = "uniffi_build"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42c9c966bd14ab3871f6308acb83818232b08679767555404293119335680f5f"
dependencies = [
"anyhow",
"uniffi_bindgen",
]
[[package]]
name = "url"
version = "2.1.1"
@ -3410,6 +3670,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9fde2f6a4bea1d6e007c4ad38c6839fa71cbb63b6dbf5b595aa38dc9b1093c11"
dependencies = [
"rand 0.7.3",
"serde",
]
[[package]]
@ -3614,6 +3875,15 @@ dependencies = [
"webext-storage",
]
[[package]]
name = "weedle"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a7d4f9feb723a800d8f7b74edc9fa44ff35cb0b2ec64886714362f423427f37"
dependencies = [
"nom",
]
[[package]]
name = "which"
version = "3.1.1"

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

@ -45,6 +45,13 @@ members = [
"testing/separated/*/",
]
# Don't include git submodules in our workspace, since those packages haven't
# been written with that in mind. They might work, but they might not.
exclude = [
"components/external/glean/",
"components/external/nimbus-sdk/",
]
# The `default-members` are the things that are built/tested when you run `cargo
# build`, `cargo test` (or most of the cargo commands not provided by a
# third-party `cargo-foo` binary) from a workspace root *without* doing one of:
@ -110,3 +117,8 @@ default-members = [
opt-level = "s"
debug = true
lto = "thin"
# We import some git submodules which in turn may depend on appservices crates.
# We always want to use the local version of our own crates in that case.
[patch."https://github.com/mozilla/application-services"]
viaduct = { path = "components/viaduct" }

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

@ -11,8 +11,11 @@ the details of which are reproduced below.
* [MIT License: atty](#mit-license-atty)
* [MIT License: bincode](#mit-license-bincode)
* [MIT License: bytes](#mit-license-bytes)
* [MIT License: cargo_metadata](#mit-license-cargo_metadata)
* [MIT License: caseless](#mit-license-caseless)
* [MIT License: clap](#mit-license-clap)
* [MIT License: dashmap](#mit-license-dashmap)
* [MIT License: generic-array](#mit-license-generic-array)
* [MIT License: h2](#mit-license-h2)
* [MIT License: http-body](#mit-license-http-body)
* [MIT License: hyper](#mit-license-hyper)
@ -22,16 +25,19 @@ the details of which are reproduced below.
* [MIT License: mime_guess](#mit-license-mime_guess)
* [MIT License: miniz_oxide](#mit-license-miniz_oxide)
* [MIT License: mio](#mit-license-mio)
* [MIT License: nom](#mit-license-nom)
* [MIT License: openssl-sys](#mit-license-openssl-sys)
* [MIT License: ordered-float](#mit-license-ordered-float)
* [MIT License: oslog](#mit-license-oslog)
* [MIT License: schannel](#mit-license-schannel)
* [MIT License: slab](#mit-license-slab)
* [MIT License: synstructure](#mit-license-synstructure)
* [MIT License: textwrap](#mit-license-textwrap)
* [MIT License: tokio, tokio-tls, tokio-util, tracing, tracing-core, tracing-futures](#mit-license-tokio-tokio-tls-tokio-util-tracing-tracing-core-tracing-futures)
* [MIT License: tower-service](#mit-license-tower-service)
* [MIT License: try-lock](#mit-license-try-lock)
* [MIT License: want](#mit-license-want)
* [MIT License: weedle](#mit-license-weedle)
* [MIT License: winapi](#mit-license-winapi)
* [MIT License: winapi-util](#mit-license-winapi-util)
* [MIT License: winreg](#mit-license-winreg)
@ -49,9 +55,12 @@ The following text applies to code linked from these dependencies:
[NSPR](https://hg.mozilla.org/projects/nspr),
[NSS](https://hg.mozilla.org/projects/nss),
[ece](https://github.com/mozilla/rust-ece),
[glean-core](https://github.com/mozilla/glean),
[glean-ffi](https://github.com/mozilla/glean),
[hawk](https://github.com/taskcluster/rust-hawk)
[hawk](https://github.com/taskcluster/rust-hawk),
[jexl-eval](https://github.com/mozilla/jexl-rs),
[jexl-parser](https://github.com/mozilla/jexl-rs),
[uniffi](https://github.com/mozilla/uniffi-rs),
[uniffi_bindgen](https://github.com/mozilla/uniffi-rs),
[uniffi_build](https://github.com/mozilla/uniffi-rs)
```
Mozilla Public License Version 2.0
@ -438,9 +447,14 @@ The following text applies to code linked from these dependencies:
[android_log-sys](https://github.com/nercury/android_log-sys-rs),
[android_logger](https://github.com/Nercury/android_logger-rs),
[anyhow](https://github.com/dtolnay/anyhow),
[askama](https://github.com/djc/askama),
[askama_derive](https://github.com/djc/askama),
[askama_escape](https://github.com/djc/askama),
[askama_shared](https://github.com/djc/askama),
[autocfg](https://github.com/cuviper/autocfg),
[base64](https://github.com/marshallpierce/rust-base64),
[bitflags](https://github.com/bitflags/bitflags),
[block-buffer](https://github.com/RustCrypto/utils),
[cc](https://github.com/alexcrichton/cc-rs),
[cfg-if](https://github.com/alexcrichton/cfg-if),
[chrono](https://github.com/chronotope/chrono),
@ -448,7 +462,9 @@ The following text applies to code linked from these dependencies:
[const-random](https://github.com/tkaitchuck/constrandom),
[core-foundation-sys](https://github.com/servo/core-foundation-rs),
[core-foundation](https://github.com/servo/core-foundation-rs),
[cpuid-bool](https://github.com/RustCrypto/utils),
[crc32fast](https://github.com/srijs/rust-crc32fast),
[digest](https://github.com/RustCrypto/traits),
[dogear](https://github.com/mozilla/dogear),
[dtoa](https://github.com/dtolnay/dtoa),
[either](https://github.com/bluss/either),
@ -472,12 +488,14 @@ The following text applies to code linked from these dependencies:
[getrandom](https://github.com/rust-random/getrandom),
[hashbrown](https://github.com/rust-lang/hashbrown),
[hashlink](https://github.com/kyren/hashlink),
[heck](https://github.com/withoutboats/heck),
[hex](https://github.com/KokaKiwi/rust-hex),
[http](https://github.com/hyperium/http),
[httparse](https://github.com/seanmonstar/httparse),
[httpdate](https://github.com/pyfisch/httpdate),
[humantime](https://github.com/tailhook/humantime),
[hyper-tls](https://github.com/hyperium/hyper-tls),
[id-arena](https://github.com/fitzgen/id-arena),
[idna](https://github.com/servo/rust-url/),
[indexmap](https://github.com/bluss/indexmap),
[iovec](https://github.com/carllerche/iovec),
@ -485,6 +503,7 @@ The following text applies to code linked from these dependencies:
[itertools](https://github.com/bluss/rust-itertools),
[itoa](https://github.com/dtolnay/itoa),
[jna](https://github.com/java-native-access/jna),
[lalrpop-util](https://github.com/lalrpop/lalrpop),
[lazy_static](https://github.com/rust-lang-nursery/lazy-static.rs),
[libc](https://github.com/rust-lang/libc),
[lmdb-rkv-sys](https://github.com/mozilla/lmdb-rs.git),
@ -498,9 +517,12 @@ The following text applies to code linked from these dependencies:
[num-traits](https://github.com/rust-num/num-traits),
[num_cpus](https://github.com/seanmonstar/num_cpus),
[once_cell](https://github.com/matklad/once_cell),
[opaque-debug](https://github.com/RustCrypto/utils),
[openssl-probe](https://github.com/alexcrichton/openssl-probe),
[openssl-src](https://github.com/alexcrichton/openssl-src-rs),
[openssl](https://github.com/sfackler/rust-openssl),
[paste-impl](https://github.com/dtolnay/paste),
[paste](https://github.com/dtolnay/paste),
[percent-encoding](https://github.com/servo/rust-url/),
[pin-project-internal](https://github.com/taiki-e/pin-project),
[pin-project-lite](https://github.com/taiki-e/pin-project-lite),
@ -525,10 +547,13 @@ The following text applies to code linked from these dependencies:
[ryu](https://github.com/dtolnay/ryu),
[security-framework-sys](https://github.com/kornelski/rust-security-framework),
[security-framework](https://github.com/kornelski/rust-security-framework),
[semver-parser](https://github.com/steveklabnik/semver-parser),
[semver](https://github.com/steveklabnik/semver),
[serde](https://github.com/serde-rs/serde),
[serde_derive](https://github.com/serde-rs/serde),
[serde_json](https://github.com/serde-rs/json),
[serde_urlencoded](https://github.com/nox/serde_urlencoded),
[sha2](https://github.com/RustCrypto/hashes),
[smallbitvec](https://github.com/servo/smallbitvec),
[smallvec](https://github.com/servo/rust-smallvec),
[socket2](https://github.com/alexcrichton/socket2-rs),
@ -540,9 +565,13 @@ The following text applies to code linked from these dependencies:
[thread_local](https://github.com/Amanieu/thread_local-rs),
[time](https://github.com/time-rs/time),
[tinyvec](https://github.com/Lokathor/tinyvec),
[toml](https://github.com/alexcrichton/toml-rs),
[typenum](https://github.com/paholg/typenum),
[unicase](https://github.com/seanmonstar/unicase),
[unicode-bidi](https://github.com/servo/unicode-bidi),
[unicode-normalization](https://github.com/unicode-rs/unicode-normalization),
[unicode-segmentation](https://github.com/unicode-rs/unicode-segmentation),
[unicode-width](https://github.com/unicode-rs/unicode-width),
[unicode-xid](https://github.com/unicode-rs/unicode-xid),
[url](https://github.com/servo/rust-url),
[uuid](https://github.com/uuid-rs/uuid),
@ -910,6 +939,38 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
```
-------------
## MIT License: cargo_metadata
The following text applies to code linked from these dependencies:
[cargo_metadata](https://github.com/oli-obk/cargo_metadata)
```
Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the
Software without restriction, including without
limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software
is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice
shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
```
-------------
## MIT License: caseless
@ -941,6 +1002,36 @@ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
```
-------------
## MIT License: clap
The following text applies to code linked from these dependencies:
[clap](https://github.com/clap-rs/clap)
```
The MIT License (MIT)
Copyright (c) 2015-2016 Kevin B. Knapp
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
-------------
## MIT License: dashmap
@ -971,6 +1062,35 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
-------------
## MIT License: generic-array
The following text applies to code linked from these dependencies:
[generic-array](https://github.com/fizyk20/generic-array.git)
```
The MIT License (MIT)
Copyright (c) 2015 Bartłomiej Kamiński
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
-------------
## MIT License: h2
@ -1250,6 +1370,35 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
```
-------------
## MIT License: nom
The following text applies to code linked from these dependencies:
[nom](https://github.com/Geal/nom)
```
Copyright (c) 2014-2019 Geoffroy Couprie
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
```
-------------
## MIT License: openssl-sys
@ -1414,6 +1563,36 @@ The above copyright notice and this permission notice shall be included in all c
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
```
-------------
## MIT License: textwrap
The following text applies to code linked from these dependencies:
[textwrap](https://github.com/mgeisler/textwrap)
```
MIT License
Copyright (c) 2016 Martin Geisler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
-------------
## MIT License: tokio, tokio-tls, tokio-util, tracing, tracing-core, tracing-futures
@ -1546,6 +1725,29 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
```
-------------
## MIT License: weedle
The following text applies to code linked from these dependencies:
[weedle](https://github.com/rustwasm/weedle)
```
Copyright 2018-Present Sharad Chand
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
```
-------------
## MIT License: winapi

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

@ -3,8 +3,8 @@
buildscript {
ext.kotlin_version = '1.3.71'
ext.jna_version = '5.6.0'
ext.android_gradle_plugin_version = '3.6.0'
ext.android_components_version = '56.0.0'
ext.android_gradle_plugin_version = '4.0.1'
ext.android_components_version = '63.0.0'
ext.build = [
ndkVersion: "21.3.6528147", // Keep it in sync in TC Dockerfile.
@ -252,7 +252,11 @@ ext.cargoExecWithSQLCipher = { spec, toolchain ->
detekt {
toolVersion = "1.7.4"
input = files("${projectDir}/components", "${projectDir}/gradle-plugin", "buildSrc")
input = files(
fileTree(dir: "${projectDir}/components", excludes: ["external"]),
"${projectDir}/gradle-plugin",
"buildSrc"
)
buildUponDefaultConfig = true
config = files("${projectDir}/.detekt.yml")
failFast = false

1
components/external/glean поставляемый Submodule

@ -0,0 +1 @@
Subproject commit 379286eeb577adc99f889e9918aec7c6bd4872ab

1
components/external/nimbus-sdk поставляемый Submodule

@ -0,0 +1 @@
Subproject commit de1aea07533eae596b1dabd23be0b9dabb4ea2dc

@ -1 +0,0 @@
Subproject commit 9c55b4ccd355ecebb01e04421f5aa73b04512de2

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

@ -0,0 +1,53 @@
# The Nimbus SDK, megazorded with Application Services
This is a re-packaging of the [Nimbus SDK](https://github.com/mozilla/nimbus-sdk/) for Android,
compiled in a way that works nicely with the application-services [megazord](../../docs/design/megazords.md).
The Nimbus SDK builds its own standalone `org.mozilla.experiments:nimbus` package, which includes both
the Nimbus Kotlin bindings and the compiled Rust code. However, that package currently isn't published
anywhere, and it's difficult for other Rust components to integrate with Rust code compiled into a
standalone shared library.
Instead, we recommend consumers depend on the `org.mozilla.appservices:nimbus` package, which
provides the same Nimbus Kotlin bindings, but configured to load the underlying Rust code from
the application-serivces `:full-megazord` package. This lets us compile the Rust code for Nimbus
together with the Rust code for Glean and for application-services, and have them interoperate
directly at the Rust level.
Consumers will also need to add the following snippet to ensure that Nimbus can find the
correct shared library:
```
System.setProperty(
"uniffi.component.nimbus.libraryOverride",
System.getProperty("mozilla.appservices.megazord.library", "megazord")
)
```
(The Nimbus SDK wrapped in android-components handles this for you automatically.
To update Nimbus:
1. Select the release version to which to update, `$version`.
2. Update the submodule to that version (replace `$version` below with the correct version, e.g. `0.3.0`):
```
cd components/external/nimbus-sdk
git fetch origin
git checkout v$version
```
3. Update `Cargo.lock` to reflect any upstream changes:
```
cargo update
```
4. Commit the changes:
```
git add components/external/nimbus-sdk
git add Cargo.lock
git commit
```
5. Run `./gradlew nimbus:test` to ensure that things still work correctly.
If this returns an error, you may need to update `./build.gradle` to track
any build changes made in the upstream Nimbus repository.

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

@ -0,0 +1,149 @@
// =============================================
// We're doing something a bit weird here, so
// READ THIS CAREFULLY before editing this file.
// =============================================
//
// This is a lightly-modified version of the `build.gradle` file from Nimbus,
// which you can find at `../external/nimbus-sdk/android/build.gradle`.
//
// The aim here is to pre-package the Nimbus Kotlin code and publish it under
// `org.mozilla.appservices:nimbus` rather than `org.mozilla.experiments:nimbus`,
// and to make it depend on `org.mozilla.appservices:full-megazord` for the
// compiled Rust code.
//
// We expect consumers that want to use Nimbus and AppServices together, will
// use our re-packaged version rather than standalone Nimbus SDK.
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
ndkVersion rootProject.ext.build.ndkVersion
compileSdkVersion rootProject.ext.build.compileSdkVersion
defaultConfig {
minSdkVersion rootProject.ext.build['minSdkVersion']
targetSdkVersion rootProject.ext.build['targetSdkVersion']
buildConfigField("String", "LIBRARY_VERSION", "\"${rootProject.ext.library.version}\"")
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
consumerProguardFiles "$rootDir/proguard-rules-consumer-jna.pro"
}
}
// We don't have any source files of our own, we're re-packaging the ones
// from the Nimbus repo (which is included as a submodule in our repo).
sourceSets {
main.java.srcDirs += "../external/nimbus-sdk/android/src/main/java"
test.java.srcDirs += "../external/nimbus-sdk/android/src/test"
test.resources.srcDirs += "$buildDir/rustJniLibs/desktop"
test.resources.srcDirs += "${project(':full-megazord').buildDir}/rustJniLibs/desktop"
}
// This is required to support new AndroidX support libraries.
// See mozilla-mobile/android-components#842
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
jvmTarget = 1.8
}
}
testOptions {
unitTests.all {
testLogging {
showStandardStreams = true
}
maxHeapSize = "1024m"
}
unitTests {
includeAndroidResources = true
}
}
}
configurations {
// There's an interaction between Gradle's resolution of dependencies with different types
// (@jar, @aar) for `implementation` and `testImplementation` and with Android Studio's built-in
// JUnit test runner. The runtime classpath in the built-in JUnit test runner gets the
// dependency from the `implementation`, which is type @aar, and therefore the JNA dependency
// doesn't provide the JNI dispatch libraries in the correct Java resource directories. I think
// what's happening is that @aar type in `implementation` resolves to the @jar type in
// `testImplementation`, and that it wins the dependency resolution battle.
//
// A workaround is to add a new configuration which depends on the @jar type and to reference
// the underlying JAR file directly in `testImplementation`. This JAR file doesn't resolve to
// the @aar type in `implementation`. This works when invoked via `gradle`, but also sets the
// correct runtime classpath when invoked with Android Studio's built-in JUnit test runner.
// Success!
jnaForTest
}
dependencies {
jnaForTest "net.java.dev.jna:jna:$jna_version@jar"
implementation "net.java.dev.jna:jna:$jna_version@aar"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
// Unlike standard Nimbus which builds a standalone package, this version depends
// on `:full-megazord` for the underlying native library. The full-megazord needs
// to be configured to include the corresponding Nimbus FFI functions.
implementation project(":native-support")
api project(":full-megazord")
// For reasons unknown, resolving the jnaForTest configuration directly
// trips a nasty issue with the Android-Gradle plugin 3.2.1, like `Cannot
// change attributes of configuration ':PROJECT:kapt' after it has been
// resolved`. I think that the configuration is being made a
// super-configuration of the testImplementation and then the `.files` is
// causing it to be resolved. Cloning first dissociates the configuration,
// avoiding other configurations from being resolved. Tricky!
testImplementation files(configurations.jnaForTest.copyRecursive().files)
testImplementation 'junit:junit:4.12'
}
// We also do the binding generation here:
android.libraryVariants.all { variant ->
def t = tasks.register("generate${variant.name.capitalize()}UniffiBindings", Exec) {
workingDir "${project.projectDir}"
// Runs the bindings generation, note that you must have uniffi-bindgen installed and in your PATH environment variable
commandLine 'uniffi-bindgen', 'generate', '../external/nimbus-sdk/nimbus/src/nimbus.idl', '--language', 'kotlin', '--out-dir', "${buildDir}/generated/source/uniffi/${variant.name}/java"
}
variant.javaCompileProvider.get().dependsOn(t)
def sourceSet = variant.sourceSets.find { it.name == variant.name }
sourceSet.java.srcDir new File(buildDir, "generated/source/uniffi/${variant.name}/java")
}
evaluationDependsOn(":full-megazord")
afterEvaluate {
// The `cargoBuild` task isn't available until after evaluation.
android.libraryVariants.all { variant ->
def productFlavor = ""
variant.productFlavors.each {
productFlavor += "${it.name.capitalize()}"
}
def buildType = "${variant.buildType.name.capitalize()}"
tasks["merge${productFlavor}${buildType}JniLibFolders"].dependsOn(project(':full-megazord').tasks["cargoBuild"])
// For unit tests.
tasks["process${productFlavor}${buildType}UnitTestJavaRes"].dependsOn(project(':full-megazord').tasks["cargoBuild"])
}
}
apply from: "$rootDir/publish.gradle"
ext.configurePublish()

7
components/nimbus/proguard-rules.pro поставляемый Normal file
Просмотреть файл

@ -0,0 +1,7 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html

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

@ -0,0 +1,2 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.mozilla.experiments.nimbus" />

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

@ -1,7 +1,7 @@
<!-- AUTOGENERATED BY glean_parser. DO NOT EDIT. -->
# Metrics
This document enumerates the metrics collected by this project.
This document enumerates the metrics collected by this project using the [Glean SDK](https://mozilla.github.io/glean/book/index.html).
This project may depend on other projects which also collect metrics.
This means you might have to go searching through the dependency tree to get a full picture of everything collected by this project.

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

@ -1,7 +1,7 @@
<!-- AUTOGENERATED BY glean_parser. DO NOT EDIT. -->
# Metrics
This document enumerates the metrics collected by this project.
This document enumerates the metrics collected by this project using the [Glean SDK](https://mozilla.github.io/glean/book/index.html).
This project may depend on other projects which also collect metrics.
This means you might have to go searching through the dependency tree to get a full picture of everything collected by this project.

Двоичные данные
gradle/wrapper/gradle-wrapper.jar поставляемый

Двоичный файл не отображается.

2
gradle/wrapper/gradle-wrapper.properties поставляемый
Просмотреть файл

@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

51
gradlew поставляемый
Просмотреть файл

@ -1,5 +1,21 @@
#!/usr/bin/env sh
#
# Copyright 2015 the original author or authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
##############################################################################
##
## Gradle start up script for UN*X
@ -28,7 +44,7 @@ APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
@ -109,8 +125,8 @@ if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
# For Cygwin or MSYS, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
@ -138,19 +154,19 @@ if $cygwin ; then
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
i=`expr $i + 1`
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
0) set -- ;;
1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
@ -159,14 +175,9 @@ save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=$(save "$@")
APP_ARGS=`save "$@"`
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
cd "$(dirname "$0")"
fi
exec "$JAVACMD" "$@"

21
gradlew.bat поставляемый
Просмотреть файл

@ -1,3 +1,19 @@
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@ -13,8 +29,11 @@ if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome

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

@ -14,6 +14,7 @@ logins_ffi = { path = "../../components/logins/ffi" }
places-ffi = { path = "../../components/places/ffi" }
push-ffi = { path = "../../components/push/ffi" }
rc_log_ffi = { path = "../../components/rc_log" }
viaduct = { path = "../../components/viaduct", default_features = false }
viaduct = { path = "../../components/viaduct" }
sync_manager_ffi = { path = "../../components/sync_manager/ffi" }
nimbus-sdk = { path = "../../components/external/nimbus-sdk/nimbus" }
lazy_static = "1.4"

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

@ -9,11 +9,20 @@ the details of which are reproduced below.
* [MIT License: aho-corasick, byteorder, memchr](#mit-license-aho-corasick-byteorder-memchr)
* [MIT License: bincode](#mit-license-bincode)
* [MIT License: bytes](#mit-license-bytes)
* [MIT License: cargo_metadata](#mit-license-cargo_metadata)
* [MIT License: caseless](#mit-license-caseless)
* [MIT License: clap](#mit-license-clap)
* [MIT License: generic-array](#mit-license-generic-array)
* [MIT License: libsqlite3-sys, rusqlite](#mit-license-libsqlite3-sys-rusqlite)
* [MIT License: matches](#mit-license-matches)
* [MIT License: nom](#mit-license-nom)
* [MIT License: ordered-float](#mit-license-ordered-float)
* [MIT License: synstructure](#mit-license-synstructure)
* [MIT License: textwrap](#mit-license-textwrap)
* [MIT License: weedle](#mit-license-weedle)
* [CC0-1.0 License: base16](#cc0-10-license-base16)
* [ISC License: ring](#isc-license-ring)
* [BSD-2-Clause License: arrayref](#bsd-2-clause-license-arrayref)
* [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)
@ -24,7 +33,12 @@ The following text applies to code linked from these dependencies:
[NSPR](https://hg.mozilla.org/projects/nspr),
[NSS](https://hg.mozilla.org/projects/nss),
[ece](https://github.com/mozilla/rust-ece),
[hawk](https://github.com/taskcluster/rust-hawk)
[hawk](https://github.com/taskcluster/rust-hawk),
[jexl-eval](https://github.com/mozilla/jexl-rs),
[jexl-parser](https://github.com/mozilla/jexl-rs),
[uniffi](https://github.com/mozilla/uniffi-rs),
[uniffi_bindgen](https://github.com/mozilla/uniffi-rs),
[uniffi_build](https://github.com/mozilla/uniffi-rs)
```
Mozilla Public License Version 2.0
@ -408,30 +422,50 @@ Exhibit B - "Incompatible With Secondary Licenses" Notice
The following text applies to code linked from these dependencies:
[ahash](https://github.com/tkaitchuck/ahash),
[anyhow](https://github.com/dtolnay/anyhow),
[askama](https://github.com/djc/askama),
[askama_derive](https://github.com/djc/askama),
[askama_escape](https://github.com/djc/askama),
[askama_shared](https://github.com/djc/askama),
[autocfg](https://github.com/cuviper/autocfg),
[base64](https://github.com/marshallpierce/rust-base64),
[bitflags](https://github.com/bitflags/bitflags),
[block-buffer](https://github.com/RustCrypto/utils),
[cc](https://github.com/alexcrichton/cc-rs),
[cfg-if](https://github.com/alexcrichton/cfg-if),
[cpuid-bool](https://github.com/RustCrypto/utils),
[digest](https://github.com/RustCrypto/traits),
[dogear](https://github.com/mozilla/dogear),
[either](https://github.com/bluss/either),
[failure](https://github.com/rust-lang-nursery/failure),
[failure_derive](https://github.com/rust-lang-nursery/failure),
[fallible-iterator](https://github.com/sfackler/rust-fallible-iterator),
[fallible-streaming-iterator](https://github.com/sfackler/fallible-streaming-iterator),
[ffi-support](https://github.com/mozilla/application-services),
[getrandom](https://github.com/rust-random/getrandom),
[hashbrown](https://github.com/rust-lang/hashbrown),
[hashlink](https://github.com/kyren/hashlink),
[heck](https://github.com/withoutboats/heck),
[hex](https://github.com/KokaKiwi/rust-hex),
[id-arena](https://github.com/fitzgen/id-arena),
[idna](https://github.com/servo/rust-url/),
[itertools](https://github.com/bluss/rust-itertools),
[itoa](https://github.com/dtolnay/itoa),
[jna](https://github.com/java-native-access/jna),
[lalrpop-util](https://github.com/lalrpop/lalrpop),
[lazy_static](https://github.com/rust-lang-nursery/lazy-static.rs),
[libc](https://github.com/rust-lang/libc),
[lmdb-rkv-sys](https://github.com/mozilla/lmdb-rs.git),
[lmdb-rkv](https://github.com/mozilla/lmdb-rs.git),
[log](https://github.com/rust-lang/log),
[num-traits](https://github.com/rust-num/num-traits),
[once_cell](https://github.com/matklad/once_cell),
[opaque-debug](https://github.com/RustCrypto/utils),
[paste-impl](https://github.com/dtolnay/paste),
[paste](https://github.com/dtolnay/paste),
[percent-encoding](https://github.com/servo/rust-url/),
[pkg-config](https://github.com/rust-lang/pkg-config-rs),
[ppv-lite86](https://github.com/cryptocorrosion/cryptocorrosion),
[proc-macro-hack](https://github.com/dtolnay/proc-macro-hack),
[proc-macro2](https://github.com/alexcrichton/proc-macro2),
[prost-derive](https://github.com/danburkert/prost),
[prost](https://github.com/danburkert/prost),
@ -441,10 +475,14 @@ The following text applies to code linked from these dependencies:
[rand_core](https://github.com/rust-random/rand),
[regex-syntax](https://github.com/rust-lang/regex),
[regex](https://github.com/rust-lang/regex),
[rkv](https://github.com/mozilla/rkv),
[ryu](https://github.com/dtolnay/ryu),
[semver-parser](https://github.com/steveklabnik/semver-parser),
[semver](https://github.com/steveklabnik/semver),
[serde](https://github.com/serde-rs/serde),
[serde_derive](https://github.com/serde-rs/serde),
[serde_json](https://github.com/serde-rs/json),
[sha2](https://github.com/RustCrypto/hashes),
[smallbitvec](https://github.com/servo/smallbitvec),
[smallvec](https://github.com/servo/rust-smallvec),
[syn](https://github.com/dtolnay/syn),
@ -452,10 +490,16 @@ The following text applies to code linked from these dependencies:
[thiserror](https://github.com/dtolnay/thiserror),
[thread_local](https://github.com/Amanieu/thread_local-rs),
[tinyvec](https://github.com/Lokathor/tinyvec),
[toml](https://github.com/alexcrichton/toml-rs),
[typenum](https://github.com/paholg/typenum),
[unicode-bidi](https://github.com/servo/unicode-bidi),
[unicode-normalization](https://github.com/unicode-rs/unicode-normalization),
[unicode-segmentation](https://github.com/unicode-rs/unicode-segmentation),
[unicode-width](https://github.com/unicode-rs/unicode-width),
[unicode-xid](https://github.com/unicode-rs/unicode-xid),
[url](https://github.com/servo/rust-url)
[url](https://github.com/servo/rust-url),
[uuid](https://github.com/uuid-rs/uuid),
[version_check](https://github.com/SergioBenitez/version_check)
```
Apache License
@ -756,6 +800,38 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
```
-------------
## MIT License: cargo_metadata
The following text applies to code linked from these dependencies:
[cargo_metadata](https://github.com/oli-obk/cargo_metadata)
```
Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the
Software without restriction, including without
limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software
is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice
shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
```
-------------
## MIT License: caseless
@ -787,6 +863,65 @@ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
```
-------------
## MIT License: clap
The following text applies to code linked from these dependencies:
[clap](https://github.com/clap-rs/clap)
```
The MIT License (MIT)
Copyright (c) 2015-2016 Kevin B. Knapp
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
-------------
## MIT License: generic-array
The following text applies to code linked from these dependencies:
[generic-array](https://github.com/fizyk20/generic-array.git)
```
The MIT License (MIT)
Copyright (c) 2015 Bartłomiej Kamiński
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
-------------
## MIT License: libsqlite3-sys, rusqlite
@ -850,6 +985,138 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
```
-------------
## MIT License: nom
The following text applies to code linked from these dependencies:
[nom](https://github.com/Geal/nom)
```
Copyright (c) 2014-2019 Geoffroy Couprie
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
```
-------------
## MIT License: ordered-float
The following text applies to code linked from these dependencies:
[ordered-float](https://github.com/reem/rust-ordered-float)
```
Copyright (c) 2015 Jonathan Reem
Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the
Software without restriction, including without
limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software
is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice
shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
```
-------------
## MIT License: synstructure
The following text applies to code linked from these dependencies:
[synstructure](https://github.com/mystor/synstructure)
```
Copyright 2016 Nika Layzell
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
```
-------------
## MIT License: textwrap
The following text applies to code linked from these dependencies:
[textwrap](https://github.com/mgeisler/textwrap)
```
MIT License
Copyright (c) 2016 Martin Geisler
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
-------------
## MIT License: weedle
The following text applies to code linked from these dependencies:
[weedle](https://github.com/rustwasm/weedle)
```
Copyright 2018-Present Sharad Chand
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
```
-------------
## CC0-1.0 License: base16
@ -1003,6 +1270,41 @@ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
```
-------------
## BSD-2-Clause License: arrayref
The following text applies to code linked from these dependencies:
[arrayref](https://github.com/droundy/arrayref)
```
Copyright (c) 2015 David Roundy <roundyd@physics.oregonstate.edu>
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the
distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
```
-------------
## BSD-3-Clause License: protobuf

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

@ -20,6 +20,26 @@ the details of which are reproduced below.
<name>Mozilla Public License 2.0: hawk</name>
<url>https://github.com/taskcluster/rust-hawk/blob/master/LICENSE</url>
</license>
<license>
<name>Mozilla Public License 2.0: jexl-eval</name>
<url>https://github.com/mozilla/jexl-rs/blob/main/LICENSE</url>
</license>
<license>
<name>Mozilla Public License 2.0: jexl-parser</name>
<url>https://github.com/mozilla/jexl-rs/blob/main/LICENSE</url>
</license>
<license>
<name>Mozilla Public License 2.0: uniffi</name>
<url>https://github.com/mozilla/uniffi-rs/blob/main/LICENSE</url>
</license>
<license>
<name>Mozilla Public License 2.0: uniffi_bindgen</name>
<url>https://github.com/mozilla/uniffi-rs/blob/main/LICENSE</url>
</license>
<license>
<name>Mozilla Public License 2.0: uniffi_build</name>
<url>https://github.com/mozilla/uniffi-rs/blob/main/LICENSE</url>
</license>
<license>
<name>Apache License 2.0: ahash</name>
<url>https://github.com/tkaitchuck/ahash/blob/master/LICENSE-APACHE</url>
@ -28,6 +48,26 @@ the details of which are reproduced below.
<name>Apache License 2.0: anyhow</name>
<url>https://github.com/dtolnay/anyhow/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: askama</name>
<url>https://github.com/djc/askama/blob/main/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: askama_derive</name>
<url>https://github.com/djc/askama/blob/main/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: askama_escape</name>
<url>https://github.com/djc/askama/blob/main/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: askama_shared</name>
<url>https://github.com/djc/askama/blob/main/LICENSE-APACHE</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: base64</name>
<url>https://github.com/marshallpierce/rust-base64/blob/master/LICENSE-APACHE</url>
@ -36,6 +76,10 @@ the details of which are reproduced below.
<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: block-buffer</name>
<url>https://github.com/RustCrypto/utils/blob/master/block-buffer/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: cc</name>
<url>https://github.com/alexcrichton/cc-rs/blob/master/LICENSE-APACHE</url>
@ -44,6 +88,18 @@ the details of which are reproduced below.
<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: cfg-if</name>
<url>https://github.com/alexcrichton/cfg-if/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: cpuid-bool</name>
<url>https://github.com/RustCrypto/utils/blob/master/cpuid-bool/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: digest</name>
<url>https://github.com/RustCrypto/traits/blob/master/digest/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: dogear</name>
<url>https://github.com/mozilla/dogear/blob/master/LICENSE</url>
@ -52,6 +108,14 @@ the details of which are reproduced below.
<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: 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/rust-lang-nursery/failure/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>
@ -76,10 +140,18 @@ the details of which are reproduced below.
<name>Apache License 2.0: hashlink</name>
<url>https://github.com/kyren/hashlink/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: id-arena</name>
<url>https://github.com/fitzgen/id-arena/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>
@ -96,6 +168,10 @@ the details of which are reproduced below.
<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: lalrpop-util</name>
<url>https://github.com/lalrpop/lalrpop/blob/master/LICENSE-APACHE</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>
@ -104,14 +180,42 @@ the details of which are reproduced below.
<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: lmdb-rkv</name>
<url>https://github.com/mozilla/lmdb-rs/blob/master/LICENSE</url>
</license>
<license>
<name>Apache License 2.0: lmdb-rkv-sys</name>
<url>https://github.com/mozilla/lmdb-rs/blob/master/LICENSE</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: num-traits</name>
<url>https://github.com/rust-num/num-traits/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: opaque-debug</name>
<url>https://github.com/RustCrypto/utils/blob/master/opaque-debug/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: paste</name>
<url>https://github.com/dtolnay/paste/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: paste</name>
<url>https://github.com/dtolnay/paste/blob/master/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: paste-impl</name>
<url>https://github.com/dtolnay/paste/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>
@ -124,6 +228,10 @@ the details of which are reproduced below.
<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-macro-hack</name>
<url>https://github.com/dtolnay/proc-macro-hack/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>
@ -160,10 +268,22 @@ the details of which are reproduced below.
<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: rkv</name>
<url>https://github.com/mozilla/rkv/blob/master/LICENSE</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: 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>
@ -176,6 +296,10 @@ the details of which are reproduced below.
<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: sha2</name>
<url>https://github.com/RustCrypto/hashes/blob/master/sha2/LICENSE-APACHE</url>
</license>
<license>
<name>Apache License 2.0: smallbitvec</name>
<url>https://github.com/servo/smallbitvec/blob/master/LICENSE-APACHE</url>
@ -204,6 +328,14 @@ the details of which are reproduced below.
<name>Apache License 2.0: tinyvec</name>
<url>https://github.com/Lokathor/tinyvec/blob/main/LICENSE-ZLIB.md</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: typenum</name>
<url>https://github.com/paholg/typenum/blob/master/LICENSE</url>
</license>
<license>
<name>Apache License 2.0: unicode-bidi</name>
<url>https://github.com/servo/unicode-bidi/blob/master/LICENSE-APACHE</url>
@ -212,6 +344,14 @@ the details of which are reproduced below.
<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>
@ -220,6 +360,14 @@ the details of which are reproduced below.
<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: uuid</name>
<url>https://github.com/uuid-rs/uuid/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>MIT License: aho-corasick</name>
<url>https://github.com/BurntSushi/aho-corasick/blob/master/LICENSE-MIT</url>
@ -240,10 +388,22 @@ the details of which are reproduced below.
<name>MIT License: bytes</name>
<url>https://github.com/tokio-rs/bytes/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: cargo_metadata</name>
<url>https://github.com/oli-obk/cargo_metadata/blob/main/LICENSE-MIT</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: generic-array</name>
<url>https://github.com/fizyk20/generic-array/blob/master/LICENSE</url>
</license>
<license>
<name>MIT License: libsqlite3-sys</name>
<url>https://github.com/rusqlite/rusqlite/blob/master/LICENSE</url>
@ -256,6 +416,26 @@ the details of which are reproduced below.
<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: ordered-float</name>
<url>https://github.com/reem/rust-ordered-float/blob/master/LICENSE-MIT</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: weedle</name>
<url>https://github.com/rustwasm/weedle/blob/master/LICENSE.md</url>
</license>
<license>
<name>CC0-1.0 License: base16</name>
<url>https://github.com/thomcc/rust-base16/blob/master/LICENSE-CC0</url>
@ -264,6 +444,10 @@ the details of which are reproduced below.
<name>ISC License: ring</name>
<url>https://github.com/briansmith/ring/blob/master/LICENSE</url>
</license>
<license>
<name>BSD-2-Clause License: arrayref</name>
<url>https://github.com/droundy/arrayref/blob/master/LICENSE</url>
</license>
<license>
<name>BSD-3-Clause License: protobuf</name>
<url>https://github.com/protocolbuffers/protobuf/blob/master/LICENSE</url>

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

@ -10,6 +10,7 @@ use std::os::raw::c_char;
pub use fxaclient_ffi;
pub use logins_ffi;
pub use nimbus;
pub use places_ffi;
pub use push_ffi;
pub use rc_log_ffi;

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

@ -41,8 +41,6 @@ The following text applies to code linked from these dependencies:
[NSPR](https://hg.mozilla.org/projects/nspr),
[NSS](https://hg.mozilla.org/projects/nss),
[ece](https://github.com/mozilla/rust-ece),
[glean-core](https://github.com/mozilla/glean),
[glean-ffi](https://github.com/mozilla/glean),
[hawk](https://github.com/taskcluster/rust-hawk)
```
@ -466,6 +464,7 @@ The following text applies to code linked from these dependencies:
[httpdate](https://github.com/pyfisch/httpdate),
[humantime](https://github.com/tailhook/humantime),
[hyper-tls](https://github.com/hyperium/hyper-tls),
[id-arena](https://github.com/fitzgen/id-arena),
[idna](https://github.com/servo/rust-url/),
[indexmap](https://github.com/bluss/indexmap),
[iovec](https://github.com/carllerche/iovec),
@ -484,6 +483,8 @@ The following text applies to code linked from these dependencies:
[num-traits](https://github.com/rust-num/num-traits),
[num_cpus](https://github.com/seanmonstar/num_cpus),
[once_cell](https://github.com/matklad/once_cell),
[paste-impl](https://github.com/dtolnay/paste),
[paste](https://github.com/dtolnay/paste),
[percent-encoding](https://github.com/servo/rust-url/),
[pin-project-internal](https://github.com/taiki-e/pin-project),
[pin-project-lite](https://github.com/taiki-e/pin-project-lite),

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

@ -281,7 +281,7 @@
BF1A8787250649EA00FED88E /* Utils */,
);
name = Glean;
path = "../../components/glean/glean-core/ios/Glean";
path = "../../components/external/glean/glean-core/ios/Glean";
sourceTree = "<group>";
};
BF1A8783250649B600FED88E /* Config */ = {
@ -370,7 +370,7 @@
BF1A87D625064B4C00FED88E /* Metrics.swift */,
);
name = Generated;
path = ../../../../../megazords/ios/MozillaAppServices/Generated;
path = ../../../../../../megazords/ios/MozillaAppServices/Generated;
sourceTree = "<group>";
};
C852EEB2220A285B00A6E79A /* config */ = {
@ -702,8 +702,8 @@
inputFileListPaths = (
);
inputPaths = (
"$(SRCROOT)/../../components/glean/glean-core/metrics.yaml",
"$(SRCROOT)/../../components/glean/glean-core/pings.yaml",
"$(SRCROOT)/../../components/external/glean/glean-core/metrics.yaml",
"$(SRCROOT)/../../components/external/glean/glean-core/pings.yaml",
);
name = "Generate Glean metrics";
outputFileListPaths = (
@ -713,7 +713,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "bash $PWD/../../components/glean/glean-core/ios/sdk_generator.sh --allow-reserved\n";
shellScript = "bash $PWD/../../components/external/glean/glean-core/ios/sdk_generator.sh --allow-reserved\n";
};
CEEA12EF20AA1D630018998A /* Build Rust libraries */ = {
isa = PBXShellScriptBuildPhase;

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

@ -10,29 +10,30 @@ The iOS 'megazord' builds all the components into a single library. This is buil
### Glean component
At the moment the MozillaAppServices iOS framework bundles [Glean].
It depends on the releases `glean-ffi` crate from [crates.io] and the corresponding iOS source code.
Glean is bundled as a [git submodule] in `components/glean` and the Xcode project references those files.
Glean is bundled as a [git submodule] in `components/external/glean` and the Xcode project references those files.
To update Glean:
1. Update the version of `glean-ffi` in `megazord/ios/rust/Cargo.toml`
2. Ensure `cargo` updates the versions by running `cargo fetch`
3. Update the submodule to the same version (replace `$version` below with the correct version, e.g. `32.3.0`):
1. Select the release version to which to update, `$version`.
2. Update the submodule to that version (replace `$version` below with the correct version, e.g. `32.3.0`):
```
cd components/glean
git fetch origin
git checkout v$version
```
```
cd components/external/glean
git fetch origin
git checkout v$version
```
3. Update `Cargo.lock` to reflect any upstream changes:
```
cargo update
```
4. Commit the changes:
```
git add components/glean
git add megazord/ios/rust/Cargo.toml
git add components/external/glean
git add Cargo.lock
git commit
```
5. Run an Xcode build to ensure everything compiles.
[Glean]: https://github.com/mozilla/glean
[crates.io]: https://crates.io/crates/glean-ffi
[git submodule]: https://git-scm.com/docs/git-submodule

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

@ -15,4 +15,4 @@ places-ffi = { path = "../../../components/places/ffi" }
rc_log_ffi = { path = "../../../components/rc_log" }
viaduct = { path = "../../../components/viaduct" }
viaduct-reqwest = { path = "../../../components/support/viaduct-reqwest" }
glean-ffi = { version = "32.3.0" }
glean-ffi = { path = "../../../components/external/glean/glean-core/ffi" }

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

@ -34,3 +34,9 @@ export PATH=$HOME/.cargo/bin:$PATH
rustup toolchain install "$RUST_STABLE_VERSION"
rustup default "$RUST_STABLE_VERSION"
rustup target add x86_64-linux-android i686-linux-android armv7-linux-androideabi aarch64-linux-android
cargo install --version 0.5.0 uniffi_bindgen
# This is not the right place for it, but also it's as good a place as any.
# Make sure git submodules are initialized.
git submodule update --init

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

@ -579,6 +579,82 @@ PACKAGE_METADATA_FIXUPS = {
"fixup": "https://raw.githubusercontent.com/mozilla/lmdb-rs/master/LICENSE",
}
},
"uniffi_bindgen": {
"license_url": {
"check": None,
"fixup": "https://github.com/mozilla/uniffi-rs/blob/main/LICENSE",
},
"license_file": {
"check": None,
"fixup": "https://raw.githubusercontent.com/mozilla/uniffi-rs/main/LICENSE",
}
},
"uniffi_build": {
"license_url": {
"check": None,
"fixup": "https://github.com/mozilla/uniffi-rs/blob/main/LICENSE",
},
"license_file": {
"check": None,
"fixup": "https://raw.githubusercontent.com/mozilla/uniffi-rs/main/LICENSE",
}
},
"uniffi": {
"license_url": {
"check": None,
"fixup": "https://github.com/mozilla/uniffi-rs/blob/main/LICENSE",
},
"license_file": {
"check": None,
"fixup": "https://raw.githubusercontent.com/mozilla/uniffi-rs/main/LICENSE",
}
},
"jexl-eval": {
"license_url": {
"check": None,
"fixup": "https://github.com/mozilla/jexl-rs/blob/main/LICENSE",
},
"license_file": {
"check": None,
"fixup": "https://raw.githubusercontent.com/mozilla/jexl-rs/main/LICENSE",
}
},
"jexl-parser": {
"license_url": {
"check": None,
"fixup": "https://github.com/mozilla/jexl-rs/blob/main/LICENSE",
},
"license_file": {
"check": None,
"fixup": "https://raw.githubusercontent.com/mozilla/jexl-rs/main/LICENSE",
}
},
"lalrpop-util": {
"license": {
"check": "Apache-2.0/MIT",
},
"license_url": {
"check": None,
"fixup": "https://github.com/lalrpop/lalrpop/blob/master/LICENSE-APACHE",
},
"license_file": {
"check": None,
"fixup": "https://raw.githubusercontent.com/lalrpop/lalrpop/master/LICENSE-APACHE",
}
},
"humansize": {
"license": {
"check": "MIT/Apache-2.0",
},
"license_url": {
"check": None,
"fixup": "https://github.com/LeopoldArkham/humansize/blob/master/LICENSE-APACHE",
},
"license_file": {
"check": None,
"fixup": "https://raw.githubusercontent.com/LeopoldArkham/humansize/master/LICENSE-APACHE",
}
},
}
# Sets of common licence file names, by license type.