summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Antonov <anton.antonov@arm.com>2021-04-09 12:14:07 +0100
committerArmin Kuster <akuster808@gmail.com>2021-04-12 07:06:46 -0700
commit409a8d4276efd9bf8c06a7ccf6ea85fb6e83b04a (patch)
tree3e5f053f021cf8f1154d16bc65f40ee9969142d0
parent6ad6bb0141defbcf25828e39314145eb43dea06b (diff)
downloadmeta-security-409a8d4276efd9bf8c06a7ccf6ea85fb6e83b04a.tar.gz
Add meta-parsec layer into meta-security.
The layer contains recipes for Parsec service version 0.7.0 and parsec-tool version 0.3.0. The Parsec service is built with all supported providers and deployed with the MbedCrypto provider enabled. Both systemd and sysv-init are supported. Signed-off-by: Anton Antonov <Anton.Antonov@arm.com> Signed-off-by: Armin Kuster <akuster808@gmail.com>
-rw-r--r--meta-parsec/README.md186
-rw-r--r--meta-parsec/conf/layer.conf14
-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
10 files changed, 661 insertions, 0 deletions
diff --git a/meta-parsec/README.md b/meta-parsec/README.md
new file mode 100644
index 0000000..a2736b6
--- /dev/null
+++ b/meta-parsec/README.md
@@ -0,0 +1,186 @@
1meta-parsec layer
2==============
3
4This layer contains recipes for the Parsec service with Mbed-Crypto,
5Pkcs11 and TPM providers and parsec tools.
6
7Dependencies
8============
9
10This layer depends on:
11
12 URI: git://git.openembedded.org/meta-openembedded
13 branch: master
14 revision: HEAD
15 prio: default
16
17 URI git://git.yoctoproject.org/meta-security
18 branch: master
19 revision: HEAD
20 prio: default
21
22 URI https://github.com/meta-rust/meta-rust.git
23 branch: master
24 revision: HEAD
25 prio: default
26
27 URI https://github.com/kraj/meta-clang.git
28 branch: master
29 revision: HEAD
30 prio: default
31
32Adding the meta-parsec layer to your build
33==========================================
34
35In order to use this layer, you need to make the build system aware of it.
36
37You can add it to the build system by adding the
38location of the meta-parsec layer to bblayers.conf, along with any
39other layers needed. e.g.:
40
41 BBLAYERS ?= " \
42 /path/to/yocto/meta \
43 /path/to/yocto/meta-yocto \
44 /path/to/yocto/meta-yocto-bsp \
45 /path/to/meta-openembedded/meta-oe \
46 /path/to/meta-openembedded/meta-python \
47 /path/to/meta-rust \
48 /path/to/meta-clang \
49 /path/to/meta-security/meta-tpm \
50 /path/to/meta-security/meta-parsec \
51 "
52
53To include the Parsec service into your image add following into the
54local.conf:
55
56 IMAGE_INSTALL_append = " parsec-service"
57
58 The Parsec service will be deployed into the image built with all the supported
59providers and with the default config file from the Parsec repository:
60https://github.com/parallaxsecond/parsec/blob/main/config.toml
61 The default Parsec service config file contains the MbedCrypto provider
62enabled. The config file needs to be updated to use the Parsec service
63with other providers like TPM or PKCS11. The required procedures are
64covered in Parsec documentation.
65https://parallaxsecond.github.io/parsec-book/
66
67Updating recipes
68================
69
70 The parsec-service and parsec-tool recipes use include files with lists
71of all rust crates required. This allows bitbake to fetch all the necessary
72dependent crates, as well as a pegged version of the crates.io index,
73to ensure maximum reproducibility.
74 It's recommended to use cargo-bitbake to generate include files for new
75versions of parsec recipes.
76https://github.com/meta-rust/cargo-bitbake
77
78 When you have crago-bitbake built:
791. Checkout the required version of parsec repository.
802. Run cargo-bitbake inside the repository. It will produce a BB file.
813. Create a new include file with SRC_URI and LIC_FILES_CHKSUM from the BB file.
82
83Manual testing with runqemu
84===========================
85
86 This layer also contains a recipe for pasec-tool which can be used for
87manual testing of the Parsec service:
88
89 IMAGE_INSTALL_append += " parsec-tools"
90
91 There are a series of Parsec Demo videos showing how to use parsec-tool
92to test the Parsec service base functionality:
93https://www.youtube.com/watch?v=ido0CyUdMHM&list=PLKjl7IFAwc4S7WQqqphCsyy6DPDxJ2Skg&index=4
94
95 You can use runqemu to start a VM with a built image file and run
96manual tests with parsec-tool.
97
981. MbedCrypto provider
99 The default Parsec service config file contains the MbedCrypto provider
100enabled. No changes required for manual testing.
101
1022. PKCS11 provider
103 The Software HSM can be used for manual testing of the provider by
104including it into your test image:
105
106 IMAGE_INSTALL_append += " softhsm"
107
108Inside the running VM:
109- Stop Parsec
110```bash
111systemctl stop parsec
112```
113- Initialise a token and notice the result slot number
114```bash
115softhsm2-util --init-token --slot 0 --label "Parsec Service" --pin 123456 --so-pin 123456
116```
117- Change the token ownership:
118```bash
119for d in /var/lib/softhsm/tokens/*; do chown -R parsec $d; done
120```
121- Enable the PKCS11 provider and update its parameters in the Parsec config file
122/etc/parsec/config.toml
123```
124library_path = "/usr/lib/softhsm/libsofthsm2.so"
125slot_number = <slot number>
126user_pin = "123456"
127```
128- Start Parsec
129```bash
130systemctl start parsec
131```
132
1333. TPM provider
134 The IBM Software TPM service can be used for manual testing of the provider by
135including it into your test image:
136
137 IMAGE_INSTALL_append += " ibmswtpm2 tpm2-tools libtss2 libtss2-tcti-mssim"
138
139Inside the running VM:
140- Stop Parsec
141```bash
142systemctl stop parsec
143```
144- Start and configure the Software TPM server
145```bash
146 /usr/bin/tpm_server &
147 sleep 5
148 /usr/bin/tpm2_startup -c -T mssim
149 /usr/bin/tpm2_changeauth -c owner tpm_pass
150```
151- Enable the TPM provider and update its parameters in the Parsec config file
152/etc/parsec/config.toml
153```
154tcti = "mssim"
155owner_hierarchy_auth = "hex:74706d5f70617373"
156```
157- Start Parsec
158```bash
159systemctl start parsec
160```
161
162Maintenance
163-----------
164
165Send pull requests, patches, comments or questions to yocto@yoctoproject.org
166
167When sending single patches, please using something like:
168'git send-email -1 --to yocto@yoctoproject.org --subject-prefix=meta-parsec][PATCH'
169
170These values can be set as defaults for this repository:
171
172$ git config sendemail.to yocto@yoctoproject.org
173$ git config format.subjectPrefix meta-parsec][PATCH
174
175Now you can just do 'git send-email origin/master' to send all local patches.
176
177Maintainers: Anton Antonov <Anton.Antonov@arm.com>
178 Armin Kuster <akuster808@gmail.com>
179
180
181License
182=======
183
184All metadata is MIT licensed unless otherwise stated. Source code included
185in tree for individual recipes is under the LICENSE stated in each recipe
186(.bb file) unless otherwise stated.
diff --git a/meta-parsec/conf/layer.conf b/meta-parsec/conf/layer.conf
new file mode 100644
index 0000000..2d4aa12
--- /dev/null
+++ b/meta-parsec/conf/layer.conf
@@ -0,0 +1,14 @@
1# We have a conf and classes directory, add to BBPATH
2BBPATH .= ":${LAYERDIR}"
3
4# We have a recipes directory, add to BBFILES
5BBFILES += "${LAYERDIR}/recipes*/*/*.bb ${LAYERDIR}/recipes*/*/*.bbappend"
6
7BBFILE_COLLECTIONS += "parsec-layer"
8BBFILE_PATTERN_parsec-layer = "^${LAYERDIR}/"
9BBFILE_PRIORITY_parsec-layer = "5"
10
11LAYERSERIES_COMPAT_parsec-layer = "hardknott gatesgarth"
12
13LAYERDEPENDS_parsec-layer = "core rust-layer clang-layer tpm-layer"
14BBLAYERS_LAYERINDEX_NAME_parsec-layer = "meta-parsec"
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"