diff options
Diffstat (limited to 'recipes-sota/rvi-sota-client')
4 files changed, 70 insertions, 20 deletions
diff --git a/recipes-sota/rvi-sota-client/files/sota-client-autoprovision.service b/recipes-sota/rvi-sota-client/files/sota-client-autoprovision.service new file mode 100644 index 0000000..0431455 --- /dev/null +++ b/recipes-sota/rvi-sota-client/files/sota-client-autoprovision.service | |||
@@ -0,0 +1,16 @@ | |||
1 | [Unit] | ||
2 | Description=SOTA Client Autoprovisioning | ||
3 | Requires=network-online.target | ||
4 | After=network-online.target | ||
5 | |||
6 | [Service] | ||
7 | Type=oneshot | ||
8 | WorkingDirectory=/var/sota | ||
9 | EnvironmentFile=/var/sota/sota_provisioning_url.env | ||
10 | Environment=SOTA_CERT_DIR=/var/sota | ||
11 | ExecStart=/usr/bin/sota_provision.sh sota_provisioning_credentials | ||
12 | RemainAfterExit=true | ||
13 | StandardOutput=journal | ||
14 | |||
15 | [Install] | ||
16 | WantedBy=multi-user.target | ||
diff --git a/recipes-sota/rvi-sota-client/files/sota-client-ostree.service b/recipes-sota/rvi-sota-client/files/sota-client-ostree.service new file mode 100644 index 0000000..093a994 --- /dev/null +++ b/recipes-sota/rvi-sota-client/files/sota-client-ostree.service | |||
@@ -0,0 +1,13 @@ | |||
1 | [Unit] | ||
2 | Description=SOTA Client | ||
3 | Requires=network-online.target | ||
4 | After=network.target network-online.target | ||
5 | |||
6 | [Service] | ||
7 | RestartSec=5 | ||
8 | Restart=on-failure | ||
9 | Environment="RUST_LOG=debug" | ||
10 | ExecStart=/usr/bin/sota_client --config /sysroot/boot/sota.toml --device-package-manager ostree | ||
11 | |||
12 | [Install] | ||
13 | WantedBy=multi-user.target | ||
diff --git a/recipes-sota/rvi-sota-client/files/sota-client-uptane.service b/recipes-sota/rvi-sota-client/files/sota-client-uptane.service new file mode 100644 index 0000000..a2d80ce --- /dev/null +++ b/recipes-sota/rvi-sota-client/files/sota-client-uptane.service | |||
@@ -0,0 +1,15 @@ | |||
1 | [Unit] | ||
2 | Description=SOTA Client | ||
3 | Requires=network-online.target | ||
4 | After=network.target network-online.target | ||
5 | Requires=sota-client-autoprovision | ||
6 | After=sota-client-autoprovision | ||
7 | |||
8 | [Service] | ||
9 | RestartSec=5 | ||
10 | Restart=on-failure | ||
11 | Environment="RUST_LOG=debug" | ||
12 | ExecStart=/usr/bin/sota_client --config /var/sota/sota.toml --device-package-manager uptane | ||
13 | |||
14 | [Install] | ||
15 | WantedBy=multi-user.target | ||
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 5a08670..718daf7 100644 --- a/recipes-sota/rvi-sota-client/rvi-sota-client_git.bb +++ b/recipes-sota/rvi-sota-client/rvi-sota-client_git.bb | |||
@@ -11,28 +11,29 @@ S = "${WORKDIR}/git" | |||
11 | # When changing this, don't forget to: | 11 | # When changing this, don't forget to: |
12 | # 1) Update PV | 12 | # 1) Update PV |
13 | # 2) Check that Cargo.lock hasn't changed with git diff old..new Cargo.lock | 13 | # 2) Check that Cargo.lock hasn't changed with git diff old..new Cargo.lock |
14 | SRCREV = "d64be93cc5da9b5399c7d381fd7a0a6f1b13bc3c" | 14 | SRCREV = "0f4d498f969b8d5df3140f8ba80b78b5b4024e72" |
15 | 15 | ||
16 | # Generate with: | 16 | # Generate with: |
17 | # git describe --tags | cut -b2- | 17 | # git describe --tags | cut -b2- |
18 | # or from the rvi_sota_client repo: | 18 | # or from the rvi_sota_client repo: |
19 | # make package-version | 19 | # make package-version |
20 | PV = "0.2.32-192-gd64be93" | 20 | PV = "0.2.33-30-g0f4d498" |
21 | 21 | ||
22 | BBCLASSEXTEND = "native" | 22 | BBCLASSEXTEND = "native" |
23 | 23 | ||
24 | FILES_${PN} = " \ | 24 | FILES_${PN} = " \ |
25 | /lib64 \ | 25 | /lib64 \ |
26 | ${bindir}/canonical_json.py \ | 26 | ${bindir}/canonical_json.py \ |
27 | ${bindir}/sota_client \ | 27 | ${bindir}/sota_client \ |
28 | ${bindir}/sota_sysinfo.sh \ | 28 | ${bindir}/sota_sysinfo.sh \ |
29 | ${bindir}/system_info.sh \ | 29 | ${bindir}/system_info.sh \ |
30 | ${bindir}/sota_prov.sh \ | 30 | ${bindir}/sota_provision.sh \ |
31 | ${sysconfdir}/sota_client.version \ | 31 | ${sysconfdir}/sota_client.version \ |
32 | ${sysconfdir}/sota_certificates \ | 32 | ${sysconfdir}/sota_certificates \ |
33 | ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/sota_client_autoprovision.service', '', d)} \ | 33 | ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/sota-client.service', '', d)} \ |
34 | ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/sota_client.service', '', d)} \ | 34 | ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/sota-client-autoprovision.service', '', d)} \ |
35 | " | 35 | " |
36 | |||
36 | 37 | ||
37 | # list of dependencies can be generated from Cargo.lock by running | 38 | # list of dependencies can be generated from Cargo.lock by running |
38 | # cat Cargo.lock | sed -e '1,/metadata/ d' Cargo.lock | awk '{print "crate://crates.io/"$2 "/" $3" \\"}' | 39 | # cat Cargo.lock | sed -e '1,/metadata/ d' Cargo.lock | awk '{print "crate://crates.io/"$2 "/" $3" \\"}' |
@@ -50,7 +51,7 @@ crate://crates.io/bytes/0.4.3 \ | |||
50 | crate://crates.io/cfg-if/0.1.0 \ | 51 | crate://crates.io/cfg-if/0.1.0 \ |
51 | crate://crates.io/chan/0.1.19 \ | 52 | crate://crates.io/chan/0.1.19 \ |
52 | crate://crates.io/chan-signal/0.2.0 \ | 53 | crate://crates.io/chan-signal/0.2.0 \ |
53 | crate://crates.io/chrono/0.3.1 \ | 54 | crate://crates.io/chrono/0.4.0 \ |
54 | crate://crates.io/crossbeam/0.2.10 \ | 55 | crate://crates.io/crossbeam/0.2.10 \ |
55 | crate://crates.io/dbghelp-sys/0.2.0 \ | 56 | crate://crates.io/dbghelp-sys/0.2.0 \ |
56 | crate://crates.io/dbus/0.5.2 \ | 57 | crate://crates.io/dbus/0.5.2 \ |
@@ -74,10 +75,12 @@ crate://crates.io/language-tags/0.2.2 \ | |||
74 | crate://crates.io/lazy_static/0.2.8 \ | 75 | crate://crates.io/lazy_static/0.2.8 \ |
75 | crate://crates.io/libc/0.2.22 \ | 76 | crate://crates.io/libc/0.2.22 \ |
76 | crate://crates.io/log/0.3.7 \ | 77 | crate://crates.io/log/0.3.7 \ |
78 | crate://crates.io/maplit/0.1.4 \ | ||
77 | crate://crates.io/matches/0.1.4 \ | 79 | crate://crates.io/matches/0.1.4 \ |
78 | crate://crates.io/memchr/1.0.1 \ | 80 | crate://crates.io/memchr/1.0.1 \ |
79 | crate://crates.io/metadeps/1.1.1 \ | 81 | crate://crates.io/metadeps/1.1.1 \ |
80 | crate://crates.io/mime/0.2.3 \ | 82 | crate://crates.io/mime/0.2.3 \ |
83 | crate://crates.io/net2/0.2.29 \ | ||
81 | crate://crates.io/num/0.1.37 \ | 84 | crate://crates.io/num/0.1.37 \ |
82 | crate://crates.io/num-integer/0.1.34 \ | 85 | crate://crates.io/num-integer/0.1.34 \ |
83 | crate://crates.io/num-iter/0.1.33 \ | 86 | crate://crates.io/num-iter/0.1.33 \ |
@@ -129,14 +132,18 @@ crate://crates.io/uuid/0.5.0 \ | |||
129 | crate://crates.io/void/1.0.2 \ | 132 | crate://crates.io/void/1.0.2 \ |
130 | crate://crates.io/winapi/0.2.8 \ | 133 | crate://crates.io/winapi/0.2.8 \ |
131 | crate://crates.io/winapi-build/0.1.1 \ | 134 | crate://crates.io/winapi-build/0.1.1 \ |
135 | crate://crates.io/ws2_32-sys/0.2.1 \ | ||
132 | crate://crates.io/xattr/0.1.11 \ | 136 | crate://crates.io/xattr/0.1.11 \ |
133 | git://github.com/advancedtelematic/rvi_sota_client \ | 137 | git://github.com/advancedtelematic/rvi_sota_client \ |
138 | file://sota-client-autoprovision.service \ | ||
139 | file://sota-client-ostree.service \ | ||
140 | file://sota-client-uptane.service \ | ||
134 | " | 141 | " |
135 | 142 | ||
136 | SRC_URI[index.md5sum] = "6a635e8a081b4d4ba4cebffd721c2d7d" | 143 | SRC_URI[index.md5sum] = "6a635e8a081b4d4ba4cebffd721c2d7d" |
137 | SRC_URI[index.sha256sum] = "1913c41d4b8de89a931b6f9e418f83e70a083e12e6c247e8510ee932571ebae2" | 144 | SRC_URI[index.sha256sum] = "1913c41d4b8de89a931b6f9e418f83e70a083e12e6c247e8510ee932571ebae2" |
138 | 145 | ||
139 | SYSTEMD_SERVICE_${PN} = "sota_client.service sota_client_autoprovision.service" | 146 | SYSTEMD_SERVICE_${PN} = "sota-client.service sota-client-autoprovision.service" |
140 | 147 | ||
141 | DEPENDS += " openssl openssl-native dbus " | 148 | DEPENDS += " openssl openssl-native dbus " |
142 | RDEPENDS_${PN} = " libcrypto \ | 149 | RDEPENDS_${PN} = " libcrypto \ |
@@ -164,22 +171,21 @@ do_install() { | |||
164 | install -m 0755 target/${TARGET_SYS}/release/sota_client ${D}${bindir} | 171 | install -m 0755 target/${TARGET_SYS}/release/sota_client ${D}${bindir} |
165 | install -m 0755 ${S}/run/sota_sysinfo.sh ${D}${bindir} | 172 | install -m 0755 ${S}/run/sota_sysinfo.sh ${D}${bindir} |
166 | ln -fs ${bindir}/sota_sysinfo.sh ${D}${bindir}/system_info.sh # For compatibilty with old sota.toml files | 173 | ln -fs ${bindir}/sota_sysinfo.sh ${D}${bindir}/system_info.sh # For compatibilty with old sota.toml files |
167 | install -m 0755 ${S}/run/sota_prov.sh ${D}${bindir} | 174 | install -m 0755 ${S}/run/sota_provision.sh ${D}${bindir} |
168 | install -m 0755 ${S}/run/canonical_json.py ${D}${bindir} | 175 | install -m 0755 ${S}/run/canonical_json.py ${D}${bindir} |
169 | 176 | ||
170 | if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then | 177 | if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then |
171 | install -d ${D}/${systemd_unitdir}/system | 178 | install -d ${D}/${systemd_unitdir}/system |
172 | if [ -n "$SOTA_AUTOPROVISION_CREDENTIALS" -o -n "$SOTA_PACKED_CREDENTIALS" ]; then | 179 | if [ -n "$SOTA_AUTOPROVISION_CREDENTIALS" -o -n "$SOTA_PACKED_CREDENTIALS" ]; then |
173 | install -c ${S}/run/sota_client_uptane_auto.service ${D}${systemd_unitdir}/system/sota_client.service | 180 | install -m 0644 ${WORKDIR}/sota-client-uptane.service ${D}/${systemd_unitdir}/system/sota-client.service |
174 | else | 181 | else |
175 | install -c ${S}/run/sota_client_ostree.service ${D}${systemd_unitdir}/system/sota_client.service | 182 | install -m 0644 ${WORKDIR}/sota-client-ostree.service ${D}/${systemd_unitdir}/system/sota-client.service |
176 | fi | 183 | fi |
177 | install -c ${S}/run/sota_client_autoprovision.service ${D}${systemd_unitdir}/system/sota_client_autoprovision.service | 184 | install -m 0644 ${WORKDIR}/sota-client-autoprovision.service ${D}/${systemd_unitdir}/system/sota-client-autoprovision.service |
178 | fi | 185 | fi |
179 | 186 | ||
180 | install -d ${D}${sysconfdir} | 187 | install -d ${D}${sysconfdir} |
181 | echo `git log -1 --pretty=format:%H` > ${D}${sysconfdir}/sota_client.version | 188 | echo `git log -1 --pretty=format:%H` > ${D}${sysconfdir}/sota_client.version |
182 | install -c ${S}/run/sota_certificates ${D}${sysconfdir} | 189 | install -c ${S}/run/sota_certificates ${D}${sysconfdir} |
183 | ln -fs /lib ${D}/lib64 | 190 | ln -fs /lib ${D}/lib64 |
184 | |||
185 | } | 191 | } |