summaryrefslogtreecommitdiffstats
path: root/meta-parsec/recipes-parsec
diff options
context:
space:
mode:
Diffstat (limited to 'meta-parsec/recipes-parsec')
-rw-r--r--meta-parsec/recipes-parsec/parsec-service/files/cryptoki.patch18
-rw-r--r--meta-parsec/recipes-parsec/parsec-service/files/parsec-tmpfiles.conf2
-rwxr-xr-xmeta-parsec/recipes-parsec/parsec-service/files/parsec_init63
-rw-r--r--meta-parsec/recipes-parsec/parsec-service/files/systemd.patch19
-rw-r--r--meta-parsec/recipes-parsec/parsec-service/parsec-service_0.7.0.bb67
-rw-r--r--meta-parsec/recipes-parsec/parsec-service/parsec-service_0.7.0.inc147
-rw-r--r--meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.3.0.bb18
-rw-r--r--meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.3.0.inc127
8 files changed, 461 insertions, 0 deletions
diff --git a/meta-parsec/recipes-parsec/parsec-service/files/cryptoki.patch b/meta-parsec/recipes-parsec/parsec-service/files/cryptoki.patch
new file mode 100644
index 0000000..c234479
--- /dev/null
+++ b/meta-parsec/recipes-parsec/parsec-service/files/cryptoki.patch
@@ -0,0 +1,18 @@
1
2Use cryptoki v0.1.1 which supports the "generate-bindings" feature
3required for building Parsec service 0.7.0 in Yocto.
4
5Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
6Upstream-Status: Submitted
7
8--- a/Cargo.toml 2021-04-01 10:29:50.333687763 +0100
9+++ b/Cargo.toml 2021-04-01 10:27:13.051860002 +0100
10@@ -37,7 +37,7 @@
11 version = "1.3.1"
12
13 [dependencies.cryptoki]
14-version = "0.1.0"
15+version = "0.1.1"
16 features = ["psa-crypto-conversions"]
17 optional = true
18
diff --git a/meta-parsec/recipes-parsec/parsec-service/files/parsec-tmpfiles.conf b/meta-parsec/recipes-parsec/parsec-service/files/parsec-tmpfiles.conf
new file mode 100644
index 0000000..fe576a2
--- /dev/null
+++ b/meta-parsec/recipes-parsec/parsec-service/files/parsec-tmpfiles.conf
@@ -0,0 +1,2 @@
1#Type Path Mode User Group Age Argument
2d /run/parsec 755 parsec parsec - -
diff --git a/meta-parsec/recipes-parsec/parsec-service/files/parsec_init b/meta-parsec/recipes-parsec/parsec-service/files/parsec_init
new file mode 100755
index 0000000..58a2897
--- /dev/null
+++ b/meta-parsec/recipes-parsec/parsec-service/files/parsec_init
@@ -0,0 +1,63 @@
1#! /bin/sh -e
2
3# ------------------------------------------------------------------------------
4# Copyright (c) 2021, Arm Limited, All Rights Reserved
5# SPDX-License-Identifier: Apache-2.0
6#
7# Licensed under the Apache License, Version 2.0 (the "License"); you may
8# not use this file except in compliance with the License.
9# You may obtain a copy of the License at
10#
11# http://www.apache.org/licenses/LICENSE-2.0
12#
13# Unless required by applicable law or agreed to in writing, software
14# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
15# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16# See the License for the specific language governing permissions and
17# limitations under the License.
18# ------------------------------------------------------------------------------
19
20# Parsec Service SysV init script
21
22test -x /usr/libexec/parsec/parsec || exit 0
23
24case "$1" in
25 start)
26 echo -n "Starting Parsec daemon: "
27 if [ ! -f /etc/parsec/config.toml ]; then
28 echo "There is no Parsec service configuration file."
29 else
30 if [ ! -d /run/parsec ]; then
31 mkdir /run/parsec
32 chown parsec:parsec /run/parsec
33 chmod 755 /run/parsec
34 fi
35 # start-stop-daemon used in poky busybox doesn't support
36 # '--chdir' parameter. So, let's do it manually
37 cd /var/lib/parsec
38 RUST_LOG=info start-stop-daemon --oknodo --start --background \
39 --chuid parsec:parsec --exec /usr/libexec/parsec/parsec \
40 -- --config /etc/parsec/config.toml
41 echo "parsec."
42 fi
43 ;;
44 stop)
45 echo -n "Stopping Parsec daemon: "
46 start-stop-daemon --oknodo --stop --exec /usr/libexec/parsec/parsec
47 echo "parsec."
48 ;;
49 reload)
50 echo -n "Reloading Parsec daemon: "
51 start-stop-daemon --stop --signal SIGHUP --exec /usr/libexec/parsec/parsec
52 echo "parsec."
53 ;;
54 restart|force-reload)
55 $0 stop
56 $0 start
57 ;;
58 *)
59 echo "Usage: /etc/init.d/parsec {start|stop|restart|reload|force-reload}"
60 exit 1
61esac
62
63exit 0
diff --git a/meta-parsec/recipes-parsec/parsec-service/files/systemd.patch b/meta-parsec/recipes-parsec/parsec-service/files/systemd.patch
new file mode 100644
index 0000000..c01ff06
--- /dev/null
+++ b/meta-parsec/recipes-parsec/parsec-service/files/systemd.patch
@@ -0,0 +1,19 @@
1
2Run the Parsec service as parsec user in /var/lib/parsec/ working directory.
3
4Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
5Upstream-Status: Inappropriate [deployment configuration]
6
7--- a/systemd-daemon/parsec.service 2021-03-28 18:34:18.703196235 +0100
8+++ b/systemd-daemon/parsec.service 2021-03-28 18:35:14.279830299 +0100
9@@ -3,7 +3,9 @@
10 Documentation=https://parallaxsecond.github.io/parsec-book/parsec_service/install_parsec_linux.html
11
12 [Service]
13-WorkingDirectory=/home/parsec/
14+User=parsec
15+Group=parsec
16+WorkingDirectory=/var/lib/parsec/
17 ExecStart=/usr/libexec/parsec/parsec --config /etc/parsec/config.toml
18
19 [Install]
diff --git a/meta-parsec/recipes-parsec/parsec-service/parsec-service_0.7.0.bb b/meta-parsec/recipes-parsec/parsec-service/parsec-service_0.7.0.bb
new file mode 100644
index 0000000..b3f7b21
--- /dev/null
+++ b/meta-parsec/recipes-parsec/parsec-service/parsec-service_0.7.0.bb
@@ -0,0 +1,67 @@
1SUMMARY = "Platform AbstRaction for SECurity Daemon"
2HOMEPAGE = "https://github.com/parallaxsecond/parsec"
3LICENSE = "Apache-2.0"
4
5inherit cargo
6
7SRC_URI += "crate://crates.io/parsec-service/${PV} \
8 file://parsec_init \
9 file://systemd.patch \
10 file://parsec-tmpfiles.conf \
11"
12
13DEPENDS = "clang-native tpm2-tss"
14INSANE_SKIP_${PN} += "dev-deps"
15
16CARGO_BUILD_FLAGS += " --features all-providers,cryptoki/generate-bindings,tss-esapi/generate-bindings"
17
18inherit systemd
19SYSTEMD_SERVICE_${PN} = "parsec.service"
20
21inherit update-rc.d
22INITSCRIPT_NAME = "parsec"
23
24# A local file can be defined in build/local.conf
25# The file should also be included into SRC_URI then
26PARSEC_CONFIG ?= "${S}/config.toml"
27
28do_install_append () {
29 # Binaries
30 install -d -m 700 -o parsec -g parsec "${D}${libexecdir}/parsec"
31 install -m 700 -o parsec -g parsec "${WORKDIR}/build/target/${CARGO_TARGET_SUBDIR}/parsec" ${D}${libexecdir}/parsec/parsec
32
33 # Config file
34 install -d -m 700 -o parsec -g parsec "${D}${sysconfdir}/parsec"
35 install -m 400 -o parsec -g parsec "${PARSEC_CONFIG}" ${D}${sysconfdir}/parsec/config.toml
36
37 # Data dir
38 install -d -m 700 -o parsec -g parsec "${D}${localstatedir}/lib/parsec"
39
40 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
41 install -d ${D}${systemd_unitdir}/system
42 install -m 644 ${S}/systemd-daemon/parsec.service ${D}${systemd_unitdir}/system
43
44 install -d ${D}${libdir}/tmpfiles.d
45 install -m 644 ${WORKDIR}/parsec-tmpfiles.conf ${D}${libdir}/tmpfiles.d
46 fi
47
48 if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
49 install -d ${D}${sysconfdir}/init.d
50 install -m 755 ${WORKDIR}/parsec_init ${D}${sysconfdir}/init.d/parsec
51 fi
52}
53
54inherit useradd
55USERADD_PACKAGES = "${PN}"
56USERADD_PARAM_${PN} = "-r -g parsec -s /bin/false -d ${localstatedir}/lib/parsec parsec"
57GROUPADD_PARAM_${PN} = "-r parsec"
58
59FILES_${PN} += " \
60 ${sysconfdir}/parsec/config.toml \
61 ${libexecdir}/parsec/parsec \
62 ${systemd_unitdir}/system/parsec.service \
63 ${libdir}/tmpfiles.d/parsec-tmpfiles.conf \
64 ${sysconfdir}/init.d/parsec \
65"
66
67require parsec-service_${PV}.inc
diff --git a/meta-parsec/recipes-parsec/parsec-service/parsec-service_0.7.0.inc b/meta-parsec/recipes-parsec/parsec-service/parsec-service_0.7.0.inc
new file mode 100644
index 0000000..59a47f9
--- /dev/null
+++ b/meta-parsec/recipes-parsec/parsec-service/parsec-service_0.7.0.inc
@@ -0,0 +1,147 @@
1# This file is created from parsec-service repository Cargo.lock using cargo-bitbake tool
2
3SRC_URI += " \
4 crate://crates.io/aho-corasick/0.7.15 \
5 crate://crates.io/ansi_term/0.11.0 \
6 crate://crates.io/anyhow/1.0.38 \
7 crate://crates.io/atty/0.2.14 \
8 crate://crates.io/autocfg/1.0.1 \
9 crate://crates.io/base64/0.12.3 \
10 crate://crates.io/base64/0.13.0 \
11 crate://crates.io/bincode/1.3.2 \
12 crate://crates.io/bindgen/0.56.0 \
13 crate://crates.io/bindgen/0.57.0 \
14 crate://crates.io/bitfield/0.13.2 \
15 crate://crates.io/bitflags/1.2.1 \
16 crate://crates.io/byteorder/1.3.4 \
17 crate://crates.io/bytes/0.5.6 \
18 crate://crates.io/bytes/1.0.1 \
19 crate://crates.io/cc/1.0.67 \
20 crate://crates.io/cexpr/0.4.0 \
21 crate://crates.io/cfg-if/1.0.0 \
22 crate://crates.io/clang-sys/1.1.1 \
23 crate://crates.io/clap/2.33.3 \
24 crate://crates.io/cmake/0.1.45 \
25 crate://crates.io/cryptoauthlib-sys/0.1.0 \
26 crate://crates.io/cryptoki-sys/0.1.1 \
27 crate://crates.io/cryptoki/0.1.1 \
28 crate://crates.io/derivative/2.2.0 \
29 crate://crates.io/either/1.6.1 \
30 crate://crates.io/enumflags2/0.6.4 \
31 crate://crates.io/enumflags2_derive/0.6.4 \
32 crate://crates.io/env_logger/0.8.3 \
33 crate://crates.io/fixedbitset/0.2.0 \
34 crate://crates.io/getrandom/0.2.2 \
35 crate://crates.io/glob/0.3.0 \
36 crate://crates.io/hashbrown/0.9.1 \
37 crate://crates.io/heck/0.3.2 \
38 crate://crates.io/hermit-abi/0.1.18 \
39 crate://crates.io/hex/0.4.3 \
40 crate://crates.io/hostname-validator/1.0.0 \
41 crate://crates.io/humantime/2.1.0 \
42 crate://crates.io/indexmap/1.6.2 \
43 crate://crates.io/itertools/0.8.2 \
44 crate://crates.io/itertools/0.9.0 \
45 crate://crates.io/lazy_static/1.4.0 \
46 crate://crates.io/lazycell/1.3.0 \
47 crate://crates.io/libc/0.2.89 \
48 crate://crates.io/libloading/0.7.0 \
49 crate://crates.io/log/0.4.14 \
50 crate://crates.io/mbox/0.5.0 \
51 crate://crates.io/memchr/2.3.4 \
52 crate://crates.io/multimap/0.8.3 \
53 crate://crates.io/nom/5.1.2 \
54 crate://crates.io/num-bigint/0.3.2 \
55 crate://crates.io/num-complex/0.3.1 \
56 crate://crates.io/num-derive/0.3.3 \
57 crate://crates.io/num-integer/0.1.44 \
58 crate://crates.io/num-iter/0.1.42 \
59 crate://crates.io/num-rational/0.3.2 \
60 crate://crates.io/num-traits/0.2.14 \
61 crate://crates.io/num/0.3.1 \
62 crate://crates.io/num_cpus/1.13.0 \
63 crate://crates.io/oid/0.1.1 \
64 crate://crates.io/parsec-interface/0.24.0 \
65 crate://crates.io/peeking_take_while/0.1.2 \
66 crate://crates.io/petgraph/0.5.1 \
67 crate://crates.io/picky-asn1-der/0.2.4 \
68 crate://crates.io/picky-asn1-x509/0.4.0 \
69 crate://crates.io/picky-asn1/0.3.1 \
70 crate://crates.io/pkg-config/0.3.19 \
71 crate://crates.io/ppv-lite86/0.2.10 \
72 crate://crates.io/proc-macro-error-attr/1.0.4 \
73 crate://crates.io/proc-macro-error/1.0.4 \
74 crate://crates.io/proc-macro2/1.0.24 \
75 crate://crates.io/prost-build/0.6.1 \
76 crate://crates.io/prost-build/0.7.0 \
77 crate://crates.io/prost-derive/0.6.1 \
78 crate://crates.io/prost-derive/0.7.0 \
79 crate://crates.io/prost-types/0.6.1 \
80 crate://crates.io/prost-types/0.7.0 \
81 crate://crates.io/prost/0.6.1 \
82 crate://crates.io/prost/0.7.0 \
83 crate://crates.io/psa-crypto-sys/0.8.0 \
84 crate://crates.io/psa-crypto/0.8.0 \
85 crate://crates.io/quote/1.0.9 \
86 crate://crates.io/rand/0.8.3 \
87 crate://crates.io/rand_chacha/0.3.0 \
88 crate://crates.io/rand_core/0.6.2 \
89 crate://crates.io/rand_hc/0.3.0 \
90 crate://crates.io/redox_syscall/0.2.5 \
91 crate://crates.io/regex-syntax/0.6.23 \
92 crate://crates.io/regex/1.4.5 \
93 crate://crates.io/remove_dir_all/0.5.3 \
94 crate://crates.io/rust-cryptoauthlib/0.1.0 \
95 crate://crates.io/rustc-hash/1.1.0 \
96 crate://crates.io/rustc_version/0.2.3 \
97 crate://crates.io/same-file/1.0.6 \
98 crate://crates.io/sd-notify/0.2.0 \
99 crate://crates.io/secrecy/0.7.0 \
100 crate://crates.io/semver-parser/0.7.0 \
101 crate://crates.io/semver/0.9.0 \
102 crate://crates.io/serde/1.0.124 \
103 crate://crates.io/serde_bytes/0.11.5 \
104 crate://crates.io/serde_derive/1.0.124 \
105 crate://crates.io/shlex/0.1.1 \
106 crate://crates.io/signal-hook-registry/1.3.0 \
107 crate://crates.io/signal-hook/0.3.7 \
108 crate://crates.io/stable_deref_trait/1.2.0 \
109 crate://crates.io/strsim/0.8.0 \
110 crate://crates.io/structopt-derive/0.4.14 \
111 crate://crates.io/structopt/0.3.21 \
112 crate://crates.io/strum_macros/0.19.4 \
113 crate://crates.io/syn/1.0.64 \
114 crate://crates.io/synstructure/0.12.4 \
115 crate://crates.io/tempfile/3.2.0 \
116 crate://crates.io/termcolor/1.1.2 \
117 crate://crates.io/textwrap/0.11.0 \
118 crate://crates.io/thiserror-impl/1.0.24 \
119 crate://crates.io/thiserror/1.0.24 \
120 crate://crates.io/threadpool/1.8.1 \
121 crate://crates.io/toml/0.5.8 \
122 crate://crates.io/tss-esapi-sys/0.1.0 \
123 crate://crates.io/tss-esapi/5.0.0 \
124 crate://crates.io/unicode-segmentation/1.7.1 \
125 crate://crates.io/unicode-width/0.1.8 \
126 crate://crates.io/unicode-xid/0.2.1 \
127 crate://crates.io/users/0.11.0 \
128 crate://crates.io/uuid/0.8.2 \
129 crate://crates.io/vec_map/0.8.2 \
130 crate://crates.io/version/3.0.0 \
131 crate://crates.io/version_check/0.9.3 \
132 crate://crates.io/walkdir/2.3.1 \
133 crate://crates.io/wasi/0.10.2+wasi-snapshot-preview1 \
134 crate://crates.io/which/3.1.1 \
135 crate://crates.io/which/4.0.2 \
136 crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
137 crate://crates.io/winapi-util/0.1.5 \
138 crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
139 crate://crates.io/winapi/0.3.9 \
140 crate://crates.io/zeroize/1.2.0 \
141 crate://crates.io/zeroize_derive/1.0.1 \
142 file://cryptoki.patch \
143"
144
145LIC_FILES_CHKSUM = " \
146 file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
147"
diff --git a/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.3.0.bb b/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.3.0.bb
new file mode 100644
index 0000000..939e771
--- /dev/null
+++ b/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.3.0.bb
@@ -0,0 +1,18 @@
1SUMMARY = "Parsec Command Line Interface"
2HOMEPAGE = "https://github.com/parallaxsecond/parsec-tool"
3LICENSE = "Apache-2.0"
4
5inherit cargo
6
7SRC_URI += "crate://crates.io/parsec-tool/${PV} \
8"
9
10DEPENDS = "clang-native"
11INSANE_SKIP_${PN} += "dev-deps"
12
13do_install() {
14 install -d ${D}/${bindir}
15 install -m 755 "${B}/target/${TARGET_SYS}/release/parsec-tool" "${D}${bindir}/parsec-tool"
16}
17
18require parsec-tool_${PV}.inc
diff --git a/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.3.0.inc b/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.3.0.inc
new file mode 100644
index 0000000..9560dcf
--- /dev/null
+++ b/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.3.0.inc
@@ -0,0 +1,127 @@
1# This file is created from parsec-tool repository Cargo.lock using cargo-bitbake tool
2
3SRC_URI += " \
4 crate://crates.io/aho-corasick/0.7.15 \
5 crate://crates.io/ansi_term/0.11.0 \
6 crate://crates.io/ansi_term/0.12.1 \
7 crate://crates.io/anyhow/1.0.38 \
8 crate://crates.io/atty/0.2.14 \
9 crate://crates.io/autocfg/1.0.1 \
10 crate://crates.io/base64/0.13.0 \
11 crate://crates.io/bincode/1.3.1 \
12 crate://crates.io/bitflags/1.2.1 \
13 crate://crates.io/block-buffer/0.9.0 \
14 crate://crates.io/byteorder/1.4.2 \
15 crate://crates.io/bytes/0.5.6 \
16 crate://crates.io/cc/1.0.66 \
17 crate://crates.io/cfg-if/1.0.0 \
18 crate://crates.io/clap/2.33.3 \
19 crate://crates.io/clap/3.0.0-beta.2 \
20 crate://crates.io/clap_derive/3.0.0-beta.2 \
21 crate://crates.io/cmake/0.1.45 \
22 crate://crates.io/cpuid-bool/0.1.2 \
23 crate://crates.io/derivative/2.2.0 \
24 crate://crates.io/digest/0.9.0 \
25 crate://crates.io/either/1.6.1 \
26 crate://crates.io/env_logger/0.8.3 \
27 crate://crates.io/fixedbitset/0.2.0 \
28 crate://crates.io/form_urlencoded/1.0.0 \
29 crate://crates.io/generic-array/0.14.4 \
30 crate://crates.io/getrandom/0.2.2 \
31 crate://crates.io/hashbrown/0.9.1 \
32 crate://crates.io/heck/0.3.2 \
33 crate://crates.io/hermit-abi/0.1.18 \
34 crate://crates.io/humantime/2.1.0 \
35 crate://crates.io/idna/0.2.1 \
36 crate://crates.io/indexmap/1.6.1 \
37 crate://crates.io/itertools/0.8.2 \
38 crate://crates.io/lazy_static/1.4.0 \
39 crate://crates.io/libc/0.2.86 \
40 crate://crates.io/log/0.4.14 \
41 crate://crates.io/matches/0.1.8 \
42 crate://crates.io/memchr/2.3.4 \
43 crate://crates.io/multimap/0.8.2 \
44 crate://crates.io/num-bigint/0.3.1 \
45 crate://crates.io/num-complex/0.3.1 \
46 crate://crates.io/num-derive/0.3.3 \
47 crate://crates.io/num-integer/0.1.44 \
48 crate://crates.io/num-iter/0.1.42 \
49 crate://crates.io/num-rational/0.3.2 \
50 crate://crates.io/num-traits/0.2.14 \
51 crate://crates.io/num/0.3.1 \
52 crate://crates.io/oid/0.1.1 \
53 crate://crates.io/once_cell/1.5.2 \
54 crate://crates.io/opaque-debug/0.3.0 \
55 crate://crates.io/os_str_bytes/2.4.0 \
56 crate://crates.io/parsec-client/0.12.0 \
57 crate://crates.io/parsec-interface/0.24.0 \
58 crate://crates.io/pem/0.8.3 \
59 crate://crates.io/percent-encoding/2.1.0 \
60 crate://crates.io/petgraph/0.5.1 \
61 crate://crates.io/picky-asn1-der/0.2.4 \
62 crate://crates.io/picky-asn1/0.3.1 \
63 crate://crates.io/ppv-lite86/0.2.10 \
64 crate://crates.io/proc-macro-error-attr/1.0.4 \
65 crate://crates.io/proc-macro-error/1.0.4 \
66 crate://crates.io/proc-macro2/1.0.24 \
67 crate://crates.io/prost-build/0.6.1 \
68 crate://crates.io/prost-derive/0.6.1 \
69 crate://crates.io/prost-types/0.6.1 \
70 crate://crates.io/prost/0.6.1 \
71 crate://crates.io/psa-crypto-sys/0.8.0 \
72 crate://crates.io/psa-crypto/0.8.0 \
73 crate://crates.io/quote/1.0.9 \
74 crate://crates.io/rand/0.8.3 \
75 crate://crates.io/rand_chacha/0.3.0 \
76 crate://crates.io/rand_core/0.6.2 \
77 crate://crates.io/rand_hc/0.3.0 \
78 crate://crates.io/redox_syscall/0.2.5 \
79 crate://crates.io/regex-syntax/0.6.22 \
80 crate://crates.io/regex/1.4.3 \
81 crate://crates.io/remove_dir_all/0.5.3 \
82 crate://crates.io/same-file/1.0.6 \
83 crate://crates.io/secrecy/0.7.0 \
84 crate://crates.io/serde/1.0.123 \
85 crate://crates.io/serde_bytes/0.11.5 \
86 crate://crates.io/serde_derive/1.0.123 \
87 crate://crates.io/sha2/0.9.3 \
88 crate://crates.io/strsim/0.10.0 \
89 crate://crates.io/strsim/0.8.0 \
90 crate://crates.io/structopt-derive/0.4.14 \
91 crate://crates.io/structopt/0.3.21 \
92 crate://crates.io/syn/1.0.60 \
93 crate://crates.io/synstructure/0.12.4 \
94 crate://crates.io/tempfile/3.2.0 \
95 crate://crates.io/termcolor/1.1.2 \
96 crate://crates.io/textwrap/0.11.0 \
97 crate://crates.io/textwrap/0.12.1 \
98 crate://crates.io/thiserror-impl/1.0.23 \
99 crate://crates.io/thiserror/1.0.23 \
100 crate://crates.io/thread_local/1.1.3 \
101 crate://crates.io/tinyvec/1.1.1 \
102 crate://crates.io/tinyvec_macros/0.1.0 \
103 crate://crates.io/typenum/1.12.0 \
104 crate://crates.io/unicode-bidi/0.3.4 \
105 crate://crates.io/unicode-normalization/0.1.17 \
106 crate://crates.io/unicode-segmentation/1.7.1 \
107 crate://crates.io/unicode-width/0.1.8 \
108 crate://crates.io/unicode-xid/0.2.1 \
109 crate://crates.io/url/2.2.0 \
110 crate://crates.io/users/0.10.0 \
111 crate://crates.io/uuid/0.8.2 \
112 crate://crates.io/vec_map/0.8.2 \
113 crate://crates.io/version_check/0.9.2 \
114 crate://crates.io/walkdir/2.3.1 \
115 crate://crates.io/wasi/0.10.2+wasi-snapshot-preview1 \
116 crate://crates.io/which/3.1.1 \
117 crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
118 crate://crates.io/winapi-util/0.1.5 \
119 crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
120 crate://crates.io/winapi/0.3.9 \
121 crate://crates.io/zeroize/1.2.0 \
122 crate://crates.io/zeroize_derive/1.0.1 \
123"
124
125LIC_FILES_CHKSUM = " \
126 file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
127"