summaryrefslogtreecommitdiffstats
path: root/recipes-sota/rvi-sota-client
diff options
context:
space:
mode:
authorAnton Gerasimov <anton@advancedtelematic.com>2017-03-30 17:48:10 +0200
committerAnton Gerasimov <anton@advancedtelematic.com>2017-04-03 12:10:15 +0200
commit501e07acd803df6f9264c4206b4b9529006f287a (patch)
tree20e5bd1f9b3ffd4f230c9c9f5ac87fa85e626617 /recipes-sota/rvi-sota-client
parent95b5db5a2714d429d31c42d079b192e8edb1a079 (diff)
downloadmeta-updater-501e07acd803df6f9264c4206b4b9529006f287a.tar.gz
Merge from meta-agl-extra
Diffstat (limited to 'recipes-sota/rvi-sota-client')
-rw-r--r--recipes-sota/rvi-sota-client/rvi-sota-client_git.bb161
1 files changed, 113 insertions, 48 deletions
diff --git a/recipes-sota/rvi-sota-client/rvi-sota-client_git.bb b/recipes-sota/rvi-sota-client/rvi-sota-client_git.bb
index c469ac7..9a3dbf9 100644
--- a/recipes-sota/rvi-sota-client/rvi-sota-client_git.bb
+++ b/recipes-sota/rvi-sota-client/rvi-sota-client_git.bb
@@ -8,107 +8,154 @@ inherit cargo systemd
8 8
9S = "${WORKDIR}/git" 9S = "${WORKDIR}/git"
10 10
11SRCREV = "022cf8501f9eb84bf334a2490e6e0c67842882ab" 11# When changing this, don't forget to:
12# 1) Update PV
13# 2) Check that Cargo.lock hasn't changed with git diff old..new Cargo.lock
14SRCREV = "878aa386e61bc253e4fae624ae62507710cd23f3"
12 15
13# Generate with: 16# Generate with:
14# git describe --tags | cut -b2- 17# git describe --tags | cut -b2-
15PV = "0.2.30-2-g022cf85" 18# or from the rvi_sota_client repo:
19# make package-version
20PV = "0.2.32-131-g878aa38"
16 21
17BBCLASSEXTEND = "native" 22BBCLASSEXTEND = "native"
18 23
19FILES_${PN} = " \ 24FILES_${PN} = " \
25 /lib64 \
26 ${bindir}/canonical_json.py \
20 ${bindir}/sota_client \ 27 ${bindir}/sota_client \
21 ${bindir}/sota_sysinfo.sh \ 28 ${bindir}/sota_sysinfo.sh \
22 ${bindir}/system_info.sh \ 29 ${bindir}/system_info.sh \
23 ${bindir}/sota_ostree.sh \ 30 ${bindir}/sota_ostree.sh \
31 ${bindir}/sota_prov.sh \
24 ${sysconfdir}/sota_client.version \ 32 ${sysconfdir}/sota_client.version \
25 ${sysconfdir}/sota_certificates \ 33 ${sysconfdir}/sota_certificates \
34 /var/sota/sota_provisioning_credentials.p12 \
35 /var/sota/sota_provisioning_url.env \
36 ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/sota_client_autoprovision.service', '', d)} \
26 ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/sota_client.service', '', d)} \ 37 ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/sota_client.service', '', d)} \
27 " 38 "
28 39
40# list of dependencies can be generated from Cargo.lock by running
41# cat Cargo.lock | sed -e '1,/metadata/ d' Cargo.lock | awk '{print "crate://crates.io/"$2 "/" $3" \\"}'
29SRC_URI = " \ 42SRC_URI = " \
30crate://crates.io/aho-corasick/0.5.3 \ 43crate://crates.io/aho-corasick/0.5.3 \
31crate://crates.io/bit-set/0.2.0 \ 44crate://crates.io/aho-corasick/0.6.3 \
45crate://crates.io/base64/0.4.1 \
46crate://crates.io/bit-set/0.4.0 \
32crate://crates.io/bit-vec/0.4.3 \ 47crate://crates.io/bit-vec/0.4.3 \
33crate://crates.io/bitflags/0.4.0 \
34crate://crates.io/bitflags/0.7.0 \ 48crate://crates.io/bitflags/0.7.0 \
35crate://crates.io/bytes/0.3.0 \ 49crate://crates.io/byteorder/1.0.0 \
50crate://crates.io/bytes/0.4.1 \
36crate://crates.io/cfg-if/0.1.0 \ 51crate://crates.io/cfg-if/0.1.0 \
37crate://crates.io/chan-signal/0.1.7 \ 52crate://crates.io/chan/0.1.19 \
38crate://crates.io/chan/0.1.18 \ 53crate://crates.io/chan-signal/0.2.0 \
39crate://crates.io/cookie/0.2.5 \ 54crate://crates.io/chrono/0.3.0 \
40crate://crates.io/crossbeam/0.2.10 \ 55crate://crates.io/crossbeam/0.2.10 \
41crate://crates.io/dbus/0.4.1 \ 56crate://crates.io/dbus/0.5.2 \
42crate://crates.io/env_logger/0.3.5 \ 57crate://crates.io/deque/0.3.1 \
43crate://crates.io/gcc/0.3.40 \ 58crate://crates.io/dtoa/0.4.1 \
59crate://crates.io/env_logger/0.4.2 \
60crate://crates.io/error-chain/0.7.2 \
61crate://crates.io/foreign-types/0.2.0 \
62crate://crates.io/gcc/0.3.45 \
44crate://crates.io/gdi32-sys/0.2.0 \ 63crate://crates.io/gdi32-sys/0.2.0 \
45crate://crates.io/getopts/0.2.14 \ 64crate://crates.io/getopts/0.2.14 \
46crate://crates.io/hpack/0.2.0 \
47crate://crates.io/httparse/1.2.1 \ 65crate://crates.io/httparse/1.2.1 \
48crate://crates.io/hyper/0.9.14 \ 66crate://crates.io/hyper/0.10.5 \
49crate://crates.io/idna/0.1.0 \ 67crate://crates.io/idna/0.1.0 \
68crate://crates.io/iovec/0.1.0 \
69crate://crates.io/itoa/0.3.1 \
50crate://crates.io/kernel32-sys/0.2.2 \ 70crate://crates.io/kernel32-sys/0.2.2 \
51crate://crates.io/language-tags/0.2.2 \ 71crate://crates.io/language-tags/0.2.2 \
52crate://crates.io/lazy_static/0.1.16 \ 72crate://crates.io/lazy_static/0.2.5 \
53crate://crates.io/lazy_static/0.2.2 \ 73crate://crates.io/libc/0.2.21 \
54crate://crates.io/lazycell/0.4.0 \ 74crate://crates.io/log/0.3.7 \
55crate://crates.io/libc/0.2.18 \
56crate://crates.io/log/0.3.6 \
57crate://crates.io/matches/0.1.4 \ 75crate://crates.io/matches/0.1.4 \
58crate://crates.io/memchr/0.1.11 \ 76crate://crates.io/memchr/0.1.11 \
59crate://crates.io/mime/0.2.2 \ 77crate://crates.io/memchr/1.0.1 \
60crate://crates.io/mio/0.6.1 \ 78crate://crates.io/metadeps/1.1.1 \
61crate://crates.io/miow/0.1.4 \ 79crate://crates.io/mime/0.2.3 \
62crate://crates.io/net2/0.2.26 \
63crate://crates.io/nix/0.7.0 \
64crate://crates.io/nom/1.2.4 \ 80crate://crates.io/nom/1.2.4 \
65crate://crates.io/num_cpus/1.2.0 \ 81crate://crates.io/num/0.1.37 \
66crate://crates.io/openssl-sys/0.9.3 \ 82crate://crates.io/num-integer/0.1.33 \
67crate://crates.io/openssl/0.9.3 \ 83crate://crates.io/num-iter/0.1.33 \
68crate://crates.io/pkg-config/0.3.8 \ 84crate://crates.io/num-traits/0.1.37 \
85crate://crates.io/num_cpus/1.3.0 \
86crate://crates.io/openssl/0.9.10 \
87crate://crates.io/openssl-sys/0.9.10 \
88crate://crates.io/pem/0.2.0 \
89crate://crates.io/pkg-config/0.3.9 \
90crate://crates.io/quote/0.3.15 \
69crate://crates.io/rand/0.3.15 \ 91crate://crates.io/rand/0.3.15 \
70crate://crates.io/regex-syntax/0.3.9 \ 92crate://crates.io/rayon/0.6.0 \
93crate://crates.io/redox_syscall/0.1.17 \
71crate://crates.io/regex/0.1.80 \ 94crate://crates.io/regex/0.1.80 \
95crate://crates.io/regex/0.2.1 \
96crate://crates.io/regex-syntax/0.3.9 \
97crate://crates.io/regex-syntax/0.4.0 \
98crate://crates.io/ring/0.7.1 \
72crate://crates.io/rust-crypto/0.2.36 \ 99crate://crates.io/rust-crypto/0.2.36 \
73crate://crates.io/rustc-serialize/0.3.22 \ 100crate://crates.io/rustc-serialize/0.3.23 \
74crate://crates.io/rustc_version/0.1.7 \ 101crate://crates.io/rustc_version/0.1.7 \
75crate://crates.io/semver/0.1.20 \ 102crate://crates.io/semver/0.1.20 \
103crate://crates.io/serde/0.9.11 \
104crate://crates.io/serde_codegen_internals/0.14.1 \
105crate://crates.io/serde_derive/0.9.11 \
106crate://crates.io/serde_json/0.9.9 \
76crate://crates.io/sha1/0.2.0 \ 107crate://crates.io/sha1/0.2.0 \
77crate://crates.io/slab/0.3.0 \ 108crate://crates.io/syn/0.11.9 \
78crate://crates.io/solicit/0.4.4 \ 109crate://crates.io/synom/0.11.3 \
79crate://crates.io/thread-id/2.0.0 \ 110crate://crates.io/thread-id/2.0.0 \
111crate://crates.io/thread-id/3.0.0 \
80crate://crates.io/thread_local/0.2.7 \ 112crate://crates.io/thread_local/0.2.7 \
81crate://crates.io/time/0.1.35 \ 113crate://crates.io/thread_local/0.3.3 \
114crate://crates.io/time/0.1.36 \
82crate://crates.io/toml/0.2.1 \ 115crate://crates.io/toml/0.2.1 \
83crate://crates.io/traitobject/0.0.1 \ 116crate://crates.io/toml/0.3.1 \
117crate://crates.io/traitobject/0.1.0 \
118crate://crates.io/tungstenite/0.1.1 \
84crate://crates.io/typeable/0.1.2 \ 119crate://crates.io/typeable/0.1.2 \
85crate://crates.io/unicase/1.4.0 \ 120crate://crates.io/unicase/1.4.0 \
86crate://crates.io/unicode-bidi/0.2.3 \ 121crate://crates.io/unicode-bidi/0.2.5 \
87crate://crates.io/unicode-normalization/0.1.2 \ 122crate://crates.io/unicode-normalization/0.1.4 \
123crate://crates.io/unicode-xid/0.0.4 \
88crate://crates.io/unix_socket/0.5.0 \ 124crate://crates.io/unix_socket/0.5.0 \
89crate://crates.io/url/1.2.3 \ 125crate://crates.io/unreachable/0.1.1 \
126crate://crates.io/untrusted/0.3.2 \
127crate://crates.io/url/1.4.0 \
90crate://crates.io/user32-sys/0.2.0 \ 128crate://crates.io/user32-sys/0.2.0 \
129crate://crates.io/utf-8/0.7.0 \
91crate://crates.io/utf8-ranges/0.1.3 \ 130crate://crates.io/utf8-ranges/0.1.3 \
131crate://crates.io/utf8-ranges/1.0.0 \
132crate://crates.io/uuid/0.4.0 \
92crate://crates.io/void/1.0.2 \ 133crate://crates.io/void/1.0.2 \
93crate://crates.io/winapi-build/0.1.1 \
94crate://crates.io/winapi/0.2.8 \ 134crate://crates.io/winapi/0.2.8 \
95crate://crates.io/ws/0.5.3 \ 135crate://crates.io/winapi-build/0.1.1 \
96crate://crates.io/ws2_32-sys/0.2.1 \
97git://github.com/advancedtelematic/rvi_sota_client \ 136git://github.com/advancedtelematic/rvi_sota_client \
98" 137"
138
99SRC_URI[index.md5sum] = "79f10f436dbf26737cc80445746f16b4" 139SRC_URI[index.md5sum] = "79f10f436dbf26737cc80445746f16b4"
100SRC_URI[index.sha256sum] = "86114b93f1f51aaf0aec3af0751d214b351f4ff9839ba031315c1b19dcbb1913" 140SRC_URI[index.sha256sum] = "86114b93f1f51aaf0aec3af0751d214b351f4ff9839ba031315c1b19dcbb1913"
101 141
102SYSTEMD_SERVICE_${PN} = "sota_client.service" 142SYSTEMD_SERVICE_${PN} = "sota_client.service sota_client_autoprovision.service"
103 143
104DEPENDS += " openssl dbus" 144DEPENDS += " openssl openssl-native dbus "
105RDEPENDS_${PN} = " libcrypto \ 145RDEPENDS_${PN} = " libcrypto \
106 libssl \ 146 libssl \
107 bash \ 147 bash \
108 lshw \ 148 lshw \
109 jq \ 149 jq \
150 curl \
151 python \
152 python-canonicaljson \
153 python-json \
110 " 154 "
111 155
156export SOTA_AUTOPROVISION_CREDENTIALS
157export SOTA_AUTOPROVISION_URL
158
112do_compile_prepend() { 159do_compile_prepend() {
113 export SOTA_VERSION=$(make sota-version) 160 export SOTA_VERSION=$(make sota-version)
114} 161}
@@ -116,20 +163,38 @@ do_compile_prepend() {
116do_install() { 163do_install() {
117 install -d ${D}${bindir} 164 install -d ${D}${bindir}
118 install -m 0755 target/${TARGET_SYS}/release/sota_client ${D}${bindir} 165 install -m 0755 target/${TARGET_SYS}/release/sota_client ${D}${bindir}
119 install -m 0755 run/sota_sysinfo.sh ${D}${bindir} 166 install -m 0755 ${S}/run/sota_sysinfo.sh ${D}${bindir}
120 ln -fs ${bindir}/sota_sysinfo.sh ${D}${bindir}/system_info.sh # For compatibilty with old sota.toml files 167 ln -fs ${bindir}/sota_sysinfo.sh ${D}${bindir}/system_info.sh # For compatibilty with old sota.toml files
121 install -m 0755 run/sota_ostree.sh ${D}${bindir} 168 install -m 0755 ${S}/run/sota_ostree.sh ${D}${bindir}
169 install -m 0755 ${S}/run/sota_prov.sh ${D}${bindir}
170 install -m 0755 ${S}/run/canonical_json.py ${D}${bindir}
122 171
123 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then 172 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
124 install -d ${D}${systemd_unitdir}/system 173 install -d ${D}/${systemd_unitdir}/system
125 if ${@bb.utils.contains('DISTRO_FEATURES', 'sota', 'true', 'false', d)}; then 174 if [ -n "$SOTA_AUTOPROVISION_CREDENTIALS" ]; then
126 install -c ${S}/run/sota_client_ostree.service ${D}${systemd_unitdir}/system/sota_client.service 175 install -c ${S}/run/sota_client_uptane_auto.service ${D}${systemd_unitdir}/system/sota_client.service
127 else 176 else
128 install -c ${S}/run/sota_client.service ${D}${systemd_unitdir}/system/sota_client.service 177 install -c ${S}/run/sota_client_ostree.service ${D}${systemd_unitdir}/system/sota_client.service
129 fi 178 fi
179 install -c ${S}/run/sota_client_autoprovision.service ${D}${systemd_unitdir}/system/sota_client_autoprovision.service
130 fi 180 fi
131 181
132 install -d ${D}${sysconfdir} 182 install -d ${D}${sysconfdir}
133 echo `git log -1 --pretty=format:%H` > ${D}${sysconfdir}/sota_client.version 183 echo `git log -1 --pretty=format:%H` > ${D}${sysconfdir}/sota_client.version
134 install -c ${S}/run/sota_certificates ${D}${sysconfdir} 184 install -c ${S}/run/sota_certificates ${D}${sysconfdir}
185 ln -fs /lib ${D}/lib64
186
187 if [ -n "$SOTA_AUTOPROVISION_CREDENTIALS" ]; then
188 EXPDATE=`openssl pkcs12 -in $SOTA_AUTOPROVISION_CREDENTIALS -password "pass:" -nodes 2>/dev/null | openssl x509 -noout -enddate | cut -f2 -d "="`
189
190 if [ `date +%s` -ge `date -d "${EXPDATE}" +%s` ]; then
191 bberror "Certificate ${SOTA_AUTOPROVISION_CREDENTIALS} has expired on ${EXPDATE}"
192 fi
193
194 install -d ${D}/var
195 install -d ${D}/var/sota
196 install -m 0655 $SOTA_AUTOPROVISION_CREDENTIALS ${D}/var/sota/sota_provisioning_credentials.p12
197 echo "SOTA_GATEWAY_URI=$SOTA_AUTOPROVISION_URL" > ${D}/var/sota/sota_provisioning_url.env
198 fi
199
135} 200}