diff options
Diffstat (limited to 'recipes-sota')
16 files changed, 399 insertions, 156 deletions
diff --git a/recipes-sota/aktualizr/aktualizr_git.bb b/recipes-sota/aktualizr/aktualizr_git.bb index 045c142..359c9fb 100644 --- a/recipes-sota/aktualizr/aktualizr_git.bb +++ b/recipes-sota/aktualizr/aktualizr_git.bb | |||
@@ -2,23 +2,44 @@ SUMMARY = "Aktualizr SOTA Client" | |||
2 | DESCRIPTION = "SOTA Client application written in C++" | 2 | DESCRIPTION = "SOTA Client application written in C++" |
3 | HOMEPAGE = "https://github.com/advancedtelematic/aktualizr" | 3 | HOMEPAGE = "https://github.com/advancedtelematic/aktualizr" |
4 | SECTION = "base" | 4 | SECTION = "base" |
5 | |||
6 | LICENSE = "MPL-2.0" | 5 | LICENSE = "MPL-2.0" |
7 | LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=9741c346eef56131163e13b9db1241b3" | 6 | LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=9741c346eef56131163e13b9db1241b3" |
8 | 7 | DEPENDS = "boost curl openssl jansson libsodium ostree" | |
9 | inherit cmake systemd | 8 | RDEPENDS_${PN} = "lshw" |
9 | |||
10 | SRC_URI = " \ | ||
11 | git://github.com/advancedtelematic/aktualizr \ | ||
12 | file://aktualizr-manual-provision.service \ | ||
13 | file://aktualizr-autoprovision.service \ | ||
14 | file://sota_autoprov.toml \ | ||
15 | " | ||
16 | SRCREV = "c24f1fc9b600113cf9f2d3d7215e406cbbb70ac4" | ||
17 | PV = "1.0+git${SRCPV}" | ||
10 | 18 | ||
11 | S = "${WORKDIR}/git" | 19 | S = "${WORKDIR}/git" |
20 | SYSTEMD_SERVICE_${PN} = "aktualizr.service" | ||
12 | 21 | ||
13 | SRCREV = "f2275e9938f5c942c9e51a3966b1ad91acd65367" | 22 | inherit cmake systemd |
14 | 23 | ||
15 | SRC_URI = "git://github.com/advancedtelematic/aktualizr" | 24 | EXTRA_OECMAKE = "-DWARNING_AS_ERROR=OFF -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=OFF -DBUILD_OSTREE=ON -DAKTUALIZR_VERSION=${PV}" |
16 | 25 | ||
17 | DEPENDS = "boost curl openssl jansson" | 26 | export SOTA_AUTOPROVISION_CREDENTIALS |
18 | RDEPENDS = "" | 27 | export SOTA_PACKED_CREDENTIALS |
19 | 28 | ||
20 | EXTRA_OECMAKE = "-DWARNING_AS_ERROR=OFF -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=OFF" | 29 | do_install_append() { |
30 | if [ -n "${SOTA_AUTOPROVISION_CREDENTIALS}" -o -n "${SOTA_PACKED_CREDENTIALS}" ]; then | ||
31 | install -d ${D}/${systemd_unitdir}/system | ||
32 | install -m 0644 ${WORKDIR}/aktualizr-autoprovision.service ${D}/${systemd_unitdir}/system/aktualizr.service | ||
33 | install -d ${D}/usr/lib/sota | ||
34 | install -m "0644" ${WORKDIR}/sota_autoprov.toml ${D}/usr/lib/sota/sota.toml | ||
35 | else | ||
36 | install -d ${D}/${systemd_unitdir}/system | ||
37 | install -m 0644 ${WORKDIR}/aktualizr-manual-provision.service ${D}/${systemd_unitdir}/system/aktualizr.service | ||
38 | fi | ||
39 | } | ||
21 | 40 | ||
22 | FILES_${PN} = " \ | 41 | FILES_${PN} = " \ |
23 | ${bindir}/aktualizr \ | 42 | ${bindir}/aktualizr \ |
24 | " | 43 | ${systemd_unitdir}/system/aktualizr.service \ |
44 | /usr/lib/sota/sota.toml \ | ||
45 | " | ||
diff --git a/recipes-sota/aktualizr/files/aktualizr-autoprovision.service b/recipes-sota/aktualizr/files/aktualizr-autoprovision.service new file mode 100644 index 0000000..fd0ab09 --- /dev/null +++ b/recipes-sota/aktualizr/files/aktualizr-autoprovision.service | |||
@@ -0,0 +1,14 @@ | |||
1 | [Unit] | ||
2 | Description=Aktualizr SOTA Client | ||
3 | Wants=network-online.target | ||
4 | After=network.target network-online.target | ||
5 | Requires=network-online.target | ||
6 | |||
7 | [Service] | ||
8 | RestartSec=10 | ||
9 | Restart=always | ||
10 | EnvironmentFile=/var/sota/sota_provisioning_url.env | ||
11 | ExecStart=/usr/bin/aktualizr --disable-keyid-validation --tls-server ${SOTA_GATEWAY_URI} --config /usr/lib/sota/sota.toml | ||
12 | |||
13 | [Install] | ||
14 | WantedBy=multi-user.target | ||
diff --git a/recipes-sota/aktualizr/files/aktualizr-manual-provision.service b/recipes-sota/aktualizr/files/aktualizr-manual-provision.service new file mode 100644 index 0000000..a70f2f9 --- /dev/null +++ b/recipes-sota/aktualizr/files/aktualizr-manual-provision.service | |||
@@ -0,0 +1,13 @@ | |||
1 | [Unit] | ||
2 | Description=Aktualizr SOTA Client | ||
3 | Wants=network-online.target | ||
4 | After=network.target network-online.target | ||
5 | Requires=network-online.target | ||
6 | |||
7 | [Service] | ||
8 | RestartSec=10 | ||
9 | Restart=always | ||
10 | ExecStart=/usr/bin/aktualizr --config /sysroot/boot/sota.toml --loglevel 2 | ||
11 | |||
12 | [Install] | ||
13 | WantedBy=multi-user.target | ||
diff --git a/recipes-sota/aktualizr/files/sota_autoprov.toml b/recipes-sota/aktualizr/files/sota_autoprov.toml new file mode 100644 index 0000000..8799553 --- /dev/null +++ b/recipes-sota/aktualizr/files/sota_autoprov.toml | |||
@@ -0,0 +1,18 @@ | |||
1 | [device] | ||
2 | packages_dir = "/tmp/packages_dir" | ||
3 | certificates_directory = "/var/sota" | ||
4 | system_info = "system_info.sh" | ||
5 | |||
6 | [tls] | ||
7 | ca_file = "root.crt" | ||
8 | client_certificate = "client.pem" | ||
9 | pkey_file = "pkey.pem" | ||
10 | |||
11 | [uptane] | ||
12 | metadata_path = "/var/sota/metadata" | ||
13 | private_key_path = "ecukey.der" | ||
14 | public_key_path = "ecukey.pub" | ||
15 | |||
16 | [provision] | ||
17 | p12_path = "sota_provisioning_credentials.p12" | ||
18 | |||
diff --git a/recipes-sota/ostree-initrd/files/init.sh b/recipes-sota/ostree-initrd/files/init.sh index 806a7b1..0b0693d 100644 --- a/recipes-sota/ostree-initrd/files/init.sh +++ b/recipes-sota/ostree-initrd/files/init.sh | |||
@@ -1,17 +1,13 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 2 | set -eu | |
3 | # global variables | ||
4 | |||
5 | SMACK=n | ||
6 | DEBUG=n | ||
7 | 3 | ||
8 | # ------------------------------------------- | 4 | # ------------------------------------------- |
9 | 5 | ||
10 | log_info() { echo "$0[$$]: $@" >&2; } | 6 | log_info() { echo "$0[$$]: $*" >&2; } |
11 | log_error() { echo "$0[$$]: ERROR $@" >&2; } | 7 | log_error() { echo "$0[$$]: ERROR $*" >&2; } |
12 | 8 | ||
13 | do_mount_fs() { | 9 | do_mount_fs() { |
14 | log_info "mounting FS: $@" | 10 | log_info "mounting FS: $*" |
15 | [[ -e /proc/filesystems ]] && { grep -q "$1" /proc/filesystems || { log_error "Unknown filesystem"; return 1; } } | 11 | [[ -e /proc/filesystems ]] && { grep -q "$1" /proc/filesystems || { log_error "Unknown filesystem"; return 1; } } |
16 | [[ -d "$2" ]] || mkdir -p "$2" | 12 | [[ -d "$2" ]] || mkdir -p "$2" |
17 | [[ -e /proc/mounts ]] && { grep -q -e "^$1 $2 $1" /proc/mounts && { log_info "$2 ($1) already mounted"; return 0; } } | 13 | [[ -e /proc/mounts ]] && { grep -q -e "^$1 $2 $1" /proc/mounts && { log_info "$2 ($1) already mounted"; return 0; } } |
@@ -26,18 +22,19 @@ bail_out() { | |||
26 | } | 22 | } |
27 | 23 | ||
28 | get_ostree_sysroot() { | 24 | get_ostree_sysroot() { |
29 | for opt in `cat /proc/cmdline`; do | 25 | for opt in $(cat /proc/cmdline); do |
30 | arg=`echo $opt | cut -d'=' -f1` | 26 | arg=$(echo "$opt" | cut -d'=' -f1) |
31 | if [ $arg == "ostree_root" ]; then | 27 | if [ "$arg" == "ostree_root" ]; then |
32 | echo $opt | cut -d'=' -f2 | 28 | echo "$opt" | cut -d'=' -f2- |
33 | return | 29 | return |
34 | fi | 30 | fi |
35 | done | 31 | done |
32 | echo "LABEL=otaroot" | ||
36 | } | 33 | } |
37 | 34 | ||
38 | export PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/lib/ostree | 35 | export PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/lib/ostree |
39 | 36 | ||
40 | log_info "starting initrd script" | 37 | log_info "Starting OSTree initrd script" |
41 | 38 | ||
42 | do_mount_fs proc /proc | 39 | do_mount_fs proc /proc |
43 | do_mount_fs sysfs /sys | 40 | do_mount_fs sysfs /sys |
@@ -49,8 +46,6 @@ do_mount_fs tmpfs /run | |||
49 | 46 | ||
50 | # check if smack is active (and if so, mount smackfs) | 47 | # check if smack is active (and if so, mount smackfs) |
51 | grep -q smackfs /proc/filesystems && { | 48 | grep -q smackfs /proc/filesystems && { |
52 | SMACK=y | ||
53 | |||
54 | do_mount_fs smackfs /sys/fs/smackfs | 49 | do_mount_fs smackfs /sys/fs/smackfs |
55 | 50 | ||
56 | # adjust current label and network label | 51 | # adjust current label and network label |
@@ -61,14 +56,20 @@ grep -q smackfs /proc/filesystems && { | |||
61 | mkdir -p /sysroot | 56 | mkdir -p /sysroot |
62 | ostree_sysroot=$(get_ostree_sysroot) | 57 | ostree_sysroot=$(get_ostree_sysroot) |
63 | 58 | ||
64 | mount $ostree_sysroot /sysroot || bail_out "Unable to mount $ostree_sysroot as physical sysroot" | 59 | mount "$ostree_sysroot" /sysroot || { |
60 | # The SD card in the R-Car M3 takes a bit of time to come up | ||
61 | # Retry the mount if it fails the first time | ||
62 | log_info "Mounting $ostree_sysroot failed, waiting 5s for the device to be available..." | ||
63 | sleep 5 | ||
64 | mount "$ostree_sysroot" /sysroot || bail_out "Unable to mount $ostree_sysroot as physical sysroot" | ||
65 | } | ||
65 | ostree-prepare-root /sysroot | 66 | ostree-prepare-root /sysroot |
66 | 67 | ||
67 | # move mounted devices to new root | 68 | # move mounted devices to new root |
68 | cd /sysroot | 69 | cd /sysroot |
69 | for x in dev proc; do | 70 | for x in dev proc; do |
70 | log_info "Moving /$x to new rootfs" | 71 | log_info "Moving /$x to new rootfs" |
71 | mount -o move /$x $x | 72 | mount -o move "/$x" "$x" |
72 | done | 73 | done |
73 | 74 | ||
74 | # switch to new rootfs | 75 | # switch to new rootfs |
diff --git a/recipes-sota/ostree-initrd/ostree-initrd.bb b/recipes-sota/ostree-initrd/ostree-initrd.bb index 5c85bee..6046c81 100644 --- a/recipes-sota/ostree-initrd/ostree-initrd.bb +++ b/recipes-sota/ostree-initrd/ostree-initrd.bb | |||
@@ -5,15 +5,16 @@ SRC_URI = "file://init.sh" | |||
5 | 5 | ||
6 | S = "${WORKDIR}" | 6 | S = "${WORKDIR}" |
7 | 7 | ||
8 | PV = "3" | ||
9 | |||
8 | do_install() { | 10 | do_install() { |
9 | install -dm 0755 ${D}/etc | 11 | install -dm 0755 ${D}/etc |
10 | touch ${D}/etc/initrd-release | 12 | touch ${D}/etc/initrd-release |
11 | install -dm 0755 ${D}/dev | 13 | install -dm 0755 ${D}/dev |
12 | install -dm 0755 ${D}/sbin | 14 | install -dm 0755 ${D}/sbin |
13 | install -m 0755 ${WORKDIR}/init.sh ${D}/sbin/init | 15 | install -m 0755 ${WORKDIR}/init.sh ${D}/sbin/init |
14 | } | 16 | } |
15 | 17 | ||
16 | inherit allarch | 18 | inherit allarch |
17 | 19 | ||
18 | FILES_${PN} += " /dev /etc/initrd-release /sbin/init " | 20 | FILES_${PN} += " /dev /etc/initrd-release /sbin/init " |
19 | |||
diff --git a/recipes-sota/ostree/ostree_git.bb b/recipes-sota/ostree/ostree_git.bb index 67b5047..84e86e2 100644 --- a/recipes-sota/ostree/ostree_git.bb +++ b/recipes-sota/ostree/ostree_git.bb | |||
@@ -8,31 +8,37 @@ INHERIT_remove_class-native = "systemd" | |||
8 | 8 | ||
9 | SRC_URI = "gitsm://github.com/ostreedev/ostree.git;branch=master" | 9 | SRC_URI = "gitsm://github.com/ostreedev/ostree.git;branch=master" |
10 | 10 | ||
11 | SRCREV="37c07d2f1c90b12bcfba85a7d900f81a7c362eb4" | 11 | SRCREV="3b09620c2738bce4ed45e099cf2e4c5df7671d39" |
12 | |||
13 | PV = "2017.3-31-g3b09620c" | ||
12 | 14 | ||
13 | S = "${WORKDIR}/git" | 15 | S = "${WORKDIR}/git" |
14 | 16 | ||
15 | BBCLASSEXTEND = "native" | 17 | BBCLASSEXTEND = "native" |
16 | 18 | ||
17 | DEPENDS += "attr libarchive glib-2.0 pkgconfig gpgme libgsystem fuse libsoup-2.4 e2fsprogs" | 19 | DEPENDS += "attr libarchive glib-2.0 pkgconfig gpgme libgsystem fuse libsoup-2.4 e2fsprogs gtk-doc-native curl" |
18 | DEPENDS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd', '', d)}" | 20 | DEPENDS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd', '', d)}" |
19 | |||
20 | DEPENDS_remove_class-native = "systemd-native" | 21 | DEPENDS_remove_class-native = "systemd-native" |
21 | 22 | ||
22 | RDEPENDS_${PN} = "python util-linux-libuuid util-linux-libblkid util-linux-libmount libcap xz os-release ca-certificates" | 23 | RDEPENDS_${PN} = "python util-linux-libuuid util-linux-libblkid util-linux-libmount libcap xz bash" |
23 | RDEPENDS_${PN}_remove_class-native = "python-native os-release-native" | 24 | RDEPENDS_${PN}_remove_class-native = "python-native" |
24 | 25 | ||
25 | EXTRA_OECONF = "CFLAGS='-g' --with-libarchive --disable-gtk-doc --disable-gtk-doc-html --disable-gtk-doc-pdf --disable-man" | 26 | EXTRA_OECONF = "--with-libarchive --disable-gtk-doc --disable-gtk-doc-html --disable-gtk-doc-pdf --disable-man --with-smack --with-builtin-grub2-mkconfig --with-curl" |
26 | EXTRA_OEMAKE = "CFLAGS='-g'" | ||
27 | EXTRA_OECONF_append_class-native = " --enable-wrpseudo-compat" | 27 | EXTRA_OECONF_append_class-native = " --enable-wrpseudo-compat" |
28 | 28 | ||
29 | # Path to ${prefix}/lib/ostree/ostree-grub-generator is hardcoded on the | ||
30 | # do_configure stage so we do depend on it | ||
31 | SYSROOT_DIR = "${STAGING_DIR_TARGET}" | ||
32 | SYSROOT_DIR_class-native = "${STAGING_DIR_NATIVE}" | ||
33 | do_configure[vardeps] += "SYSROOT_DIR" | ||
34 | |||
29 | SYSTEMD_REQUIRED = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}" | 35 | SYSTEMD_REQUIRED = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}" |
30 | SYSTEMD_REQUIRED_class-native = "false" | 36 | SYSTEMD_REQUIRED_class-native = "" |
31 | 37 | ||
32 | SYSTEMD_SERVICE_${PN} = "ostree-prepare-root.service ostree-remount.service" | 38 | SYSTEMD_SERVICE_${PN} = "ostree-prepare-root.service ostree-remount.service" |
33 | SYSTEMD_SERVICE_${PN}_class-native = "" | 39 | SYSTEMD_SERVICE_${PN}_class-native = "" |
34 | 40 | ||
35 | PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}" | 41 | PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}" |
36 | PACKAGECONFIG_class-native = "" | 42 | PACKAGECONFIG_class-native = "" |
37 | PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/ --with-dracut" | 43 | PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/ --with-dracut" |
38 | 44 | ||
@@ -42,7 +48,8 @@ export STAGING_INCDIR | |||
42 | export STAGING_LIBDIR | 48 | export STAGING_LIBDIR |
43 | 49 | ||
44 | do_configure() { | 50 | do_configure() { |
45 | NOCONFIGURE=true ./autogen.sh | 51 | unset docdir |
52 | NOCONFIGURE=1 ./autogen.sh | ||
46 | oe_runconf | 53 | oe_runconf |
47 | } | 54 | } |
48 | 55 | ||
@@ -54,11 +61,17 @@ do_compile_prepend() { | |||
54 | export SYSTEMD_REQUIRED | 61 | export SYSTEMD_REQUIRED |
55 | 62 | ||
56 | do_install_append() { | 63 | do_install_append() { |
57 | if [ "$SYSTEMD_REQUIRED" == "true" ]; then | 64 | if [ -n ${SYSTEMD_REQUIRED} ]; then |
65 | install -p -D ${S}/src/boot/ostree-prepare-root.service ${D}${systemd_unitdir}/system/ostree-prepare-root.service | ||
58 | install -p -D ${S}/src/boot/ostree-remount.service ${D}${systemd_unitdir}/system/ostree-remount.service | 66 | install -p -D ${S}/src/boot/ostree-remount.service ${D}${systemd_unitdir}/system/ostree-remount.service |
59 | fi | 67 | fi |
60 | } | 68 | } |
61 | 69 | ||
70 | do_install_append_class-native() { | ||
71 | create_wrapper ${D}${bindir}/ostree OSTREE_GRUB2_EXEC="${STAGING_LIBDIR_NATIVE}/ostree/ostree-grub-generator" | ||
72 | } | ||
73 | |||
74 | |||
62 | FILES_${PN} += " \ | 75 | FILES_${PN} += " \ |
63 | ${@'${systemd_unitdir}/system/' if d.getVar('SYSTEMD_REQUIRED', True) else ''} \ | 76 | ${@'${systemd_unitdir}/system/' if d.getVar('SYSTEMD_REQUIRED', True) else ''} \ |
64 | ${@'${libdir}/dracut/modules.d/98ostree/module-setup.sh' if d.getVar('SYSTEMD_REQUIRED', True) else ''} \ | 77 | ${@'${libdir}/dracut/modules.d/98ostree/module-setup.sh' if d.getVar('SYSTEMD_REQUIRED', True) else ''} \ |
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/files/sota-installer.service b/recipes-sota/rvi-sota-client/files/sota-installer.service new file mode 100644 index 0000000..a4fd99e --- /dev/null +++ b/recipes-sota/rvi-sota-client/files/sota-installer.service | |||
@@ -0,0 +1,12 @@ | |||
1 | [Unit] | ||
2 | Description=SOTA Secondary ECU Installer | ||
3 | Requires=network-online.target | ||
4 | After=network-online.target | ||
5 | |||
6 | [Service] | ||
7 | RestartSec=10 | ||
8 | Restart=always | ||
9 | ExecStart=/usr/bin/sota-installer --level debug --oneshot --config /var/sota/installer.toml | ||
10 | |||
11 | [Install] | ||
12 | WantedBy=multi-user.target | ||
diff --git a/recipes-sota/rvi-sota-client/rvi-sota-client.inc b/recipes-sota/rvi-sota-client/rvi-sota-client.inc new file mode 100644 index 0000000..2a27c9a --- /dev/null +++ b/recipes-sota/rvi-sota-client/rvi-sota-client.inc | |||
@@ -0,0 +1,143 @@ | |||
1 | inherit cargo systemd | ||
2 | |||
3 | DESCRIPTION = "rvi-sota-client recipe" | ||
4 | HOMEPAGE = "https://github.com/advancedtelematic/rvi_sota_client" | ||
5 | LICENSE = "MPL-2.0" | ||
6 | LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=65d26fcc2f35ea6a181ac777e42db1ea" | ||
7 | |||
8 | BBCLASSEXTEND = "native" | ||
9 | |||
10 | S = "${WORKDIR}/git" | ||
11 | |||
12 | SRC_URI[index.md5sum] = "6a635e8a081b4d4ba4cebffd721c2d7d" | ||
13 | SRC_URI[index.sha256sum] = "1913c41d4b8de89a931b6f9e418f83e70a083e12e6c247e8510ee932571ebae2" | ||
14 | |||
15 | # also update PV and SRC_URI crates when updating SRCREV | ||
16 | SRCREV = "b9170dfd92981505c77f8f6e51d477eb1ec57071" | ||
17 | |||
18 | # generate with: `make package-version` | ||
19 | PV = "0.2.33-61-gb9170df" | ||
20 | |||
21 | # generate with: `make yocto-version` | ||
22 | SRC_URI = " \ | ||
23 | git://github.com/advancedtelematic/rvi_sota_client \ | ||
24 | file://sota-client-autoprovision.service \ | ||
25 | file://sota-client-ostree.service \ | ||
26 | file://sota-client-uptane.service \ | ||
27 | file://sota-installer.service \ | ||
28 | crate://crates.io/advapi32-sys/0.2.0 \ | ||
29 | crate://crates.io/aho-corasick/0.6.3 \ | ||
30 | crate://crates.io/ansi_term/0.9.0 \ | ||
31 | crate://crates.io/antidote/1.0.0 \ | ||
32 | crate://crates.io/atty/0.2.2 \ | ||
33 | crate://crates.io/backtrace/0.3.2 \ | ||
34 | crate://crates.io/backtrace-sys/0.1.11 \ | ||
35 | crate://crates.io/base64/0.5.2 \ | ||
36 | crate://crates.io/bit-set/0.4.0 \ | ||
37 | crate://crates.io/bit-vec/0.4.4 \ | ||
38 | crate://crates.io/bitflags/0.9.1 \ | ||
39 | crate://crates.io/byteorder/1.1.0 \ | ||
40 | crate://crates.io/bytes/0.4.4 \ | ||
41 | crate://crates.io/cfg-if/0.1.2 \ | ||
42 | crate://crates.io/chan/0.1.19 \ | ||
43 | crate://crates.io/chan-signal/0.2.0 \ | ||
44 | crate://crates.io/chrono/0.4.0 \ | ||
45 | crate://crates.io/clap/2.25.0 \ | ||
46 | crate://crates.io/core-foundation/0.2.3 \ | ||
47 | crate://crates.io/core-foundation-sys/0.2.3 \ | ||
48 | crate://crates.io/crossbeam/0.2.10 \ | ||
49 | crate://crates.io/crypt32-sys/0.2.0 \ | ||
50 | crate://crates.io/dbghelp-sys/0.2.0 \ | ||
51 | crate://crates.io/dbus/0.5.3 \ | ||
52 | crate://crates.io/dtoa/0.4.1 \ | ||
53 | crate://crates.io/env_logger/0.4.3 \ | ||
54 | crate://crates.io/error-chain/0.10.0 \ | ||
55 | crate://crates.io/filetime/0.1.10 \ | ||
56 | crate://crates.io/foreign-types/0.2.0 \ | ||
57 | crate://crates.io/gcc/0.3.51 \ | ||
58 | crate://crates.io/getopts/0.2.14 \ | ||
59 | crate://crates.io/hex/0.2.0 \ | ||
60 | crate://crates.io/httparse/1.2.3 \ | ||
61 | crate://crates.io/hyper/0.10.12 \ | ||
62 | crate://crates.io/hyper-native-tls/0.2.4 \ | ||
63 | crate://crates.io/idna/0.1.4 \ | ||
64 | crate://crates.io/iovec/0.1.0 \ | ||
65 | crate://crates.io/itoa/0.3.1 \ | ||
66 | crate://crates.io/kernel32-sys/0.2.2 \ | ||
67 | crate://crates.io/language-tags/0.2.2 \ | ||
68 | crate://crates.io/lazy_static/0.2.8 \ | ||
69 | crate://crates.io/libc/0.2.26 \ | ||
70 | crate://crates.io/libflate/0.1.5 \ | ||
71 | crate://crates.io/log/0.3.8 \ | ||
72 | crate://crates.io/maplit/0.1.4 \ | ||
73 | crate://crates.io/matches/0.1.6 \ | ||
74 | crate://crates.io/memchr/1.0.1 \ | ||
75 | crate://crates.io/metadeps/1.1.2 \ | ||
76 | crate://crates.io/mime/0.2.6 \ | ||
77 | crate://crates.io/native-tls/0.1.4 \ | ||
78 | crate://crates.io/net2/0.2.29 \ | ||
79 | crate://crates.io/num/0.1.40 \ | ||
80 | crate://crates.io/num-integer/0.1.35 \ | ||
81 | crate://crates.io/num-iter/0.1.34 \ | ||
82 | crate://crates.io/num-traits/0.1.40 \ | ||
83 | crate://crates.io/num_cpus/1.6.2 \ | ||
84 | crate://crates.io/openssl/0.9.14 \ | ||
85 | crate://crates.io/openssl-sys/0.9.14 \ | ||
86 | crate://crates.io/pem/0.4.0 \ | ||
87 | crate://crates.io/percent-encoding/1.0.0 \ | ||
88 | crate://crates.io/pkg-config/0.3.9 \ | ||
89 | crate://crates.io/quote/0.3.15 \ | ||
90 | crate://crates.io/rand/0.3.15 \ | ||
91 | crate://crates.io/redox_syscall/0.1.26 \ | ||
92 | crate://crates.io/regex/0.2.2 \ | ||
93 | crate://crates.io/regex-syntax/0.4.1 \ | ||
94 | crate://crates.io/reqwest/0.6.2 \ | ||
95 | crate://crates.io/ring/0.7.1 \ | ||
96 | crate://crates.io/rust-crypto/0.2.36 \ | ||
97 | crate://crates.io/rustc-demangle/0.1.4 \ | ||
98 | crate://crates.io/rustc-serialize/0.3.24 \ | ||
99 | crate://crates.io/schannel/0.1.7 \ | ||
100 | crate://crates.io/secur32-sys/0.2.0 \ | ||
101 | crate://crates.io/security-framework/0.1.14 \ | ||
102 | crate://crates.io/security-framework-sys/0.1.14 \ | ||
103 | crate://crates.io/serde/1.0.10 \ | ||
104 | crate://crates.io/serde_derive/1.0.10 \ | ||
105 | crate://crates.io/serde_derive_internals/0.15.1 \ | ||
106 | crate://crates.io/serde_json/1.0.2 \ | ||
107 | crate://crates.io/serde_urlencoded/0.5.1 \ | ||
108 | crate://crates.io/sha1/0.2.0 \ | ||
109 | crate://crates.io/strsim/0.6.0 \ | ||
110 | crate://crates.io/syn/0.11.11 \ | ||
111 | crate://crates.io/synom/0.11.3 \ | ||
112 | crate://crates.io/tar/0.4.13 \ | ||
113 | crate://crates.io/tempdir/0.3.5 \ | ||
114 | crate://crates.io/term_size/0.3.0 \ | ||
115 | crate://crates.io/textwrap/0.6.0 \ | ||
116 | crate://crates.io/thread_local/0.3.4 \ | ||
117 | crate://crates.io/time/0.1.38 \ | ||
118 | crate://crates.io/toml/0.2.1 \ | ||
119 | crate://crates.io/toml/0.4.2 \ | ||
120 | crate://crates.io/traitobject/0.1.0 \ | ||
121 | crate://crates.io/tungstenite/0.2.4 \ | ||
122 | crate://crates.io/typeable/0.1.2 \ | ||
123 | crate://crates.io/unicase/1.4.2 \ | ||
124 | crate://crates.io/unicode-bidi/0.3.3 \ | ||
125 | crate://crates.io/unicode-normalization/0.1.5 \ | ||
126 | crate://crates.io/unicode-segmentation/1.1.0 \ | ||
127 | crate://crates.io/unicode-width/0.1.4 \ | ||
128 | crate://crates.io/unicode-xid/0.0.4 \ | ||
129 | crate://crates.io/unix_socket/0.5.0 \ | ||
130 | crate://crates.io/unreachable/1.0.0 \ | ||
131 | crate://crates.io/untrusted/0.3.2 \ | ||
132 | crate://crates.io/url/1.5.1 \ | ||
133 | crate://crates.io/utf-8/0.7.1 \ | ||
134 | crate://crates.io/utf8-ranges/1.0.0 \ | ||
135 | crate://crates.io/uuid/0.5.1 \ | ||
136 | crate://crates.io/vec_map/0.8.0 \ | ||
137 | crate://crates.io/version_check/0.1.3 \ | ||
138 | crate://crates.io/void/1.0.2 \ | ||
139 | crate://crates.io/winapi/0.2.8 \ | ||
140 | crate://crates.io/winapi-build/0.1.1 \ | ||
141 | crate://crates.io/ws2_32-sys/0.2.1 \ | ||
142 | crate://crates.io/xattr/0.1.11 \ | ||
143 | " | ||
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 15aa7a4..7ce3ab5 100644 --- a/recipes-sota/rvi-sota-client/rvi-sota-client_git.bb +++ b/recipes-sota/rvi-sota-client/rvi-sota-client_git.bb | |||
@@ -1,137 +1,60 @@ | |||
1 | DESCRIPTION = "sota-client rust recipe" | 1 | require rvi-sota-client.inc |
2 | HOMEPAGE = "https://github.com/advancedtelematic/rvi_sota_client" | ||
3 | 2 | ||
4 | LICENSE = "MPL-2.0" | ||
5 | LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=65d26fcc2f35ea6a181ac777e42db1ea" | ||
6 | 3 | ||
7 | inherit cargo systemd | 4 | SYSTEMD_SERVICE_${PN} = "sota-client.service sota-client-autoprovision.service" |
8 | |||
9 | S = "${WORKDIR}/git" | ||
10 | |||
11 | SRCREV = "022cf8501f9eb84bf334a2490e6e0c67842882ab" | ||
12 | |||
13 | # Generate with: | ||
14 | # git describe --tags | cut -b2- | ||
15 | PV = "0.2.30-2-g022cf85" | ||
16 | |||
17 | BBCLASSEXTEND = "native" | ||
18 | 5 | ||
19 | FILES_${PN} = " \ | 6 | FILES_${PN} = " \ |
20 | ${bindir}/sota_client \ | 7 | /lib64 \ |
21 | ${bindir}/sota_sysinfo.sh \ | 8 | ${bindir}/sota_client \ |
22 | ${bindir}/system_info.sh \ | 9 | ${bindir}/sota_sysinfo.sh \ |
23 | ${bindir}/sota_ostree.sh \ | 10 | ${bindir}/sota_provision.sh \ |
24 | ${sysconfdir}/sota_client.version \ | 11 | ${sysconfdir}/sota_client.version \ |
25 | ${sysconfdir}/sota_certificates \ | 12 | ${sysconfdir}/sota_certificates \ |
26 | ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/sota_client.service', '', d)} \ | 13 | ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/sota-client.service', '', d)} \ |
27 | " | 14 | ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/sota-client-autoprovision.service', '', d)} \ |
28 | |||
29 | SRC_URI = " \ | ||
30 | crate://crates.io/aho-corasick/0.5.3 \ | ||
31 | crate://crates.io/bit-set/0.2.0 \ | ||
32 | crate://crates.io/bit-vec/0.4.3 \ | ||
33 | crate://crates.io/bitflags/0.4.0 \ | ||
34 | crate://crates.io/bitflags/0.7.0 \ | ||
35 | crate://crates.io/bytes/0.3.0 \ | ||
36 | crate://crates.io/cfg-if/0.1.0 \ | ||
37 | crate://crates.io/chan-signal/0.1.7 \ | ||
38 | crate://crates.io/chan/0.1.18 \ | ||
39 | crate://crates.io/cookie/0.2.5 \ | ||
40 | crate://crates.io/crossbeam/0.2.10 \ | ||
41 | crate://crates.io/dbus/0.4.1 \ | ||
42 | crate://crates.io/env_logger/0.3.5 \ | ||
43 | crate://crates.io/gcc/0.3.40 \ | ||
44 | crate://crates.io/gdi32-sys/0.2.0 \ | ||
45 | crate://crates.io/getopts/0.2.14 \ | ||
46 | crate://crates.io/hpack/0.2.0 \ | ||
47 | crate://crates.io/httparse/1.2.1 \ | ||
48 | crate://crates.io/hyper/0.9.14 \ | ||
49 | crate://crates.io/idna/0.1.0 \ | ||
50 | crate://crates.io/kernel32-sys/0.2.2 \ | ||
51 | crate://crates.io/language-tags/0.2.2 \ | ||
52 | crate://crates.io/lazy_static/0.1.16 \ | ||
53 | crate://crates.io/lazy_static/0.2.2 \ | ||
54 | crate://crates.io/lazycell/0.4.0 \ | ||
55 | crate://crates.io/libc/0.2.18 \ | ||
56 | crate://crates.io/log/0.3.6 \ | ||
57 | crate://crates.io/matches/0.1.4 \ | ||
58 | crate://crates.io/memchr/0.1.11 \ | ||
59 | crate://crates.io/mime/0.2.2 \ | ||
60 | crate://crates.io/mio/0.6.1 \ | ||
61 | crate://crates.io/miow/0.1.4 \ | ||
62 | crate://crates.io/net2/0.2.26 \ | ||
63 | crate://crates.io/nix/0.7.0 \ | ||
64 | crate://crates.io/nom/1.2.4 \ | ||
65 | crate://crates.io/num_cpus/1.2.0 \ | ||
66 | crate://crates.io/openssl-sys/0.9.3 \ | ||
67 | crate://crates.io/openssl/0.9.3 \ | ||
68 | crate://crates.io/pkg-config/0.3.8 \ | ||
69 | crate://crates.io/rand/0.3.15 \ | ||
70 | crate://crates.io/regex-syntax/0.3.9 \ | ||
71 | crate://crates.io/regex/0.1.80 \ | ||
72 | crate://crates.io/rust-crypto/0.2.36 \ | ||
73 | crate://crates.io/rustc-serialize/0.3.22 \ | ||
74 | crate://crates.io/rustc_version/0.1.7 \ | ||
75 | crate://crates.io/semver/0.1.20 \ | ||
76 | crate://crates.io/sha1/0.2.0 \ | ||
77 | crate://crates.io/slab/0.3.0 \ | ||
78 | crate://crates.io/solicit/0.4.4 \ | ||
79 | crate://crates.io/thread-id/2.0.0 \ | ||
80 | crate://crates.io/thread_local/0.2.7 \ | ||
81 | crate://crates.io/time/0.1.35 \ | ||
82 | crate://crates.io/toml/0.2.1 \ | ||
83 | crate://crates.io/traitobject/0.0.1 \ | ||
84 | crate://crates.io/typeable/0.1.2 \ | ||
85 | crate://crates.io/unicase/1.4.0 \ | ||
86 | crate://crates.io/unicode-bidi/0.2.3 \ | ||
87 | crate://crates.io/unicode-normalization/0.1.2 \ | ||
88 | crate://crates.io/unix_socket/0.5.0 \ | ||
89 | crate://crates.io/url/1.2.3 \ | ||
90 | crate://crates.io/user32-sys/0.2.0 \ | ||
91 | crate://crates.io/utf8-ranges/0.1.3 \ | ||
92 | crate://crates.io/void/1.0.2 \ | ||
93 | crate://crates.io/winapi-build/0.1.1 \ | ||
94 | crate://crates.io/winapi/0.2.8 \ | ||
95 | crate://crates.io/ws/0.5.3 \ | ||
96 | crate://crates.io/ws2_32-sys/0.2.1 \ | ||
97 | git://github.com/advancedtelematic/rvi_sota_client \ | ||
98 | crate-index://crates.io/213b1a455d9270888c03a42c8d29975369102caa \ | ||
99 | " | 15 | " |
100 | SRC_URI[index.md5sum] = "79f10f436dbf26737cc80445746f16b4" | ||
101 | SRC_URI[index.sha256sum] = "86114b93f1f51aaf0aec3af0751d214b351f4ff9839ba031315c1b19dcbb1913" | ||
102 | 16 | ||
103 | SYSTEMD_SERVICE_${PN} = "sota_client.service" | 17 | DEPENDS += " openssl openssl-native dbus " |
18 | RDEPENDS_${PN} = " \ | ||
19 | bash \ | ||
20 | curl \ | ||
21 | libcrypto \ | ||
22 | libssl \ | ||
23 | lshw \ | ||
24 | jq \ | ||
25 | python-petname \ | ||
26 | sota-launcher \ | ||
27 | " | ||
104 | 28 | ||
105 | DEPENDS += " openssl " | 29 | export SOTA_PACKED_CREDENTIALS |
106 | RDEPENDS_${PN} = " libcrypto \ | 30 | export SOTA_AUTOPROVISION_CREDENTIALS |
107 | libssl \ | 31 | export SOTA_AUTOPROVISION_URL |
108 | dbus \ | ||
109 | bash \ | ||
110 | lshw \ | ||
111 | jq \ | ||
112 | " | ||
113 | 32 | ||
114 | do_compile_prepend() { | 33 | do_compile_prepend() { |
115 | export SOTA_VERSION=$(make sota-version) | 34 | export SOTA_VERSION=$(make sota-version) |
35 | cd sota-client | ||
116 | } | 36 | } |
117 | 37 | ||
118 | do_install() { | 38 | do_install() { |
39 | ln -fs /lib ${D}/lib64 | ||
40 | |||
119 | install -d ${D}${bindir} | 41 | install -d ${D}${bindir} |
42 | install -d ${D}${sysconfdir} | ||
43 | |||
44 | echo `git log -1 --pretty=format:%H` > ${D}${sysconfdir}/sota_client.version | ||
45 | install -c ${S}/sota-client/docker/sota_certificates ${D}${sysconfdir} | ||
46 | |||
120 | install -m 0755 target/${TARGET_SYS}/release/sota_client ${D}${bindir} | 47 | install -m 0755 target/${TARGET_SYS}/release/sota_client ${D}${bindir} |
121 | install -m 0755 run/sota_sysinfo.sh ${D}${bindir} | 48 | install -m 0755 ${S}/sota-client/docker/sota_provision.sh ${D}${bindir} |
122 | ln -fs ${bindir}/sota_sysinfo.sh ${D}${bindir}/system_info.sh # For compatibilty with old sota.toml files | 49 | install -m 0755 ${S}/sota-client/docker/sota_sysinfo.sh ${D}${bindir} |
123 | install -m 0755 run/sota_ostree.sh ${D}${bindir} | ||
124 | 50 | ||
125 | if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then | 51 | if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then |
126 | install -d ${D}${systemd_unitdir}/system | 52 | install -d ${D}/${systemd_unitdir}/system |
127 | if ${@bb.utils.contains('DISTRO_FEATURES', 'sota', 'true', 'false', d)}; then | 53 | if [ -n "$SOTA_AUTOPROVISION_CREDENTIALS" -o -n "$SOTA_PACKED_CREDENTIALS" ]; then |
128 | install -c ${S}/run/sota_client_ostree.service ${D}${systemd_unitdir}/system/sota_client.service | 54 | install -m 0644 ${WORKDIR}/sota-client-uptane.service ${D}/${systemd_unitdir}/system/sota-client.service |
129 | else | 55 | else |
130 | install -c ${S}/run/sota_client.service ${D}${systemd_unitdir}/system/sota_client.service | 56 | install -m 0644 ${WORKDIR}/sota-client-ostree.service ${D}/${systemd_unitdir}/system/sota-client.service |
131 | fi | 57 | fi |
58 | install -m 0644 ${WORKDIR}/sota-client-autoprovision.service ${D}/${systemd_unitdir}/system/sota-client-autoprovision.service | ||
132 | fi | 59 | fi |
133 | |||
134 | install -d ${D}${sysconfdir} | ||
135 | echo `git log -1 --pretty=format:%H` > ${D}${sysconfdir}/sota_client.version | ||
136 | install -c ${S}/run/sota_certificates ${D}${sysconfdir} | ||
137 | } | 60 | } |
diff --git a/recipes-sota/rvi-sota-client/sota-installer_git.bb b/recipes-sota/rvi-sota-client/sota-installer_git.bb new file mode 100644 index 0000000..09f6e5d --- /dev/null +++ b/recipes-sota/rvi-sota-client/sota-installer_git.bb | |||
@@ -0,0 +1,25 @@ | |||
1 | require rvi-sota-client.inc | ||
2 | |||
3 | |||
4 | SYSTEMD_SERVICE_${PN} = "sota-installer.service" | ||
5 | |||
6 | DEPENDS += " rvi-sota-client " | ||
7 | |||
8 | FILES_${PN} = " \ | ||
9 | ${bindir}/sota-installer \ | ||
10 | ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/sota-installer.service', '', d)} \ | ||
11 | " | ||
12 | |||
13 | do_compile_prepend() { | ||
14 | cd sota-installer | ||
15 | } | ||
16 | |||
17 | do_install() { | ||
18 | install -d ${D}${bindir} | ||
19 | install -m 0755 target/${TARGET_SYS}/release/sota-installer ${D}${bindir} | ||
20 | |||
21 | if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then | ||
22 | install -d ${D}/${systemd_unitdir}/system | ||
23 | install -m 0644 ${WORKDIR}/sota-installer.service ${D}/${systemd_unitdir}/system/sota-installer.service | ||
24 | fi | ||
25 | } | ||
diff --git a/recipes-sota/rvi-sota-client/sota-launcher_git.bb b/recipes-sota/rvi-sota-client/sota-launcher_git.bb new file mode 100644 index 0000000..e9874e7 --- /dev/null +++ b/recipes-sota/rvi-sota-client/sota-launcher_git.bb | |||
@@ -0,0 +1,15 @@ | |||
1 | require rvi-sota-client.inc | ||
2 | |||
3 | |||
4 | DEPENDS += " rvi-sota-client " | ||
5 | FILES_${PN} = "${bindir}/sota-launcher" | ||
6 | |||
7 | |||
8 | do_compile_prepend() { | ||
9 | cd sota-launcher | ||
10 | } | ||
11 | |||
12 | do_install() { | ||
13 | install -d ${D}${bindir} | ||
14 | install -m 0755 target/${TARGET_SYS}/release/sota-launcher ${D}${bindir} | ||
15 | } | ||
diff --git a/recipes-sota/sota-tools/sota-tools_git.bb b/recipes-sota/sota-tools/sota-tools_git.bb index e472ff8..2b9d0cb 100644 --- a/recipes-sota/sota-tools/sota-tools_git.bb +++ b/recipes-sota/sota-tools/sota-tools_git.bb | |||
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=65d26fcc2f35ea6a181ac777e42db1ea" | |||
6 | S = "${WORKDIR}/git" | 6 | S = "${WORKDIR}/git" |
7 | 7 | ||
8 | SRC_URI = "gitsm://github.com/advancedtelematic/sota-tools.git;branch=master" | 8 | SRC_URI = "gitsm://github.com/advancedtelematic/sota-tools.git;branch=master" |
9 | SRCREV = "c6ecec3e86c423dd6caaa362a5ff0a1a6f4072a8" | 9 | SRCREV = "216cb84db98e9b0f8c6c1c407f480c5dd0b3cf62" |
10 | 10 | ||
11 | inherit cmake | 11 | inherit cmake |
12 | 12 | ||