summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Martinsons <frederic.martinsons@gmail.com>2023-03-31 07:45:26 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-04-01 11:36:26 +0100
commitad460bb6aac01271eb36efed3ad3e8f4c0407e8d (patch)
tree7be4b727e06a5b6f1be846d61eee29c92a9a6408
parent11180fd52801680ab4ea85865368f3d9e837f2e0 (diff)
downloadpoky-ad460bb6aac01271eb36efed3ad3e8f4c0407e8d.tar.gz
meta-selftest: provide a recipe for zvariant
This recipe is for showing a "real world" example of a crate that depends on some git repositories. Usually, this kind of crate is built within a global workspace (here it is the zbus project) and so doesn't need a Cargo.lock on its own. For the sake of the demonstration, I had to tweak things a little to be able to compile zvariant in standalone (no relative path in dependency, no symlink to LICENSE provide a Cargo.lock) The use case where the crate had some git repository in dependency is very common for "private" crate that are not aimed to be published on crates.io. When the project grow bigger, it is common to have a bin and multiple lib developped in parallel, and these libs are surely on a git repostitory. A test case have been also added to check for: - the previous patch about git subpath parameter and devtool - the correctness of overriding dependencies (first patch of the series) (From OE-Core rev: 409e045f96f69877de6f36ed14c5c19a9cb74eaf) Signed-off-by: Frederic Martinsons <frederic.martinsons@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta-selftest/recipes-extended/zvariant/zvariant-crates.inc258
-rw-r--r--meta-selftest/recipes-extended/zvariant/zvariant-git-crates.inc14
-rw-r--r--meta-selftest/recipes-extended/zvariant/zvariant/0001-Tweak-zvariant-crate-config.patch1292
-rw-r--r--meta-selftest/recipes-extended/zvariant/zvariant_3.12.0.bb27
-rw-r--r--meta/lib/oeqa/selftest/cases/devtool.py93
5 files changed, 1684 insertions, 0 deletions
diff --git a/meta-selftest/recipes-extended/zvariant/zvariant-crates.inc b/meta-selftest/recipes-extended/zvariant/zvariant-crates.inc
new file mode 100644
index 0000000000..3a9759c4a5
--- /dev/null
+++ b/meta-selftest/recipes-extended/zvariant/zvariant-crates.inc
@@ -0,0 +1,258 @@
1# Autogenerated with 'bitbake -c update_crates zvariant'
2
3# from Cargo.lock
4SRC_URI += " \
5 crate://crates.io/anes/0.1.6;name=anes-0.1.6 \
6 crate://crates.io/anyhow/1.0.70;name=anyhow-1.0.70 \
7 crate://crates.io/arrayvec/0.7.2;name=arrayvec-0.7.2 \
8 crate://crates.io/atty/0.2.14;name=atty-0.2.14 \
9 crate://crates.io/autocfg/1.1.0;name=autocfg-1.1.0 \
10 crate://crates.io/bitflags/1.3.2;name=bitflags-1.3.2 \
11 crate://crates.io/bumpalo/3.12.0;name=bumpalo-3.12.0 \
12 crate://crates.io/byteorder/1.4.3;name=byteorder-1.4.3 \
13 crate://crates.io/cast/0.3.0;name=cast-0.3.0 \
14 crate://crates.io/cfg-if/1.0.0;name=cfg-if-1.0.0 \
15 crate://crates.io/chrono/0.4.24;name=chrono-0.4.24 \
16 crate://crates.io/ciborium/0.2.0;name=ciborium-0.2.0 \
17 crate://crates.io/ciborium-io/0.2.0;name=ciborium-io-0.2.0 \
18 crate://crates.io/ciborium-ll/0.2.0;name=ciborium-ll-0.2.0 \
19 crate://crates.io/clap/3.2.23;name=clap-3.2.23 \
20 crate://crates.io/clap_lex/0.2.4;name=clap_lex-0.2.4 \
21 crate://crates.io/criterion/0.4.0;name=criterion-0.4.0 \
22 crate://crates.io/criterion-plot/0.5.0;name=criterion-plot-0.5.0 \
23 crate://crates.io/crossbeam-channel/0.5.7;name=crossbeam-channel-0.5.7 \
24 crate://crates.io/crossbeam-deque/0.8.3;name=crossbeam-deque-0.8.3 \
25 crate://crates.io/crossbeam-epoch/0.9.14;name=crossbeam-epoch-0.9.14 \
26 crate://crates.io/crossbeam-utils/0.8.15;name=crossbeam-utils-0.8.15 \
27 crate://crates.io/either/1.8.1;name=either-1.8.1 \
28 crate://crates.io/enumflags2/0.7.5;name=enumflags2-0.7.5 \
29 crate://crates.io/enumflags2_derive/0.7.4;name=enumflags2_derive-0.7.4 \
30 crate://crates.io/form_urlencoded/1.1.0;name=form_urlencoded-1.1.0 \
31 crate://crates.io/futures-channel/0.3.27;name=futures-channel-0.3.27 \
32 crate://crates.io/futures-core/0.3.27;name=futures-core-0.3.27 \
33 crate://crates.io/futures-executor/0.3.27;name=futures-executor-0.3.27 \
34 crate://crates.io/futures-macro/0.3.27;name=futures-macro-0.3.27 \
35 crate://crates.io/futures-task/0.3.27;name=futures-task-0.3.27 \
36 crate://crates.io/futures-util/0.3.27;name=futures-util-0.3.27 \
37 crate://crates.io/getrandom/0.2.8;name=getrandom-0.2.8 \
38 crate://crates.io/half/1.8.2;name=half-1.8.2 \
39 crate://crates.io/hashbrown/0.12.3;name=hashbrown-0.12.3 \
40 crate://crates.io/heck/0.3.3;name=heck-0.3.3 \
41 crate://crates.io/hermit-abi/0.1.19;name=hermit-abi-0.1.19 \
42 crate://crates.io/hermit-abi/0.2.6;name=hermit-abi-0.2.6 \
43 crate://crates.io/idna/0.3.0;name=idna-0.3.0 \
44 crate://crates.io/indexmap/1.9.2;name=indexmap-1.9.2 \
45 crate://crates.io/itertools/0.9.0;name=itertools-0.9.0 \
46 crate://crates.io/itertools/0.10.5;name=itertools-0.10.5 \
47 crate://crates.io/itoa/1.0.6;name=itoa-1.0.6 \
48 crate://crates.io/js-sys/0.3.61;name=js-sys-0.3.61 \
49 crate://crates.io/lazy_static/1.4.0;name=lazy_static-1.4.0 \
50 crate://crates.io/libc/0.2.140;name=libc-0.2.140 \
51 crate://crates.io/log/0.4.17;name=log-0.4.17 \
52 crate://crates.io/memchr/2.5.0;name=memchr-2.5.0 \
53 crate://crates.io/memoffset/0.8.0;name=memoffset-0.8.0 \
54 crate://crates.io/num-integer/0.1.45;name=num-integer-0.1.45 \
55 crate://crates.io/num-traits/0.2.15;name=num-traits-0.2.15 \
56 crate://crates.io/num_cpus/1.15.0;name=num_cpus-1.15.0 \
57 crate://crates.io/once_cell/1.17.1;name=once_cell-1.17.1 \
58 crate://crates.io/oorandom/11.1.3;name=oorandom-11.1.3 \
59 crate://crates.io/os_str_bytes/6.5.0;name=os_str_bytes-6.5.0 \
60 crate://crates.io/percent-encoding/2.2.0;name=percent-encoding-2.2.0 \
61 crate://crates.io/pin-project-lite/0.2.9;name=pin-project-lite-0.2.9 \
62 crate://crates.io/pin-utils/0.1.0;name=pin-utils-0.1.0 \
63 crate://crates.io/pkg-config/0.3.26;name=pkg-config-0.3.26 \
64 crate://crates.io/plotters/0.3.4;name=plotters-0.3.4 \
65 crate://crates.io/plotters-backend/0.3.4;name=plotters-backend-0.3.4 \
66 crate://crates.io/plotters-svg/0.3.3;name=plotters-svg-0.3.3 \
67 crate://crates.io/ppv-lite86/0.2.17;name=ppv-lite86-0.2.17 \
68 crate://crates.io/proc-macro-crate/0.1.5;name=proc-macro-crate-0.1.5 \
69 crate://crates.io/proc-macro-crate/1.3.1;name=proc-macro-crate-1.3.1 \
70 crate://crates.io/proc-macro-error/1.0.4;name=proc-macro-error-1.0.4 \
71 crate://crates.io/proc-macro-error-attr/1.0.4;name=proc-macro-error-attr-1.0.4 \
72 crate://crates.io/proc-macro2/1.0.53;name=proc-macro2-1.0.53 \
73 crate://crates.io/quote/1.0.26;name=quote-1.0.26 \
74 crate://crates.io/rand/0.8.5;name=rand-0.8.5 \
75 crate://crates.io/rand_chacha/0.3.1;name=rand_chacha-0.3.1 \
76 crate://crates.io/rand_core/0.6.4;name=rand_core-0.6.4 \
77 crate://crates.io/rayon/1.7.0;name=rayon-1.7.0 \
78 crate://crates.io/rayon-core/1.11.0;name=rayon-core-1.11.0 \
79 crate://crates.io/regex/1.7.2;name=regex-1.7.2 \
80 crate://crates.io/regex-syntax/0.6.29;name=regex-syntax-0.6.29 \
81 crate://crates.io/ryu/1.0.13;name=ryu-1.0.13 \
82 crate://crates.io/same-file/1.0.6;name=same-file-1.0.6 \
83 crate://crates.io/scopeguard/1.1.0;name=scopeguard-1.1.0 \
84 crate://crates.io/serde/1.0.158;name=serde-1.0.158 \
85 crate://crates.io/serde_bytes/0.11.9;name=serde_bytes-0.11.9 \
86 crate://crates.io/serde_derive/1.0.158;name=serde_derive-1.0.158 \
87 crate://crates.io/serde_json/1.0.94;name=serde_json-1.0.94 \
88 crate://crates.io/serde_repr/0.1.12;name=serde_repr-0.1.12 \
89 crate://crates.io/slab/0.4.8;name=slab-0.4.8 \
90 crate://crates.io/static_assertions/1.1.0;name=static_assertions-1.1.0 \
91 crate://crates.io/strum/0.18.0;name=strum-0.18.0 \
92 crate://crates.io/strum_macros/0.18.0;name=strum_macros-0.18.0 \
93 crate://crates.io/syn/1.0.109;name=syn-1.0.109 \
94 crate://crates.io/syn/2.0.8;name=syn-2.0.8 \
95 crate://crates.io/system-deps/1.3.2;name=system-deps-1.3.2 \
96 crate://crates.io/textwrap/0.16.0;name=textwrap-0.16.0 \
97 crate://crates.io/thiserror/1.0.40;name=thiserror-1.0.40 \
98 crate://crates.io/thiserror-impl/1.0.40;name=thiserror-impl-1.0.40 \
99 crate://crates.io/time/0.3.20;name=time-0.3.20 \
100 crate://crates.io/time-core/0.1.0;name=time-core-0.1.0 \
101 crate://crates.io/time-macros/0.2.8;name=time-macros-0.2.8 \
102 crate://crates.io/tinytemplate/1.2.1;name=tinytemplate-1.2.1 \
103 crate://crates.io/tinyvec/1.6.0;name=tinyvec-1.6.0 \
104 crate://crates.io/tinyvec_macros/0.1.1;name=tinyvec_macros-0.1.1 \
105 crate://crates.io/toml/0.5.11;name=toml-0.5.11 \
106 crate://crates.io/toml_datetime/0.6.1;name=toml_datetime-0.6.1 \
107 crate://crates.io/toml_edit/0.19.8;name=toml_edit-0.19.8 \
108 crate://crates.io/unicode-bidi/0.3.13;name=unicode-bidi-0.3.13 \
109 crate://crates.io/unicode-ident/1.0.8;name=unicode-ident-1.0.8 \
110 crate://crates.io/unicode-normalization/0.1.22;name=unicode-normalization-0.1.22 \
111 crate://crates.io/unicode-segmentation/1.10.1;name=unicode-segmentation-1.10.1 \
112 crate://crates.io/url/2.3.1;name=url-2.3.1 \
113 crate://crates.io/uuid/1.3.0;name=uuid-1.3.0 \
114 crate://crates.io/version-compare/0.0.10;name=version-compare-0.0.10 \
115 crate://crates.io/version_check/0.9.4;name=version_check-0.9.4 \
116 crate://crates.io/walkdir/2.3.3;name=walkdir-2.3.3 \
117 crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1;name=wasi-0.11.0+wasi-snapshot-preview1 \
118 crate://crates.io/wasm-bindgen/0.2.84;name=wasm-bindgen-0.2.84 \
119 crate://crates.io/wasm-bindgen-backend/0.2.84;name=wasm-bindgen-backend-0.2.84 \
120 crate://crates.io/wasm-bindgen-macro/0.2.84;name=wasm-bindgen-macro-0.2.84 \
121 crate://crates.io/wasm-bindgen-macro-support/0.2.84;name=wasm-bindgen-macro-support-0.2.84 \
122 crate://crates.io/wasm-bindgen-shared/0.2.84;name=wasm-bindgen-shared-0.2.84 \
123 crate://crates.io/web-sys/0.3.61;name=web-sys-0.3.61 \
124 crate://crates.io/winapi/0.3.9;name=winapi-0.3.9 \
125 crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0;name=winapi-i686-pc-windows-gnu-0.4.0 \
126 crate://crates.io/winapi-util/0.1.5;name=winapi-util-0.1.5 \
127 crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0;name=winapi-x86_64-pc-windows-gnu-0.4.0 \
128 crate://crates.io/winnow/0.4.0;name=winnow-0.4.0 \
129 crate://crates.io/zvariant_derive/3.12.0;name=zvariant_derive-3.12.0 \
130 crate://crates.io/zvariant_utils/1.0.0;name=zvariant_utils-1.0.0 \
131"
132
133SRC_URI[anes-0.1.6.sha256sum] = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
134SRC_URI[anyhow-1.0.70.sha256sum] = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4"
135SRC_URI[arrayvec-0.7.2.sha256sum] = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
136SRC_URI[atty-0.2.14.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
137SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
138SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
139SRC_URI[bumpalo-3.12.0.sha256sum] = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
140SRC_URI[byteorder-1.4.3.sha256sum] = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
141SRC_URI[cast-0.3.0.sha256sum] = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
142SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
143SRC_URI[chrono-0.4.24.sha256sum] = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b"
144SRC_URI[ciborium-0.2.0.sha256sum] = "b0c137568cc60b904a7724001b35ce2630fd00d5d84805fbb608ab89509d788f"
145SRC_URI[ciborium-io-0.2.0.sha256sum] = "346de753af073cc87b52b2083a506b38ac176a44cfb05497b622e27be899b369"
146SRC_URI[ciborium-ll-0.2.0.sha256sum] = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b"
147SRC_URI[clap-3.2.23.sha256sum] = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5"
148SRC_URI[clap_lex-0.2.4.sha256sum] = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
149SRC_URI[criterion-0.4.0.sha256sum] = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb"
150SRC_URI[criterion-plot-0.5.0.sha256sum] = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
151SRC_URI[crossbeam-channel-0.5.7.sha256sum] = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c"
152SRC_URI[crossbeam-deque-0.8.3.sha256sum] = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
153SRC_URI[crossbeam-epoch-0.9.14.sha256sum] = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695"
154SRC_URI[crossbeam-utils-0.8.15.sha256sum] = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
155SRC_URI[either-1.8.1.sha256sum] = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
156SRC_URI[enumflags2-0.7.5.sha256sum] = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb"
157SRC_URI[enumflags2_derive-0.7.4.sha256sum] = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae"
158SRC_URI[form_urlencoded-1.1.0.sha256sum] = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
159SRC_URI[futures-channel-0.3.27.sha256sum] = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac"
160SRC_URI[futures-core-0.3.27.sha256sum] = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd"
161SRC_URI[futures-executor-0.3.27.sha256sum] = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83"
162SRC_URI[futures-macro-0.3.27.sha256sum] = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6"
163SRC_URI[futures-task-0.3.27.sha256sum] = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879"
164SRC_URI[futures-util-0.3.27.sha256sum] = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab"
165SRC_URI[getrandom-0.2.8.sha256sum] = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
166SRC_URI[half-1.8.2.sha256sum] = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
167SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
168SRC_URI[heck-0.3.3.sha256sum] = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
169SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
170SRC_URI[hermit-abi-0.2.6.sha256sum] = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
171SRC_URI[idna-0.3.0.sha256sum] = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
172SRC_URI[indexmap-1.9.2.sha256sum] = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
173SRC_URI[itertools-0.9.0.sha256sum] = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
174SRC_URI[itertools-0.10.5.sha256sum] = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
175SRC_URI[itoa-1.0.6.sha256sum] = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
176SRC_URI[js-sys-0.3.61.sha256sum] = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
177SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
178SRC_URI[libc-0.2.140.sha256sum] = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
179SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
180SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
181SRC_URI[memoffset-0.8.0.sha256sum] = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
182SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
183SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
184SRC_URI[num_cpus-1.15.0.sha256sum] = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
185SRC_URI[once_cell-1.17.1.sha256sum] = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
186SRC_URI[oorandom-11.1.3.sha256sum] = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
187SRC_URI[os_str_bytes-6.5.0.sha256sum] = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267"
188SRC_URI[percent-encoding-2.2.0.sha256sum] = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
189SRC_URI[pin-project-lite-0.2.9.sha256sum] = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
190SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
191SRC_URI[pkg-config-0.3.26.sha256sum] = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
192SRC_URI[plotters-0.3.4.sha256sum] = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97"
193SRC_URI[plotters-backend-0.3.4.sha256sum] = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142"
194SRC_URI[plotters-svg-0.3.3.sha256sum] = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f"
195SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
196SRC_URI[proc-macro-crate-0.1.5.sha256sum] = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
197SRC_URI[proc-macro-crate-1.3.1.sha256sum] = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
198SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
199SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
200SRC_URI[proc-macro2-1.0.53.sha256sum] = "ba466839c78239c09faf015484e5cc04860f88242cff4d03eb038f04b4699b73"
201SRC_URI[quote-1.0.26.sha256sum] = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
202SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
203SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
204SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
205SRC_URI[rayon-1.7.0.sha256sum] = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
206SRC_URI[rayon-core-1.11.0.sha256sum] = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
207SRC_URI[regex-1.7.2.sha256sum] = "cce168fea28d3e05f158bda4576cf0c844d5045bc2cc3620fa0292ed5bb5814c"
208SRC_URI[regex-syntax-0.6.29.sha256sum] = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
209SRC_URI[ryu-1.0.13.sha256sum] = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
210SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
211SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
212SRC_URI[serde-1.0.158.sha256sum] = "771d4d9c4163ee138805e12c710dd365e4f44be8be0503cb1bb9eb989425d9c9"
213SRC_URI[serde_bytes-0.11.9.sha256sum] = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294"
214SRC_URI[serde_derive-1.0.158.sha256sum] = "e801c1712f48475582b7696ac71e0ca34ebb30e09338425384269d9717c62cad"
215SRC_URI[serde_json-1.0.94.sha256sum] = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea"
216SRC_URI[serde_repr-0.1.12.sha256sum] = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab"
217SRC_URI[slab-0.4.8.sha256sum] = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
218SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
219SRC_URI[strum-0.18.0.sha256sum] = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b"
220SRC_URI[strum_macros-0.18.0.sha256sum] = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c"
221SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
222SRC_URI[syn-2.0.8.sha256sum] = "bcc02725fd69ab9f26eab07fad303e2497fad6fb9eba4f96c4d1687bdf704ad9"
223SRC_URI[system-deps-1.3.2.sha256sum] = "0f3ecc17269a19353b3558b313bba738b25d82993e30d62a18406a24aba4649b"
224SRC_URI[textwrap-0.16.0.sha256sum] = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
225SRC_URI[thiserror-1.0.40.sha256sum] = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
226SRC_URI[thiserror-impl-1.0.40.sha256sum] = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
227SRC_URI[time-0.3.20.sha256sum] = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890"
228SRC_URI[time-core-0.1.0.sha256sum] = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
229SRC_URI[time-macros-0.2.8.sha256sum] = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36"
230SRC_URI[tinytemplate-1.2.1.sha256sum] = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
231SRC_URI[tinyvec-1.6.0.sha256sum] = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
232SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
233SRC_URI[toml-0.5.11.sha256sum] = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
234SRC_URI[toml_datetime-0.6.1.sha256sum] = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622"
235SRC_URI[toml_edit-0.19.8.sha256sum] = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13"
236SRC_URI[unicode-bidi-0.3.13.sha256sum] = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
237SRC_URI[unicode-ident-1.0.8.sha256sum] = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
238SRC_URI[unicode-normalization-0.1.22.sha256sum] = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
239SRC_URI[unicode-segmentation-1.10.1.sha256sum] = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
240SRC_URI[url-2.3.1.sha256sum] = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
241SRC_URI[uuid-1.3.0.sha256sum] = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79"
242SRC_URI[version-compare-0.0.10.sha256sum] = "d63556a25bae6ea31b52e640d7c41d1ab27faba4ccb600013837a3d0b3994ca1"
243SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
244SRC_URI[walkdir-2.3.3.sha256sum] = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
245SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
246SRC_URI[wasm-bindgen-0.2.84.sha256sum] = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
247SRC_URI[wasm-bindgen-backend-0.2.84.sha256sum] = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
248SRC_URI[wasm-bindgen-macro-0.2.84.sha256sum] = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
249SRC_URI[wasm-bindgen-macro-support-0.2.84.sha256sum] = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
250SRC_URI[wasm-bindgen-shared-0.2.84.sha256sum] = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
251SRC_URI[web-sys-0.3.61.sha256sum] = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
252SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
253SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
254SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
255SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
256SRC_URI[winnow-0.4.0.sha256sum] = "deac0939bd6e4f24ab5919fbf751c97a8cfc8543bb083a305ed5c0c10bb241d1"
257SRC_URI[zvariant_derive-3.12.0.sha256sum] = "34c20260af4b28b3275d6676c7e2a6be0d4332e8e0aba4616d34007fd84e462a"
258SRC_URI[zvariant_utils-1.0.0.sha256sum] = "53b22993dbc4d128a17a3b6c92f1c63872dd67198537ee728d8b5d7c40640a8b"
diff --git a/meta-selftest/recipes-extended/zvariant/zvariant-git-crates.inc b/meta-selftest/recipes-extended/zvariant/zvariant-git-crates.inc
new file mode 100644
index 0000000000..f24cfe8e7c
--- /dev/null
+++ b/meta-selftest/recipes-extended/zvariant/zvariant-git-crates.inc
@@ -0,0 +1,14 @@
1SRC_URI += "\
2 git://github.com/gtk-rs/glib;protocol=https;nobranch=1;name=glib;destsuffix=glib;type=git-dependency \
3 git://github.com/gtk-rs/sys;protocol=https;nobranch=1;name=glib-sys;destsuffix=glib-sys;subpath=glib-sys;type=git-dependency \
4 git://github.com/gtk-rs/sys;protocol=https;nobranch=1;name=gobject-sys;destsuffix=gobject-sys;subpath=gobject-sys;type=git-dependency \
5"
6
7SRCREV_FORMAT .= "_glib"
8SRCREV_glib = "c9ee583cea07830c099cdcccd33eda9ef705ea93"
9
10SRCREV_FORMAT .= "_glib-sys"
11SRCREV_glib-sys = "5f35e26c65d24f8f018f643218de0f5807ba5f01"
12
13SRCREV_FORMAT .= "_gobject-sys"
14SRCREV_gobject-sys = "5f35e26c65d24f8f018f643218de0f5807ba5f01"
diff --git a/meta-selftest/recipes-extended/zvariant/zvariant/0001-Tweak-zvariant-crate-config.patch b/meta-selftest/recipes-extended/zvariant/zvariant/0001-Tweak-zvariant-crate-config.patch
new file mode 100644
index 0000000000..ac6c5117bb
--- /dev/null
+++ b/meta-selftest/recipes-extended/zvariant/zvariant/0001-Tweak-zvariant-crate-config.patch
@@ -0,0 +1,1292 @@
1From e85ce4136694899f0010d48f47c5e905c3a9d461 Mon Sep 17 00:00:00 2001
2From: Frederic Martinsons <frederic.martinsons@gmail.com>
3Date: Thu, 23 Mar 2023 07:12:37 +0100
4Subject: [PATCH] Tweak zvariant crate config
5
6This library crate is a part of zbus project, and is aimed to
7be published amongst the whole project.
8
9Nevertheless, this recipe is for showing example of real
10code which uses a local registry via git url inside yocto
11environment.
12
13I didn't find a real example of binary crate that uses git
14dependency but it seems to me a very common use case
15when we are working on multiple local crates that are not
16aimed to be published on public registry.
17
18Long story short, this patch add a modified Cargo.toml
19to use the zvariant_derive dependency from crates.io instead
20of zbus local one and a pre generated Cargo.lock in order
21to make cargo patch process inside cargo_common.bbclass work
22
23It also copied the LICENCE file from zbus project instead
24of symlink to it.
25
26Upstream-Status: Inappropriate
27Signed-off-by: Frederic Martinsons <frederic.martinsons@gmail.com>
28---
29 zvariant/Cargo.lock | 1198 +++++++++++++++++++++++++++++++++++++++++++
30 zvariant/Cargo.toml | 2 +-
31 zvariant/LICENSE | 24 +-
32 3 files changed, 1222 insertions(+), 2 deletions(-)
33 create mode 100644 zvariant/Cargo.lock
34 mode change 120000 => 100644 zvariant/LICENSE
35
36diff --git a/zvariant/Cargo.lock b/zvariant/Cargo.lock
37new file mode 100644
38index 00000000..02a83d42
39--- /dev/null
40+++ b/zvariant/Cargo.lock
41@@ -0,0 +1,1198 @@
42+# This file is automatically @generated by Cargo.
43+# It is not intended for manual editing.
44+version = 3
45+
46+[[package]]
47+name = "anes"
48+version = "0.1.6"
49+source = "registry+https://github.com/rust-lang/crates.io-index"
50+checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
51+
52+[[package]]
53+name = "anyhow"
54+version = "1.0.70"
55+source = "registry+https://github.com/rust-lang/crates.io-index"
56+checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4"
57+
58+[[package]]
59+name = "arrayvec"
60+version = "0.7.2"
61+source = "registry+https://github.com/rust-lang/crates.io-index"
62+checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
63+dependencies = [
64+ "serde",
65+]
66+
67+[[package]]
68+name = "atty"
69+version = "0.2.14"
70+source = "registry+https://github.com/rust-lang/crates.io-index"
71+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
72+dependencies = [
73+ "hermit-abi 0.1.19",
74+ "libc",
75+ "winapi",
76+]
77+
78+[[package]]
79+name = "autocfg"
80+version = "1.1.0"
81+source = "registry+https://github.com/rust-lang/crates.io-index"
82+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
83+
84+[[package]]
85+name = "bitflags"
86+version = "1.3.2"
87+source = "registry+https://github.com/rust-lang/crates.io-index"
88+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
89+
90+[[package]]
91+name = "bumpalo"
92+version = "3.12.0"
93+source = "registry+https://github.com/rust-lang/crates.io-index"
94+checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
95+
96+[[package]]
97+name = "byteorder"
98+version = "1.4.3"
99+source = "registry+https://github.com/rust-lang/crates.io-index"
100+checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
101+
102+[[package]]
103+name = "cast"
104+version = "0.3.0"
105+source = "registry+https://github.com/rust-lang/crates.io-index"
106+checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
107+
108+[[package]]
109+name = "cfg-if"
110+version = "1.0.0"
111+source = "registry+https://github.com/rust-lang/crates.io-index"
112+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
113+
114+[[package]]
115+name = "chrono"
116+version = "0.4.24"
117+source = "registry+https://github.com/rust-lang/crates.io-index"
118+checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b"
119+dependencies = [
120+ "num-integer",
121+ "num-traits",
122+ "serde",
123+]
124+
125+[[package]]
126+name = "ciborium"
127+version = "0.2.0"
128+source = "registry+https://github.com/rust-lang/crates.io-index"
129+checksum = "b0c137568cc60b904a7724001b35ce2630fd00d5d84805fbb608ab89509d788f"
130+dependencies = [
131+ "ciborium-io",
132+ "ciborium-ll",
133+ "serde",
134+]
135+
136+[[package]]
137+name = "ciborium-io"
138+version = "0.2.0"
139+source = "registry+https://github.com/rust-lang/crates.io-index"
140+checksum = "346de753af073cc87b52b2083a506b38ac176a44cfb05497b622e27be899b369"
141+
142+[[package]]
143+name = "ciborium-ll"
144+version = "0.2.0"
145+source = "registry+https://github.com/rust-lang/crates.io-index"
146+checksum = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b"
147+dependencies = [
148+ "ciborium-io",
149+ "half",
150+]
151+
152+[[package]]
153+name = "clap"
154+version = "3.2.23"
155+source = "registry+https://github.com/rust-lang/crates.io-index"
156+checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5"
157+dependencies = [
158+ "bitflags",
159+ "clap_lex",
160+ "indexmap",
161+ "textwrap",
162+]
163+
164+[[package]]
165+name = "clap_lex"
166+version = "0.2.4"
167+source = "registry+https://github.com/rust-lang/crates.io-index"
168+checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
169+dependencies = [
170+ "os_str_bytes",
171+]
172+
173+[[package]]
174+name = "criterion"
175+version = "0.4.0"
176+source = "registry+https://github.com/rust-lang/crates.io-index"
177+checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb"
178+dependencies = [
179+ "anes",
180+ "atty",
181+ "cast",
182+ "ciborium",
183+ "clap",
184+ "criterion-plot",
185+ "itertools 0.10.5",
186+ "lazy_static",
187+ "num-traits",
188+ "oorandom",
189+ "plotters",
190+ "rayon",
191+ "regex",
192+ "serde",
193+ "serde_derive",
194+ "serde_json",
195+ "tinytemplate",
196+ "walkdir",
197+]
198+
199+[[package]]
200+name = "criterion-plot"
201+version = "0.5.0"
202+source = "registry+https://github.com/rust-lang/crates.io-index"
203+checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
204+dependencies = [
205+ "cast",
206+ "itertools 0.10.5",
207+]
208+
209+[[package]]
210+name = "crossbeam-channel"
211+version = "0.5.7"
212+source = "registry+https://github.com/rust-lang/crates.io-index"
213+checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c"
214+dependencies = [
215+ "cfg-if",
216+ "crossbeam-utils",
217+]
218+
219+[[package]]
220+name = "crossbeam-deque"
221+version = "0.8.3"
222+source = "registry+https://github.com/rust-lang/crates.io-index"
223+checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
224+dependencies = [
225+ "cfg-if",
226+ "crossbeam-epoch",
227+ "crossbeam-utils",
228+]
229+
230+[[package]]
231+name = "crossbeam-epoch"
232+version = "0.9.14"
233+source = "registry+https://github.com/rust-lang/crates.io-index"
234+checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695"
235+dependencies = [
236+ "autocfg",
237+ "cfg-if",
238+ "crossbeam-utils",
239+ "memoffset",
240+ "scopeguard",
241+]
242+
243+[[package]]
244+name = "crossbeam-utils"
245+version = "0.8.15"
246+source = "registry+https://github.com/rust-lang/crates.io-index"
247+checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
248+dependencies = [
249+ "cfg-if",
250+]
251+
252+[[package]]
253+name = "either"
254+version = "1.8.1"
255+source = "registry+https://github.com/rust-lang/crates.io-index"
256+checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
257+
258+[[package]]
259+name = "enumflags2"
260+version = "0.7.5"
261+source = "registry+https://github.com/rust-lang/crates.io-index"
262+checksum = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb"
263+dependencies = [
264+ "enumflags2_derive",
265+ "serde",
266+]
267+
268+[[package]]
269+name = "enumflags2_derive"
270+version = "0.7.4"
271+source = "registry+https://github.com/rust-lang/crates.io-index"
272+checksum = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae"
273+dependencies = [
274+ "proc-macro2",
275+ "quote",
276+ "syn 1.0.109",
277+]
278+
279+[[package]]
280+name = "form_urlencoded"
281+version = "1.1.0"
282+source = "registry+https://github.com/rust-lang/crates.io-index"
283+checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
284+dependencies = [
285+ "percent-encoding",
286+]
287+
288+[[package]]
289+name = "futures-channel"
290+version = "0.3.27"
291+source = "registry+https://github.com/rust-lang/crates.io-index"
292+checksum = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac"
293+dependencies = [
294+ "futures-core",
295+]
296+
297+[[package]]
298+name = "futures-core"
299+version = "0.3.27"
300+source = "registry+https://github.com/rust-lang/crates.io-index"
301+checksum = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd"
302+
303+[[package]]
304+name = "futures-executor"
305+version = "0.3.27"
306+source = "registry+https://github.com/rust-lang/crates.io-index"
307+checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83"
308+dependencies = [
309+ "futures-core",
310+ "futures-task",
311+ "futures-util",
312+]
313+
314+[[package]]
315+name = "futures-macro"
316+version = "0.3.27"
317+source = "registry+https://github.com/rust-lang/crates.io-index"
318+checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6"
319+dependencies = [
320+ "proc-macro2",
321+ "quote",
322+ "syn 1.0.109",
323+]
324+
325+[[package]]
326+name = "futures-task"
327+version = "0.3.27"
328+source = "registry+https://github.com/rust-lang/crates.io-index"
329+checksum = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879"
330+
331+[[package]]
332+name = "futures-util"
333+version = "0.3.27"
334+source = "registry+https://github.com/rust-lang/crates.io-index"
335+checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab"
336+dependencies = [
337+ "futures-core",
338+ "futures-macro",
339+ "futures-task",
340+ "pin-project-lite",
341+ "pin-utils",
342+ "slab",
343+]
344+
345+[[package]]
346+name = "getrandom"
347+version = "0.2.8"
348+source = "registry+https://github.com/rust-lang/crates.io-index"
349+checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
350+dependencies = [
351+ "cfg-if",
352+ "libc",
353+ "wasi",
354+]
355+
356+[[package]]
357+name = "glib"
358+version = "0.10.0"
359+source = "git+https://github.com/gtk-rs/glib?rev=c9ee583cea0#c9ee583cea07830c099cdcccd33eda9ef705ea93"
360+dependencies = [
361+ "bitflags",
362+ "futures-channel",
363+ "futures-core",
364+ "futures-executor",
365+ "futures-task",
366+ "futures-util",
367+ "glib-macros",
368+ "glib-sys",
369+ "gobject-sys",
370+ "libc",
371+ "once_cell",
372+]
373+
374+[[package]]
375+name = "glib-macros"
376+version = "0.10.0"
377+source = "git+https://github.com/gtk-rs/glib?rev=c9ee583cea0#c9ee583cea07830c099cdcccd33eda9ef705ea93"
378+dependencies = [
379+ "anyhow",
380+ "heck",
381+ "itertools 0.9.0",
382+ "proc-macro-crate 0.1.5",
383+ "proc-macro-error",
384+ "proc-macro2",
385+ "quote",
386+ "syn 1.0.109",
387+]
388+
389+[[package]]
390+name = "glib-sys"
391+version = "0.10.0"
392+source = "git+https://github.com/gtk-rs/sys#5f35e26c65d24f8f018f643218de0f5807ba5f01"
393+dependencies = [
394+ "libc",
395+ "system-deps",
396+]
397+
398+[[package]]
399+name = "gobject-sys"
400+version = "0.10.0"
401+source = "git+https://github.com/gtk-rs/sys#5f35e26c65d24f8f018f643218de0f5807ba5f01"
402+dependencies = [
403+ "glib-sys",
404+ "libc",
405+ "system-deps",
406+]
407+
408+[[package]]
409+name = "half"
410+version = "1.8.2"
411+source = "registry+https://github.com/rust-lang/crates.io-index"
412+checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
413+
414+[[package]]
415+name = "hashbrown"
416+version = "0.12.3"
417+source = "registry+https://github.com/rust-lang/crates.io-index"
418+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
419+
420+[[package]]
421+name = "heck"
422+version = "0.3.3"
423+source = "registry+https://github.com/rust-lang/crates.io-index"
424+checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
425+dependencies = [
426+ "unicode-segmentation",
427+]
428+
429+[[package]]
430+name = "hermit-abi"
431+version = "0.1.19"
432+source = "registry+https://github.com/rust-lang/crates.io-index"
433+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
434+dependencies = [
435+ "libc",
436+]
437+
438+[[package]]
439+name = "hermit-abi"
440+version = "0.2.6"
441+source = "registry+https://github.com/rust-lang/crates.io-index"
442+checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
443+dependencies = [
444+ "libc",
445+]
446+
447+[[package]]
448+name = "idna"
449+version = "0.3.0"
450+source = "registry+https://github.com/rust-lang/crates.io-index"
451+checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
452+dependencies = [
453+ "unicode-bidi",
454+ "unicode-normalization",
455+]
456+
457+[[package]]
458+name = "indexmap"
459+version = "1.9.2"
460+source = "registry+https://github.com/rust-lang/crates.io-index"
461+checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
462+dependencies = [
463+ "autocfg",
464+ "hashbrown",
465+]
466+
467+[[package]]
468+name = "itertools"
469+version = "0.9.0"
470+source = "registry+https://github.com/rust-lang/crates.io-index"
471+checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
472+dependencies = [
473+ "either",
474+]
475+
476+[[package]]
477+name = "itertools"
478+version = "0.10.5"
479+source = "registry+https://github.com/rust-lang/crates.io-index"
480+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
481+dependencies = [
482+ "either",
483+]
484+
485+[[package]]
486+name = "itoa"
487+version = "1.0.6"
488+source = "registry+https://github.com/rust-lang/crates.io-index"
489+checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
490+
491+[[package]]
492+name = "js-sys"
493+version = "0.3.61"
494+source = "registry+https://github.com/rust-lang/crates.io-index"
495+checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
496+dependencies = [
497+ "wasm-bindgen",
498+]
499+
500+[[package]]
501+name = "lazy_static"
502+version = "1.4.0"
503+source = "registry+https://github.com/rust-lang/crates.io-index"
504+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
505+
506+[[package]]
507+name = "libc"
508+version = "0.2.140"
509+source = "registry+https://github.com/rust-lang/crates.io-index"
510+checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
511+
512+[[package]]
513+name = "log"
514+version = "0.4.17"
515+source = "registry+https://github.com/rust-lang/crates.io-index"
516+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
517+dependencies = [
518+ "cfg-if",
519+]
520+
521+[[package]]
522+name = "memchr"
523+version = "2.5.0"
524+source = "registry+https://github.com/rust-lang/crates.io-index"
525+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
526+
527+[[package]]
528+name = "memoffset"
529+version = "0.8.0"
530+source = "registry+https://github.com/rust-lang/crates.io-index"
531+checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
532+dependencies = [
533+ "autocfg",
534+]
535+
536+[[package]]
537+name = "num-integer"
538+version = "0.1.45"
539+source = "registry+https://github.com/rust-lang/crates.io-index"
540+checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
541+dependencies = [
542+ "autocfg",
543+ "num-traits",
544+]
545+
546+[[package]]
547+name = "num-traits"
548+version = "0.2.15"
549+source = "registry+https://github.com/rust-lang/crates.io-index"
550+checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
551+dependencies = [
552+ "autocfg",
553+]
554+
555+[[package]]
556+name = "num_cpus"
557+version = "1.15.0"
558+source = "registry+https://github.com/rust-lang/crates.io-index"
559+checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
560+dependencies = [
561+ "hermit-abi 0.2.6",
562+ "libc",
563+]
564+
565+[[package]]
566+name = "once_cell"
567+version = "1.17.1"
568+source = "registry+https://github.com/rust-lang/crates.io-index"
569+checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
570+
571+[[package]]
572+name = "oorandom"
573+version = "11.1.3"
574+source = "registry+https://github.com/rust-lang/crates.io-index"
575+checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
576+
577+[[package]]
578+name = "os_str_bytes"
579+version = "6.5.0"
580+source = "registry+https://github.com/rust-lang/crates.io-index"
581+checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267"
582+
583+[[package]]
584+name = "percent-encoding"
585+version = "2.2.0"
586+source = "registry+https://github.com/rust-lang/crates.io-index"
587+checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
588+
589+[[package]]
590+name = "pin-project-lite"
591+version = "0.2.9"
592+source = "registry+https://github.com/rust-lang/crates.io-index"
593+checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
594+
595+[[package]]
596+name = "pin-utils"
597+version = "0.1.0"
598+source = "registry+https://github.com/rust-lang/crates.io-index"
599+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
600+
601+[[package]]
602+name = "pkg-config"
603+version = "0.3.26"
604+source = "registry+https://github.com/rust-lang/crates.io-index"
605+checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
606+
607+[[package]]
608+name = "plotters"
609+version = "0.3.4"
610+source = "registry+https://github.com/rust-lang/crates.io-index"
611+checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97"
612+dependencies = [
613+ "num-traits",
614+ "plotters-backend",
615+ "plotters-svg",
616+ "wasm-bindgen",
617+ "web-sys",
618+]
619+
620+[[package]]
621+name = "plotters-backend"
622+version = "0.3.4"
623+source = "registry+https://github.com/rust-lang/crates.io-index"
624+checksum = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142"
625+
626+[[package]]
627+name = "plotters-svg"
628+version = "0.3.3"
629+source = "registry+https://github.com/rust-lang/crates.io-index"
630+checksum = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f"
631+dependencies = [
632+ "plotters-backend",
633+]
634+
635+[[package]]
636+name = "ppv-lite86"
637+version = "0.2.17"
638+source = "registry+https://github.com/rust-lang/crates.io-index"
639+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
640+
641+[[package]]
642+name = "proc-macro-crate"
643+version = "0.1.5"
644+source = "registry+https://github.com/rust-lang/crates.io-index"
645+checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
646+dependencies = [
647+ "toml",
648+]
649+
650+[[package]]
651+name = "proc-macro-crate"
652+version = "1.3.1"
653+source = "registry+https://github.com/rust-lang/crates.io-index"
654+checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
655+dependencies = [
656+ "once_cell",
657+ "toml_edit",
658+]
659+
660+[[package]]
661+name = "proc-macro-error"
662+version = "1.0.4"
663+source = "registry+https://github.com/rust-lang/crates.io-index"
664+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
665+dependencies = [
666+ "proc-macro-error-attr",
667+ "proc-macro2",
668+ "quote",
669+ "syn 1.0.109",
670+ "version_check",
671+]
672+
673+[[package]]
674+name = "proc-macro-error-attr"
675+version = "1.0.4"
676+source = "registry+https://github.com/rust-lang/crates.io-index"
677+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
678+dependencies = [
679+ "proc-macro2",
680+ "quote",
681+ "version_check",
682+]
683+
684+[[package]]
685+name = "proc-macro2"
686+version = "1.0.53"
687+source = "registry+https://github.com/rust-lang/crates.io-index"
688+checksum = "ba466839c78239c09faf015484e5cc04860f88242cff4d03eb038f04b4699b73"
689+dependencies = [
690+ "unicode-ident",
691+]
692+
693+[[package]]
694+name = "quote"
695+version = "1.0.26"
696+source = "registry+https://github.com/rust-lang/crates.io-index"
697+checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
698+dependencies = [
699+ "proc-macro2",
700+]
701+
702+[[package]]
703+name = "rand"
704+version = "0.8.5"
705+source = "registry+https://github.com/rust-lang/crates.io-index"
706+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
707+dependencies = [
708+ "libc",
709+ "rand_chacha",
710+ "rand_core",
711+]
712+
713+[[package]]
714+name = "rand_chacha"
715+version = "0.3.1"
716+source = "registry+https://github.com/rust-lang/crates.io-index"
717+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
718+dependencies = [
719+ "ppv-lite86",
720+ "rand_core",
721+]
722+
723+[[package]]
724+name = "rand_core"
725+version = "0.6.4"
726+source = "registry+https://github.com/rust-lang/crates.io-index"
727+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
728+dependencies = [
729+ "getrandom",
730+]
731+
732+[[package]]
733+name = "rayon"
734+version = "1.7.0"
735+source = "registry+https://github.com/rust-lang/crates.io-index"
736+checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
737+dependencies = [
738+ "either",
739+ "rayon-core",
740+]
741+
742+[[package]]
743+name = "rayon-core"
744+version = "1.11.0"
745+source = "registry+https://github.com/rust-lang/crates.io-index"
746+checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
747+dependencies = [
748+ "crossbeam-channel",
749+ "crossbeam-deque",
750+ "crossbeam-utils",
751+ "num_cpus",
752+]
753+
754+[[package]]
755+name = "regex"
756+version = "1.7.2"
757+source = "registry+https://github.com/rust-lang/crates.io-index"
758+checksum = "cce168fea28d3e05f158bda4576cf0c844d5045bc2cc3620fa0292ed5bb5814c"
759+dependencies = [
760+ "regex-syntax",
761+]
762+
763+[[package]]
764+name = "regex-syntax"
765+version = "0.6.29"
766+source = "registry+https://github.com/rust-lang/crates.io-index"
767+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
768+
769+[[package]]
770+name = "ryu"
771+version = "1.0.13"
772+source = "registry+https://github.com/rust-lang/crates.io-index"
773+checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
774+
775+[[package]]
776+name = "same-file"
777+version = "1.0.6"
778+source = "registry+https://github.com/rust-lang/crates.io-index"
779+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
780+dependencies = [
781+ "winapi-util",
782+]
783+
784+[[package]]
785+name = "scopeguard"
786+version = "1.1.0"
787+source = "registry+https://github.com/rust-lang/crates.io-index"
788+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
789+
790+[[package]]
791+name = "serde"
792+version = "1.0.158"
793+source = "registry+https://github.com/rust-lang/crates.io-index"
794+checksum = "771d4d9c4163ee138805e12c710dd365e4f44be8be0503cb1bb9eb989425d9c9"
795+dependencies = [
796+ "serde_derive",
797+]
798+
799+[[package]]
800+name = "serde_bytes"
801+version = "0.11.9"
802+source = "registry+https://github.com/rust-lang/crates.io-index"
803+checksum = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294"
804+dependencies = [
805+ "serde",
806+]
807+
808+[[package]]
809+name = "serde_derive"
810+version = "1.0.158"
811+source = "registry+https://github.com/rust-lang/crates.io-index"
812+checksum = "e801c1712f48475582b7696ac71e0ca34ebb30e09338425384269d9717c62cad"
813+dependencies = [
814+ "proc-macro2",
815+ "quote",
816+ "syn 2.0.8",
817+]
818+
819+[[package]]
820+name = "serde_json"
821+version = "1.0.94"
822+source = "registry+https://github.com/rust-lang/crates.io-index"
823+checksum = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea"
824+dependencies = [
825+ "itoa",
826+ "ryu",
827+ "serde",
828+]
829+
830+[[package]]
831+name = "serde_repr"
832+version = "0.1.12"
833+source = "registry+https://github.com/rust-lang/crates.io-index"
834+checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab"
835+dependencies = [
836+ "proc-macro2",
837+ "quote",
838+ "syn 2.0.8",
839+]
840+
841+[[package]]
842+name = "slab"
843+version = "0.4.8"
844+source = "registry+https://github.com/rust-lang/crates.io-index"
845+checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
846+dependencies = [
847+ "autocfg",
848+]
849+
850+[[package]]
851+name = "static_assertions"
852+version = "1.1.0"
853+source = "registry+https://github.com/rust-lang/crates.io-index"
854+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
855+
856+[[package]]
857+name = "strum"
858+version = "0.18.0"
859+source = "registry+https://github.com/rust-lang/crates.io-index"
860+checksum = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b"
861+
862+[[package]]
863+name = "strum_macros"
864+version = "0.18.0"
865+source = "registry+https://github.com/rust-lang/crates.io-index"
866+checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c"
867+dependencies = [
868+ "heck",
869+ "proc-macro2",
870+ "quote",
871+ "syn 1.0.109",
872+]
873+
874+[[package]]
875+name = "syn"
876+version = "1.0.109"
877+source = "registry+https://github.com/rust-lang/crates.io-index"
878+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
879+dependencies = [
880+ "proc-macro2",
881+ "quote",
882+ "unicode-ident",
883+]
884+
885+[[package]]
886+name = "syn"
887+version = "2.0.8"
888+source = "registry+https://github.com/rust-lang/crates.io-index"
889+checksum = "bcc02725fd69ab9f26eab07fad303e2497fad6fb9eba4f96c4d1687bdf704ad9"
890+dependencies = [
891+ "proc-macro2",
892+ "quote",
893+ "unicode-ident",
894+]
895+
896+[[package]]
897+name = "system-deps"
898+version = "1.3.2"
899+source = "registry+https://github.com/rust-lang/crates.io-index"
900+checksum = "0f3ecc17269a19353b3558b313bba738b25d82993e30d62a18406a24aba4649b"
901+dependencies = [
902+ "heck",
903+ "pkg-config",
904+ "strum",
905+ "strum_macros",
906+ "thiserror",
907+ "toml",
908+ "version-compare",
909+]
910+
911+[[package]]
912+name = "textwrap"
913+version = "0.16.0"
914+source = "registry+https://github.com/rust-lang/crates.io-index"
915+checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
916+
917+[[package]]
918+name = "thiserror"
919+version = "1.0.40"
920+source = "registry+https://github.com/rust-lang/crates.io-index"
921+checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
922+dependencies = [
923+ "thiserror-impl",
924+]
925+
926+[[package]]
927+name = "thiserror-impl"
928+version = "1.0.40"
929+source = "registry+https://github.com/rust-lang/crates.io-index"
930+checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
931+dependencies = [
932+ "proc-macro2",
933+ "quote",
934+ "syn 2.0.8",
935+]
936+
937+[[package]]
938+name = "time"
939+version = "0.3.20"
940+source = "registry+https://github.com/rust-lang/crates.io-index"
941+checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890"
942+dependencies = [
943+ "serde",
944+ "time-core",
945+ "time-macros",
946+]
947+
948+[[package]]
949+name = "time-core"
950+version = "0.1.0"
951+source = "registry+https://github.com/rust-lang/crates.io-index"
952+checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
953+
954+[[package]]
955+name = "time-macros"
956+version = "0.2.8"
957+source = "registry+https://github.com/rust-lang/crates.io-index"
958+checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36"
959+dependencies = [
960+ "time-core",
961+]
962+
963+[[package]]
964+name = "tinytemplate"
965+version = "1.2.1"
966+source = "registry+https://github.com/rust-lang/crates.io-index"
967+checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
968+dependencies = [
969+ "serde",
970+ "serde_json",
971+]
972+
973+[[package]]
974+name = "tinyvec"
975+version = "1.6.0"
976+source = "registry+https://github.com/rust-lang/crates.io-index"
977+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
978+dependencies = [
979+ "tinyvec_macros",
980+]
981+
982+[[package]]
983+name = "tinyvec_macros"
984+version = "0.1.1"
985+source = "registry+https://github.com/rust-lang/crates.io-index"
986+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
987+
988+[[package]]
989+name = "toml"
990+version = "0.5.11"
991+source = "registry+https://github.com/rust-lang/crates.io-index"
992+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
993+dependencies = [
994+ "serde",
995+]
996+
997+[[package]]
998+name = "toml_datetime"
999+version = "0.6.1"
1000+source = "registry+https://github.com/rust-lang/crates.io-index"
1001+checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622"
1002+
1003+[[package]]
1004+name = "toml_edit"
1005+version = "0.19.8"
1006+source = "registry+https://github.com/rust-lang/crates.io-index"
1007+checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13"
1008+dependencies = [
1009+ "indexmap",
1010+ "toml_datetime",
1011+ "winnow",
1012+]
1013+
1014+[[package]]
1015+name = "unicode-bidi"
1016+version = "0.3.13"
1017+source = "registry+https://github.com/rust-lang/crates.io-index"
1018+checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
1019+
1020+[[package]]
1021+name = "unicode-ident"
1022+version = "1.0.8"
1023+source = "registry+https://github.com/rust-lang/crates.io-index"
1024+checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
1025+
1026+[[package]]
1027+name = "unicode-normalization"
1028+version = "0.1.22"
1029+source = "registry+https://github.com/rust-lang/crates.io-index"
1030+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
1031+dependencies = [
1032+ "tinyvec",
1033+]
1034+
1035+[[package]]
1036+name = "unicode-segmentation"
1037+version = "1.10.1"
1038+source = "registry+https://github.com/rust-lang/crates.io-index"
1039+checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
1040+
1041+[[package]]
1042+name = "url"
1043+version = "2.3.1"
1044+source = "registry+https://github.com/rust-lang/crates.io-index"
1045+checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
1046+dependencies = [
1047+ "form_urlencoded",
1048+ "idna",
1049+ "percent-encoding",
1050+ "serde",
1051+]
1052+
1053+[[package]]
1054+name = "uuid"
1055+version = "1.3.0"
1056+source = "registry+https://github.com/rust-lang/crates.io-index"
1057+checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79"
1058+dependencies = [
1059+ "serde",
1060+]
1061+
1062+[[package]]
1063+name = "version-compare"
1064+version = "0.0.10"
1065+source = "registry+https://github.com/rust-lang/crates.io-index"
1066+checksum = "d63556a25bae6ea31b52e640d7c41d1ab27faba4ccb600013837a3d0b3994ca1"
1067+
1068+[[package]]
1069+name = "version_check"
1070+version = "0.9.4"
1071+source = "registry+https://github.com/rust-lang/crates.io-index"
1072+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
1073+
1074+[[package]]
1075+name = "walkdir"
1076+version = "2.3.3"
1077+source = "registry+https://github.com/rust-lang/crates.io-index"
1078+checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
1079+dependencies = [
1080+ "same-file",
1081+ "winapi-util",
1082+]
1083+
1084+[[package]]
1085+name = "wasi"
1086+version = "0.11.0+wasi-snapshot-preview1"
1087+source = "registry+https://github.com/rust-lang/crates.io-index"
1088+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
1089+
1090+[[package]]
1091+name = "wasm-bindgen"
1092+version = "0.2.84"
1093+source = "registry+https://github.com/rust-lang/crates.io-index"
1094+checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
1095+dependencies = [
1096+ "cfg-if",
1097+ "wasm-bindgen-macro",
1098+]
1099+
1100+[[package]]
1101+name = "wasm-bindgen-backend"
1102+version = "0.2.84"
1103+source = "registry+https://github.com/rust-lang/crates.io-index"
1104+checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
1105+dependencies = [
1106+ "bumpalo",
1107+ "log",
1108+ "once_cell",
1109+ "proc-macro2",
1110+ "quote",
1111+ "syn 1.0.109",
1112+ "wasm-bindgen-shared",
1113+]
1114+
1115+[[package]]
1116+name = "wasm-bindgen-macro"
1117+version = "0.2.84"
1118+source = "registry+https://github.com/rust-lang/crates.io-index"
1119+checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
1120+dependencies = [
1121+ "quote",
1122+ "wasm-bindgen-macro-support",
1123+]
1124+
1125+[[package]]
1126+name = "wasm-bindgen-macro-support"
1127+version = "0.2.84"
1128+source = "registry+https://github.com/rust-lang/crates.io-index"
1129+checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
1130+dependencies = [
1131+ "proc-macro2",
1132+ "quote",
1133+ "syn 1.0.109",
1134+ "wasm-bindgen-backend",
1135+ "wasm-bindgen-shared",
1136+]
1137+
1138+[[package]]
1139+name = "wasm-bindgen-shared"
1140+version = "0.2.84"
1141+source = "registry+https://github.com/rust-lang/crates.io-index"
1142+checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
1143+
1144+[[package]]
1145+name = "web-sys"
1146+version = "0.3.61"
1147+source = "registry+https://github.com/rust-lang/crates.io-index"
1148+checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
1149+dependencies = [
1150+ "js-sys",
1151+ "wasm-bindgen",
1152+]
1153+
1154+[[package]]
1155+name = "winapi"
1156+version = "0.3.9"
1157+source = "registry+https://github.com/rust-lang/crates.io-index"
1158+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
1159+dependencies = [
1160+ "winapi-i686-pc-windows-gnu",
1161+ "winapi-x86_64-pc-windows-gnu",
1162+]
1163+
1164+[[package]]
1165+name = "winapi-i686-pc-windows-gnu"
1166+version = "0.4.0"
1167+source = "registry+https://github.com/rust-lang/crates.io-index"
1168+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
1169+
1170+[[package]]
1171+name = "winapi-util"
1172+version = "0.1.5"
1173+source = "registry+https://github.com/rust-lang/crates.io-index"
1174+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
1175+dependencies = [
1176+ "winapi",
1177+]
1178+
1179+[[package]]
1180+name = "winapi-x86_64-pc-windows-gnu"
1181+version = "0.4.0"
1182+source = "registry+https://github.com/rust-lang/crates.io-index"
1183+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
1184+
1185+[[package]]
1186+name = "winnow"
1187+version = "0.4.0"
1188+source = "registry+https://github.com/rust-lang/crates.io-index"
1189+checksum = "deac0939bd6e4f24ab5919fbf751c97a8cfc8543bb083a305ed5c0c10bb241d1"
1190+dependencies = [
1191+ "memchr",
1192+]
1193+
1194+[[package]]
1195+name = "zvariant"
1196+version = "3.12.0"
1197+dependencies = [
1198+ "arrayvec",
1199+ "byteorder",
1200+ "chrono",
1201+ "criterion",
1202+ "enumflags2",
1203+ "glib",
1204+ "libc",
1205+ "rand",
1206+ "serde",
1207+ "serde_bytes",
1208+ "serde_json",
1209+ "serde_repr",
1210+ "static_assertions",
1211+ "time",
1212+ "url",
1213+ "uuid",
1214+ "zvariant_derive",
1215+]
1216+
1217+[[package]]
1218+name = "zvariant_derive"
1219+version = "3.12.0"
1220+source = "registry+https://github.com/rust-lang/crates.io-index"
1221+checksum = "34c20260af4b28b3275d6676c7e2a6be0d4332e8e0aba4616d34007fd84e462a"
1222+dependencies = [
1223+ "proc-macro-crate 1.3.1",
1224+ "proc-macro2",
1225+ "quote",
1226+ "syn 1.0.109",
1227+ "zvariant_utils",
1228+]
1229+
1230+[[package]]
1231+name = "zvariant_utils"
1232+version = "1.0.0"
1233+source = "registry+https://github.com/rust-lang/crates.io-index"
1234+checksum = "53b22993dbc4d128a17a3b6c92f1c63872dd67198537ee728d8b5d7c40640a8b"
1235+dependencies = [
1236+ "proc-macro2",
1237+ "quote",
1238+ "syn 1.0.109",
1239+]
1240diff --git a/zvariant/Cargo.toml b/zvariant/Cargo.toml
1241index 45367729..6981862a 100644
1242--- a/zvariant/Cargo.toml
1243+++ b/zvariant/Cargo.toml
1244@@ -27,7 +27,7 @@ byteorder = "1.4.3"
1245 serde = { version = "1.0", features = ["derive"] }
1246 arrayvec = { version = "0.7.2", features = ["serde"], optional = true }
1247 enumflags2 = { version = "0.7.5", features = ["serde"], optional = true }
1248-zvariant_derive = { version = "=3.12.0", path = "../zvariant_derive" }
1249+zvariant_derive = "3.12.0"
1250 serde_bytes = { version = "0.11", optional = true }
1251 static_assertions = "1.1.0"
1252 libc = "0.2.137"
1253diff --git a/zvariant/LICENSE b/zvariant/LICENSE
1254deleted file mode 120000
1255index ea5b6064..00000000
1256--- a/zvariant/LICENSE
1257+++ /dev/null
1258@@ -1 +0,0 @@
1259-../LICENSE
1260\ No newline at end of file
1261diff --git a/zvariant/LICENSE b/zvariant/LICENSE
1262new file mode 100644
1263index 00000000..31aa7938
1264--- /dev/null
1265+++ b/zvariant/LICENSE
1266@@ -0,0 +1,23 @@
1267+Permission is hereby granted, free of charge, to any
1268+person obtaining a copy of this software and associated
1269+documentation files (the "Software"), to deal in the
1270+Software without restriction, including without
1271+limitation the rights to use, copy, modify, merge,
1272+publish, distribute, sublicense, and/or sell copies of
1273+the Software, and to permit persons to whom the Software
1274+is furnished to do so, subject to the following
1275+conditions:
1276+
1277+The above copyright notice and this permission notice
1278+shall be included in all copies or substantial portions
1279+of the Software.
1280+
1281+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
1282+ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
1283+TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
1284+PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
1285+SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
1286+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
1287+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
1288+IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
1289+DEALINGS IN THE SOFTWARE.
1290--
12912.34.1
1292
diff --git a/meta-selftest/recipes-extended/zvariant/zvariant_3.12.0.bb b/meta-selftest/recipes-extended/zvariant/zvariant_3.12.0.bb
new file mode 100644
index 0000000000..ae66cea390
--- /dev/null
+++ b/meta-selftest/recipes-extended/zvariant/zvariant_3.12.0.bb
@@ -0,0 +1,27 @@
1SUMMARY = "Provides API for encoding/decoding of data to/from D-Bus wire format"
2DESCRIPTION = "This crate provides API for encoding/decoding of data to/from D-Bus wire format.\
3This binary wire format is simple and very efficient and hence useful outside of D-Bus context as well.\
4A modified form of this format, GVariant is very commonly used for efficient storage of arbitrary \
5data and is also supported by this crate."
6HOMEPAGE = "https://gitlab.freedesktop.org/dbus/zbus/"
7LICENSE = "MIT"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=b377b220f43d747efdec40d69fcaa69d"
9
10SRC_URI = " \
11 git://gitlab.freedesktop.org/dbus/zbus;protocol=https;branch=main;subpath=zvariant \
12 file://0001-Tweak-zvariant-crate-config.patch;striplevel=2 \
13"
14
15SRCREV = "07506776fab5f58e029760bb4b288f670c7eecd6"
16S = "${WORKDIR}/zvariant"
17
18python do_clean_lic_file_symlink() {
19 bb.utils.remove("LICENCE")
20}
21
22addtask clean_lic_file_symlink after do_unpack before do_patch
23
24inherit cargo cargo-update-recipe-crates
25
26require ${BPN}-crates.inc
27require ${BPN}-git-crates.inc
diff --git a/meta/lib/oeqa/selftest/cases/devtool.py b/meta/lib/oeqa/selftest/cases/devtool.py
index 81d02017c1..94873fd19f 100644
--- a/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/meta/lib/oeqa/selftest/cases/devtool.py
@@ -848,6 +848,99 @@ class DevtoolModifyTests(DevtoolBase):
848 # Try building 848 # Try building
849 bitbake(testrecipe) 849 bitbake(testrecipe)
850 850
851 def test_devtool_modify_git_crates_subpath(self):
852 # This tests two things in devtool context:
853 # - that we support local git dependencies for cargo based recipe
854 # - that we support patches in SRC_URI when git url contains subpath parameter
855
856 # Check preconditions:
857 # recipe inherits cargo
858 # git:// uri with a subpath as the main package
859 # some crate:// in SRC_URI
860 # others git:// in SRC_URI
861 # cointains a patch
862 testrecipe = 'zvariant'
863 bb_vars = get_bb_vars(['SRC_URI', 'FILE', 'WORKDIR', 'CARGO_HOME'], testrecipe)
864 recipefile = bb_vars['FILE']
865 workdir = bb_vars['WORKDIR']
866 cargo_home = bb_vars['CARGO_HOME']
867 src_uri = bb_vars['SRC_URI'].split()
868 self.assertTrue(src_uri[0].startswith('git://'),
869 'This test expects the %s recipe to have a git repo has its main uri' % testrecipe)
870 self.assertIn(';subpath=', src_uri[0],
871 'This test expects the %s recipe to have a git uri with subpath' % testrecipe)
872 self.assertTrue(any([uri.startswith('crate://') for uri in src_uri]),
873 'This test expects the %s recipe to have some crates in its src uris' % testrecipe)
874 self.assertGreater(sum(map(lambda x:x.startswith('git://'), src_uri)), 2,
875 'This test expects the %s recipe to have several git:// uris' % testrecipe)
876 self.assertTrue(any([uri.startswith('file://') and '.patch' in uri for uri in src_uri]),
877 'This test expects the %s recipe to have a patch in its src uris' % testrecipe)
878
879 self._test_recipe_contents(recipefile, {}, ['cargo'])
880
881 # Clean up anything in the workdir/sysroot/sstate cache
882 bitbake('%s -c cleansstate' % testrecipe)
883 # Try modifying a recipe
884 tempdir = tempfile.mkdtemp(prefix='devtoolqa')
885 self.track_for_cleanup(tempdir)
886 self.track_for_cleanup(self.workspacedir)
887 self.add_command_to_tearDown('bitbake -c clean %s' % testrecipe)
888 self.add_command_to_tearDown('bitbake-layers remove-layer */workspace')
889 result = runCmd('devtool modify %s -x %s' % (testrecipe, tempdir))
890 self.assertExists(os.path.join(tempdir, 'Cargo.toml'), 'Extracted source could not be found')
891 self.assertExists(os.path.join(self.workspacedir, 'conf', 'layer.conf'), 'Workspace directory not created. devtool output: %s' % result.output)
892 matches = glob.glob(os.path.join(self.workspacedir, 'appends', 'zvariant_*.bbappend'))
893 self.assertTrue(matches, 'bbappend not created')
894 # Test devtool status
895 result = runCmd('devtool status')
896 self.assertIn(testrecipe, result.output)
897 self.assertIn(tempdir, result.output)
898 # Check git repo
899 self._check_src_repo(tempdir)
900 # Check that the patch is correctly applied
901 # last commit message in the tree must contain
902 # %% original patch: <patchname>
903 # ..
904 patchname = None
905 for uri in src_uri:
906 if uri.startswith('file://') and '.patch' in uri:
907 patchname = uri.replace("file://", "").partition('.patch')[0] + '.patch'
908 self.assertIsNotNone(patchname)
909 result = runCmd('git -C %s log -1' % tempdir)
910 self.assertIn("%%%% original patch: %s" % patchname, result.output)
911
912 # Configure the recipe to check that the git dependencies are correctly patched in cargo config
913 bitbake('-c configure %s' % testrecipe)
914
915 cargo_config_path = os.path.join(cargo_home, 'config')
916 with open(cargo_config_path, "r") as f:
917 cargo_config_contents = [line.strip('\n') for line in f.readlines()]
918
919 # Get back git dependencies of the recipe (ignoring the main one)
920 # and check that they are all correctly patched to be fetched locally
921 git_deps = [uri for uri in src_uri if uri.startswith("git://")][1:]
922 for git_dep in git_deps:
923 raw_url, _, raw_parms = git_dep.partition(";")
924 parms = {}
925 for parm in raw_parms.split(";"):
926 name_parm, _, value_parm = parm.partition('=')
927 parms[name_parm]=value_parm
928 self.assertIn('protocol', parms, 'git dependencies uri should contain the "protocol" parameter')
929 self.assertIn('name', parms, 'git dependencies uri should contain the "name" parameter')
930 self.assertIn('destsuffix', parms, 'git dependencies uri should contain the "destsuffix" parameter')
931 self.assertIn('type', parms, 'git dependencies uri should contain the "type" parameter')
932 self.assertEqual(parms['type'], 'git-dependency', 'git dependencies uri should have "type=git-dependency"')
933 raw_url = raw_url.replace("git://", '%s://' % parms['protocol'])
934 patch_line = '[patch."%s"]' % raw_url
935 path_patched = os.path.join(workdir, parms['destsuffix'])
936 path_override_line = '%s = { path = "%s" }' % (parms['name'], path_patched)
937 # Would have been better to use tomllib to read this file :/
938 self.assertIn(patch_line, cargo_config_contents)
939 self.assertIn(path_override_line, cargo_config_contents)
940
941 # Try to package the recipe
942 bitbake('-c package_qa %s' % testrecipe)
943
851 def test_devtool_modify_localfiles(self): 944 def test_devtool_modify_localfiles(self):
852 # Check preconditions 945 # Check preconditions
853 testrecipe = 'lighttpd' 946 testrecipe = 'lighttpd'