diff options
| author | Anton Antonov <anton.antonov@arm.com> | 2021-04-09 12:14:07 +0100 |
|---|---|---|
| committer | Armin Kuster <akuster808@gmail.com> | 2021-04-12 07:06:46 -0700 |
| commit | 409a8d4276efd9bf8c06a7ccf6ea85fb6e83b04a (patch) | |
| tree | 3e5f053f021cf8f1154d16bc65f40ee9969142d0 | |
| parent | 6ad6bb0141defbcf25828e39314145eb43dea06b (diff) | |
| download | meta-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>
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 @@ | |||
| 1 | meta-parsec layer | ||
| 2 | ============== | ||
| 3 | |||
| 4 | This layer contains recipes for the Parsec service with Mbed-Crypto, | ||
| 5 | Pkcs11 and TPM providers and parsec tools. | ||
| 6 | |||
| 7 | Dependencies | ||
| 8 | ============ | ||
| 9 | |||
| 10 | This 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 | |||
| 32 | Adding the meta-parsec layer to your build | ||
| 33 | ========================================== | ||
| 34 | |||
| 35 | In order to use this layer, you need to make the build system aware of it. | ||
| 36 | |||
| 37 | You can add it to the build system by adding the | ||
| 38 | location of the meta-parsec layer to bblayers.conf, along with any | ||
| 39 | other 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 | |||
| 53 | To include the Parsec service into your image add following into the | ||
| 54 | local.conf: | ||
| 55 | |||
| 56 | IMAGE_INSTALL_append = " parsec-service" | ||
| 57 | |||
| 58 | The Parsec service will be deployed into the image built with all the supported | ||
| 59 | providers and with the default config file from the Parsec repository: | ||
| 60 | https://github.com/parallaxsecond/parsec/blob/main/config.toml | ||
| 61 | The default Parsec service config file contains the MbedCrypto provider | ||
| 62 | enabled. The config file needs to be updated to use the Parsec service | ||
| 63 | with other providers like TPM or PKCS11. The required procedures are | ||
| 64 | covered in Parsec documentation. | ||
| 65 | https://parallaxsecond.github.io/parsec-book/ | ||
| 66 | |||
| 67 | Updating recipes | ||
| 68 | ================ | ||
| 69 | |||
| 70 | The parsec-service and parsec-tool recipes use include files with lists | ||
| 71 | of all rust crates required. This allows bitbake to fetch all the necessary | ||
| 72 | dependent crates, as well as a pegged version of the crates.io index, | ||
| 73 | to ensure maximum reproducibility. | ||
| 74 | It's recommended to use cargo-bitbake to generate include files for new | ||
| 75 | versions of parsec recipes. | ||
| 76 | https://github.com/meta-rust/cargo-bitbake | ||
| 77 | |||
| 78 | When you have crago-bitbake built: | ||
| 79 | 1. Checkout the required version of parsec repository. | ||
| 80 | 2. Run cargo-bitbake inside the repository. It will produce a BB file. | ||
| 81 | 3. Create a new include file with SRC_URI and LIC_FILES_CHKSUM from the BB file. | ||
| 82 | |||
| 83 | Manual testing with runqemu | ||
| 84 | =========================== | ||
| 85 | |||
| 86 | This layer also contains a recipe for pasec-tool which can be used for | ||
| 87 | manual 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 | ||
| 92 | to test the Parsec service base functionality: | ||
| 93 | https://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 | ||
| 96 | manual tests with parsec-tool. | ||
| 97 | |||
| 98 | 1. MbedCrypto provider | ||
| 99 | The default Parsec service config file contains the MbedCrypto provider | ||
| 100 | enabled. No changes required for manual testing. | ||
| 101 | |||
| 102 | 2. PKCS11 provider | ||
| 103 | The Software HSM can be used for manual testing of the provider by | ||
| 104 | including it into your test image: | ||
| 105 | |||
| 106 | IMAGE_INSTALL_append += " softhsm" | ||
| 107 | |||
| 108 | Inside the running VM: | ||
| 109 | - Stop Parsec | ||
| 110 | ```bash | ||
| 111 | systemctl stop parsec | ||
| 112 | ``` | ||
| 113 | - Initialise a token and notice the result slot number | ||
| 114 | ```bash | ||
| 115 | softhsm2-util --init-token --slot 0 --label "Parsec Service" --pin 123456 --so-pin 123456 | ||
| 116 | ``` | ||
| 117 | - Change the token ownership: | ||
| 118 | ```bash | ||
| 119 | for 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 | ``` | ||
| 124 | library_path = "/usr/lib/softhsm/libsofthsm2.so" | ||
| 125 | slot_number = <slot number> | ||
| 126 | user_pin = "123456" | ||
| 127 | ``` | ||
| 128 | - Start Parsec | ||
| 129 | ```bash | ||
| 130 | systemctl start parsec | ||
| 131 | ``` | ||
| 132 | |||
| 133 | 3. TPM provider | ||
| 134 | The IBM Software TPM service can be used for manual testing of the provider by | ||
| 135 | including it into your test image: | ||
| 136 | |||
| 137 | IMAGE_INSTALL_append += " ibmswtpm2 tpm2-tools libtss2 libtss2-tcti-mssim" | ||
| 138 | |||
| 139 | Inside the running VM: | ||
| 140 | - Stop Parsec | ||
| 141 | ```bash | ||
| 142 | systemctl 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 | ``` | ||
| 154 | tcti = "mssim" | ||
| 155 | owner_hierarchy_auth = "hex:74706d5f70617373" | ||
| 156 | ``` | ||
| 157 | - Start Parsec | ||
| 158 | ```bash | ||
| 159 | systemctl start parsec | ||
| 160 | ``` | ||
| 161 | |||
| 162 | Maintenance | ||
| 163 | ----------- | ||
| 164 | |||
| 165 | Send pull requests, patches, comments or questions to yocto@yoctoproject.org | ||
| 166 | |||
| 167 | When sending single patches, please using something like: | ||
| 168 | 'git send-email -1 --to yocto@yoctoproject.org --subject-prefix=meta-parsec][PATCH' | ||
| 169 | |||
| 170 | These 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 | |||
| 175 | Now you can just do 'git send-email origin/master' to send all local patches. | ||
| 176 | |||
| 177 | Maintainers: Anton Antonov <Anton.Antonov@arm.com> | ||
| 178 | Armin Kuster <akuster808@gmail.com> | ||
| 179 | |||
| 180 | |||
| 181 | License | ||
| 182 | ======= | ||
| 183 | |||
| 184 | All metadata is MIT licensed unless otherwise stated. Source code included | ||
| 185 | in 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 | ||
| 2 | BBPATH .= ":${LAYERDIR}" | ||
| 3 | |||
| 4 | # We have a recipes directory, add to BBFILES | ||
| 5 | BBFILES += "${LAYERDIR}/recipes*/*/*.bb ${LAYERDIR}/recipes*/*/*.bbappend" | ||
| 6 | |||
| 7 | BBFILE_COLLECTIONS += "parsec-layer" | ||
| 8 | BBFILE_PATTERN_parsec-layer = "^${LAYERDIR}/" | ||
| 9 | BBFILE_PRIORITY_parsec-layer = "5" | ||
| 10 | |||
| 11 | LAYERSERIES_COMPAT_parsec-layer = "hardknott gatesgarth" | ||
| 12 | |||
| 13 | LAYERDEPENDS_parsec-layer = "core rust-layer clang-layer tpm-layer" | ||
| 14 | BBLAYERS_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 | |||
| 2 | Use cryptoki v0.1.1 which supports the "generate-bindings" feature | ||
| 3 | required for building Parsec service 0.7.0 in Yocto. | ||
| 4 | |||
| 5 | Signed-off-by: Anton Antonov <Anton.Antonov@arm.com> | ||
| 6 | Upstream-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 | ||
| 2 | d /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 | |||
| 22 | test -x /usr/libexec/parsec/parsec || exit 0 | ||
| 23 | |||
| 24 | case "$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 | ||
| 61 | esac | ||
| 62 | |||
| 63 | exit 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 | |||
| 2 | Run the Parsec service as parsec user in /var/lib/parsec/ working directory. | ||
| 3 | |||
| 4 | Signed-off-by: Anton Antonov <Anton.Antonov@arm.com> | ||
| 5 | Upstream-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 @@ | |||
| 1 | SUMMARY = "Platform AbstRaction for SECurity Daemon" | ||
| 2 | HOMEPAGE = "https://github.com/parallaxsecond/parsec" | ||
| 3 | LICENSE = "Apache-2.0" | ||
| 4 | |||
| 5 | inherit cargo | ||
| 6 | |||
| 7 | SRC_URI += "crate://crates.io/parsec-service/${PV} \ | ||
| 8 | file://parsec_init \ | ||
| 9 | file://systemd.patch \ | ||
| 10 | file://parsec-tmpfiles.conf \ | ||
| 11 | " | ||
| 12 | |||
| 13 | DEPENDS = "clang-native tpm2-tss" | ||
| 14 | INSANE_SKIP_${PN} += "dev-deps" | ||
| 15 | |||
| 16 | CARGO_BUILD_FLAGS += " --features all-providers,cryptoki/generate-bindings,tss-esapi/generate-bindings" | ||
| 17 | |||
| 18 | inherit systemd | ||
| 19 | SYSTEMD_SERVICE_${PN} = "parsec.service" | ||
| 20 | |||
| 21 | inherit update-rc.d | ||
| 22 | INITSCRIPT_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 | ||
| 26 | PARSEC_CONFIG ?= "${S}/config.toml" | ||
| 27 | |||
| 28 | do_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 | |||
| 54 | inherit useradd | ||
| 55 | USERADD_PACKAGES = "${PN}" | ||
| 56 | USERADD_PARAM_${PN} = "-r -g parsec -s /bin/false -d ${localstatedir}/lib/parsec parsec" | ||
| 57 | GROUPADD_PARAM_${PN} = "-r parsec" | ||
| 58 | |||
| 59 | FILES_${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 | |||
| 67 | require 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 | |||
| 3 | SRC_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 | |||
| 145 | LIC_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 @@ | |||
| 1 | SUMMARY = "Parsec Command Line Interface" | ||
| 2 | HOMEPAGE = "https://github.com/parallaxsecond/parsec-tool" | ||
| 3 | LICENSE = "Apache-2.0" | ||
| 4 | |||
| 5 | inherit cargo | ||
| 6 | |||
| 7 | SRC_URI += "crate://crates.io/parsec-tool/${PV} \ | ||
| 8 | " | ||
| 9 | |||
| 10 | DEPENDS = "clang-native" | ||
| 11 | INSANE_SKIP_${PN} += "dev-deps" | ||
| 12 | |||
| 13 | do_install() { | ||
| 14 | install -d ${D}/${bindir} | ||
| 15 | install -m 755 "${B}/target/${TARGET_SYS}/release/parsec-tool" "${D}${bindir}/parsec-tool" | ||
| 16 | } | ||
| 17 | |||
| 18 | require 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 | |||
| 3 | SRC_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 | |||
| 125 | LIC_FILES_CHKSUM = " \ | ||
| 126 | file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ | ||
| 127 | " | ||
