summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.adoc32
-rw-r--r--classes/image_types_ostree.bbclass8
-rw-r--r--classes/image_types_ota.bbclass2
-rw-r--r--classes/sota_qemux86-64.bbclass2
-rw-r--r--classes/sota_raspberrypi.bbclass1
-rw-r--r--conf/include/bblayers/sota.inc2
-rw-r--r--conf/include/bblayers/sota_qemux86-64.inc1
-rw-r--r--conf/include/bblayers/sota_raspberrypi2.inc1
-rw-r--r--conf/include/bblayers/sota_raspberrypi3.inc1
l---------lib/oeqa/selftest/cases/qemucommand.py1
-rw-r--r--lib/oeqa/selftest/cases/updater.py (renamed from lib/oeqa/selftest/updater.py)25
l---------lib/oeqa/selftest/qemucommand.py1
-rw-r--r--recipes-bsp/u-boot/u-boot_2016.11.bb22
-rw-r--r--recipes-sota/aktualizr/aktualizr-hsm-prov.bb (renamed from recipes-sota/aktualizr/aktualizr-hsm-test-prov.bb)2
-rw-r--r--recipes-sota/aktualizr/aktualizr_git.bb4
-rw-r--r--recipes-sota/ostree/ostree_git.bb1
-rw-r--r--recipes-sota/rvi-sota-client/files/sota-client-autoprovision.service15
-rw-r--r--recipes-sota/rvi-sota-client/files/sota-client-ostree.service13
-rw-r--r--recipes-sota/rvi-sota-client/files/sota-client-uptane.service15
-rw-r--r--recipes-sota/rvi-sota-client/files/sota-installer.service12
-rw-r--r--recipes-sota/rvi-sota-client/rvi-sota-client.inc173
-rw-r--r--recipes-sota/rvi-sota-client/rvi-sota-client_git.bb59
-rw-r--r--recipes-sota/rvi-sota-client/sota-installer_git.bb25
-rw-r--r--recipes-sota/rvi-sota-client/sota-launcher_git.bb15
-rw-r--r--recipes-support/libp11/files/0001-Workaround-for-a-buggy-version-of-openssl-1.0.2m.patch42
-rw-r--r--recipes-support/libp11/libp11_0.4.7.bb3
-rw-r--r--recipes-support/util-linux/util-linux_%.bbappend3
-rw-r--r--scripts/lib/wic/plugins/source/otaimage.py2
-rw-r--r--scripts/qemucommand.py4
29 files changed, 97 insertions, 390 deletions
diff --git a/README.adoc b/README.adoc
index 0917e45..403e0f8 100644
--- a/README.adoc
+++ b/README.adoc
@@ -44,6 +44,16 @@ and get as a result an "ostree_repo" folder in your images directory (tmp/deploy
44 44
45Although aglsetup.sh hooks provide reasonable defaults for SOTA-related variables, you may want to tune some of them. 45Although aglsetup.sh hooks provide reasonable defaults for SOTA-related variables, you may want to tune some of them.
46 46
47=== Build problems
48
49Multilib systems may require adding this line to `local.conf`:
50
51....
52HOSTTOOLS += "x86_64-linux-gnu-gcc"
53....
54
55Ubuntu users that encounter an error due to missing `Python.h` should install `libpython2.7-dev` on their host machine.
56
47== Supported boards 57== Supported boards
48 58
49Currently supported platforms are 59Currently supported platforms are
@@ -69,7 +79,7 @@ Although we have used U-Boot so far, other boot loaders can be configured work w
69* `OSTREE_OSNAME` - OS deployment name on your target device. For more information about deployments and osnames see the https://ostree.readthedocs.io/en/latest/manual/deployment/[OSTree documentation]. Defaults to "poky". 79* `OSTREE_OSNAME` - OS deployment name on your target device. For more information about deployments and osnames see the https://ostree.readthedocs.io/en/latest/manual/deployment/[OSTree documentation]. Defaults to "poky".
70* `OSTREE_INITRAMFS_IMAGE` - initramfs/initrd image that is used as a proxy while booting into OSTree deployment. Do not change this setting unless you are sure that your initramfs can serve as such a proxy. 80* `OSTREE_INITRAMFS_IMAGE` - initramfs/initrd image that is used as a proxy while booting into OSTree deployment. Do not change this setting unless you are sure that your initramfs can serve as such a proxy.
71* `SOTA_PACKED_CREDENTIALS` - when set, your ostree commit will be pushed to a remote repo as a bitbake step. This should be the path to a zipped credentials file in https://github.com/advancedtelematic/aktualizr/blob/master/docs/credentials.adoc[the format accepted by garage-push]. 81* `SOTA_PACKED_CREDENTIALS` - when set, your ostree commit will be pushed to a remote repo as a bitbake step. This should be the path to a zipped credentials file in https://github.com/advancedtelematic/aktualizr/blob/master/docs/credentials.adoc[the format accepted by garage-push].
72* `SOTA_CLIENT_PROV` - which provisioning method to use. Valid options are https://github.com/advancedtelematic/aktualizr/blob/master/docs/automatic-provisioning.adoc[`aktualizr-auto-prov`], https://github.com/advancedtelematic/aktualizr/blob/master/docs/implicit-provisioning.adoc[`aktualizr-implicit-prov`], and `aktualizr-hsm-test-prov`. The default is `aktualizr-auto-prov`. This can also be set to an empty string to avoid using a provisioning recipe. 82* `SOTA_CLIENT_PROV` - which provisioning method to use. Valid options are https://github.com/advancedtelematic/aktualizr/blob/master/docs/automatic-provisioning.adoc[`aktualizr-auto-prov`], https://github.com/advancedtelematic/aktualizr/blob/master/docs/implicit-provisioning.adoc[`aktualizr-implicit-prov`], and `aktualizr-hsm-prov`. The default is `aktualizr-auto-prov`. This can also be set to an empty string to avoid using a provisioning recipe.
73* `SOTA_CLIENT_FEATURES` - extensions to aktualizr. Multiple can be specified if separated by spaces. Valid options are `hsm` (to build with HSM support) and `secondary-example` (to install an example https://github.com/advancedtelematic/aktualizr/blob/master/docs/legacysecondary.adoc[legacy secondary interface] in the image). 83* `SOTA_CLIENT_FEATURES` - extensions to aktualizr. Multiple can be specified if separated by spaces. Valid options are `hsm` (to build with HSM support) and `secondary-example` (to install an example https://github.com/advancedtelematic/aktualizr/blob/master/docs/legacysecondary.adoc[legacy secondary interface] in the image).
74* `SOTA_LEGACY_SECONDARY_INTERFACE` - path to a legacy secondary interface installed on the device. To use the example interface from the Aktualizr repo, use `/usr/bin/example-interface` and make sure `SOTA_CLIENT_FEATURES = "secondary-example"`. 84* `SOTA_LEGACY_SECONDARY_INTERFACE` - path to a legacy secondary interface installed on the device. To use the example interface from the Aktualizr repo, use `/usr/bin/example-interface` and make sure `SOTA_CLIENT_FEATURES = "secondary-example"`.
75* `SOTA_SECONDARY_ECUS` - a list of paths separated by spaces of JSON configuration files for virtual secondaries on the host. These will be installed into `/var/sota/ecus` on the device. 85* `SOTA_SECONDARY_ECUS` - a list of paths separated by spaces of JSON configuration files for virtual secondaries on the host. These will be installed into `/var/sota/ecus` on the device.
@@ -79,25 +89,25 @@ Although we have used U-Boot so far, other boot loaders can be configured work w
79 89
80=== OSTree 90=== OSTree
81 91
82OSTree includes its own simple http server. It just exposes the whole OSTree repository to the network so that any remote device can pull data from it to device's local repository. To use the OSTree http server, you will need OSTree installed on your build machine. (Alternatively, you could run version built inside Yocto using bitbake's http://www.openembedded.org/wiki/Devshell[devshell].) 92OSTree used to include a simple HTTP server as part of the ostree binary, but this has been removed in more recent versions. However, OSTree repositories are self-contained directories, and can be trivially served over the network using any HTTP server. For example, you could use Python's SimpleHTTPServer:
83
84To expose your repo, run ostree trivial-httpd using any free port:
85 93
86.... 94....
87ostree trivial-httpd tmp/deploy/images/qemux86-64/ostree_repo -P 57556 95cd tmp/deploy/images/qemux86-64/ostree_repo
96python -m SimpleHTTPServer <port> # port defaults to 8000
88.... 97....
89 98
90You can then run ostree from inside your device by adding your repo: 99You can then run ostree from inside your device by adding your repo:
91 100
92.... 101....
93# agl-remote identifies the remote server in your local repo 102# This behaves like adding a Git remote; you can name it anything
94ostree remote add --no-gpg-verify my-remote http://192.168.7.1:57556 ota 103ostree remote add --no-gpg-verify my-remote http://<your-ip>:<port>
95 104
96# ota is a branch name in the remote repo, set in OSTREE_BRANCHNAME 105# If OSTREE_BRANCHNAME is set in local.conf, that will be the name of the
97ostree pull my-remote ota 106# branch. If not set, it defaults to the value of MACHINE (e.g. qemux86-64).
107ostree pull my-remote <branch>
98 108
99# poky is OS name as set in OSTREE_OSNAME 109# poky is the OS name as set in OSTREE_OSNAME
100ostree admin deploy --os=poky my-remote:ota 110ostree admin deploy --os=poky my-remote:<branch>
101.... 111....
102 112
103After restarting, you will boot into the newly deployed OS image. 113After restarting, you will boot into the newly deployed OS image.
diff --git a/classes/image_types_ostree.bbclass b/classes/image_types_ostree.bbclass
index cf2e52f..f350449 100644
--- a/classes/image_types_ostree.bbclass
+++ b/classes/image_types_ostree.bbclass
@@ -2,7 +2,7 @@
2 2
3inherit image 3inherit image
4 4
5IMAGE_DEPENDS_ostree = "ostree-native:do_populate_sysroot \ 5do_image_ostree[depends] += "ostree-native:do_populate_sysroot \
6 openssl-native:do_populate_sysroot \ 6 openssl-native:do_populate_sysroot \
7 coreutils-native:do_populate_sysroot \ 7 coreutils-native:do_populate_sysroot \
8 unzip-native:do_populate_sysroot \ 8 unzip-native:do_populate_sysroot \
@@ -162,7 +162,7 @@ IMAGE_CMD_ostree () {
162} 162}
163 163
164IMAGE_TYPEDEP_ostreepush = "ostree" 164IMAGE_TYPEDEP_ostreepush = "ostree"
165IMAGE_DEPENDS_ostreepush = "aktualizr-native:do_populate_sysroot ca-certificates-native:do_populate_sysroot " 165do_image_ostreepush[depends] += "aktualizr-native:do_populate_sysroot ca-certificates-native:do_populate_sysroot"
166IMAGE_CMD_ostreepush () { 166IMAGE_CMD_ostreepush () {
167 # Print warnings if credetials are not set or if the file has not been found. 167 # Print warnings if credetials are not set or if the file has not been found.
168 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then 168 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then
@@ -180,7 +180,7 @@ IMAGE_CMD_ostreepush () {
180} 180}
181 181
182IMAGE_TYPEDEP_garagesign = "ostreepush" 182IMAGE_TYPEDEP_garagesign = "ostreepush"
183IMAGE_DEPENDS_garagesign = "aktualizr-native:do_populate_sysroot" 183do_image_garage_sign[depends] += "aktualizr-native:do_populate_sysroot"
184IMAGE_CMD_garagesign () { 184IMAGE_CMD_garagesign () {
185 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then 185 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then
186 # if credentials are issued by a server that doesn't support offline signing, exit silently 186 # if credentials are issued by a server that doesn't support offline signing, exit silently
@@ -225,7 +225,7 @@ IMAGE_CMD_garagesign () {
225} 225}
226 226
227IMAGE_TYPEDEP_garagecheck = "ostreepush garagesign" 227IMAGE_TYPEDEP_garagecheck = "ostreepush garagesign"
228IMAGE_DEPENDS_garagecheck = "aktualizr-native:do_populate_sysroot" 228do_image_garagecheck[depends] += "aktualizr-native:do_populate_sysroot"
229IMAGE_CMD_garagecheck () { 229IMAGE_CMD_garagecheck () {
230 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then 230 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then
231 # if credentials are issued by a server that doesn't support offline signing, exit silently 231 # if credentials are issued by a server that doesn't support offline signing, exit silently
diff --git a/classes/image_types_ota.bbclass b/classes/image_types_ota.bbclass
index 5dc4811..b827444 100644
--- a/classes/image_types_ota.bbclass
+++ b/classes/image_types_ota.bbclass
@@ -11,7 +11,7 @@ inherit image
11 11
12OSTREE_BOOTLOADER ??= 'u-boot' 12OSTREE_BOOTLOADER ??= 'u-boot'
13 13
14IMAGE_DEPENDS_otaimg = "e2fsprogs-native:do_populate_sysroot \ 14do_image_otaimg[depends] += "e2fsprogs-native:do_populate_sysroot \
15 ${@'grub:do_populate_sysroot' if d.getVar('OSTREE_BOOTLOADER', True) == 'grub' else ''} \ 15 ${@'grub:do_populate_sysroot' if d.getVar('OSTREE_BOOTLOADER', True) == 'grub' else ''} \
16 ${@'virtual/bootloader:do_deploy' if d.getVar('OSTREE_BOOTLOADER', True) == 'u-boot' else ''}" 16 ${@'virtual/bootloader:do_deploy' if d.getVar('OSTREE_BOOTLOADER', True) == 'u-boot' else ''}"
17 17
diff --git a/classes/sota_qemux86-64.bbclass b/classes/sota_qemux86-64.bbclass
index 53e0026..666ad6b 100644
--- a/classes/sota_qemux86-64.bbclass
+++ b/classes/sota_qemux86-64.bbclass
@@ -4,7 +4,7 @@ PREFERRED_VERSION_linux-yocto_qemux86-64_sota = "4.4%"
4IMAGE_FSTYPES_remove = "wic" 4IMAGE_FSTYPES_remove = "wic"
5 5
6# U-Boot support for SOTA 6# U-Boot support for SOTA
7PREFERRED_PROVIDER_virtual/bootloader_sota = "u-boot-ota" 7PREFERRED_PROVIDER_virtual/bootloader_sota = "u-boot"
8UBOOT_MACHINE_sota = "qemu-x86_defconfig" 8UBOOT_MACHINE_sota = "qemu-x86_defconfig"
9OSTREE_BOOTLOADER ?= "u-boot" 9OSTREE_BOOTLOADER ?= "u-boot"
10 10
diff --git a/classes/sota_raspberrypi.bbclass b/classes/sota_raspberrypi.bbclass
index f8e7347..2c69ea0 100644
--- a/classes/sota_raspberrypi.bbclass
+++ b/classes/sota_raspberrypi.bbclass
@@ -1,3 +1,4 @@
1RPI_USE_U_BOOT_sota = "1"
1KERNEL_IMAGETYPE_sota = "uImage" 2KERNEL_IMAGETYPE_sota = "uImage"
2PREFERRED_PROVIDER_virtual/bootloader_sota ?= "u-boot" 3PREFERRED_PROVIDER_virtual/bootloader_sota ?= "u-boot"
3UBOOT_MACHINE_raspberrypi2_sota ?= "rpi_2_defconfig" 4UBOOT_MACHINE_raspberrypi2_sota ?= "rpi_2_defconfig"
diff --git a/conf/include/bblayers/sota.inc b/conf/include/bblayers/sota.inc
index 97edecb..26eea22 100644
--- a/conf/include/bblayers/sota.inc
+++ b/conf/include/bblayers/sota.inc
@@ -1,5 +1,3 @@
1
2BBLAYERS += "${METADIR}/meta-updater" 1BBLAYERS += "${METADIR}/meta-updater"
3BBLAYERS += "${METADIR}/meta-openembedded/meta-filesystems" 2BBLAYERS += "${METADIR}/meta-openembedded/meta-filesystems"
4BBLAYERS += "${METADIR}/meta-openembedded/meta-oe" 3BBLAYERS += "${METADIR}/meta-openembedded/meta-oe"
5BBLAYERS += "${METADIR}/meta-rust"
diff --git a/conf/include/bblayers/sota_qemux86-64.inc b/conf/include/bblayers/sota_qemux86-64.inc
index 22ace81..12d32ff 100644
--- a/conf/include/bblayers/sota_qemux86-64.inc
+++ b/conf/include/bblayers/sota_qemux86-64.inc
@@ -1,2 +1 @@
1
2BBLAYERS += " ${METADIR}/meta-updater-qemux86-64 " BBLAYERS += " ${METADIR}/meta-updater-qemux86-64 "
diff --git a/conf/include/bblayers/sota_raspberrypi2.inc b/conf/include/bblayers/sota_raspberrypi2.inc
index 11ede20..cc26679 100644
--- a/conf/include/bblayers/sota_raspberrypi2.inc
+++ b/conf/include/bblayers/sota_raspberrypi2.inc
@@ -1,2 +1,3 @@
1BBLAYERS += " ${METADIR}/meta-openembedded/meta-python "
1 2
2BBLAYERS += " ${METADIR}/meta-updater-raspberrypi ${METADIR}/meta-raspberrypi " 3BBLAYERS += " ${METADIR}/meta-updater-raspberrypi ${METADIR}/meta-raspberrypi "
diff --git a/conf/include/bblayers/sota_raspberrypi3.inc b/conf/include/bblayers/sota_raspberrypi3.inc
index 11ede20..cc26679 100644
--- a/conf/include/bblayers/sota_raspberrypi3.inc
+++ b/conf/include/bblayers/sota_raspberrypi3.inc
@@ -1,2 +1,3 @@
1BBLAYERS += " ${METADIR}/meta-openembedded/meta-python "
1 2
2BBLAYERS += " ${METADIR}/meta-updater-raspberrypi ${METADIR}/meta-raspberrypi " 3BBLAYERS += " ${METADIR}/meta-updater-raspberrypi ${METADIR}/meta-raspberrypi "
diff --git a/lib/oeqa/selftest/cases/qemucommand.py b/lib/oeqa/selftest/cases/qemucommand.py
new file mode 120000
index 0000000..075cdb8
--- /dev/null
+++ b/lib/oeqa/selftest/cases/qemucommand.py
@@ -0,0 +1 @@
../../../../scripts/qemucommand.py \ No newline at end of file
diff --git a/lib/oeqa/selftest/updater.py b/lib/oeqa/selftest/cases/updater.py
index f28349f..9264616 100644
--- a/lib/oeqa/selftest/updater.py
+++ b/lib/oeqa/selftest/cases/updater.py
@@ -1,18 +1,19 @@
1import unittest
2import os 1import os
3import logging 2import logging
4import subprocess 3import subprocess
5import time 4import time
5import unittest
6 6
7from oeqa.selftest.base import oeSelfTest 7from oeqa.selftest.case import OESelftestTestCase
8from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars 8from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars
9from oeqa.selftest.qemucommand import QemuCommand 9from qemucommand import QemuCommand
10 10
11 11
12class SotaToolsTests(oeSelfTest): 12class SotaToolsTests(OESelftestTestCase):
13 13
14 @classmethod 14 @classmethod
15 def setUpClass(cls): 15 def setUpClass(cls):
16 super(SotaToolsTests, cls).setUpClass()
16 logger = logging.getLogger("selftest") 17 logger = logging.getLogger("selftest")
17 logger.info('Running bitbake to build aktualizr-native tools') 18 logger.info('Running bitbake to build aktualizr-native tools')
18 bitbake('aktualizr-native') 19 bitbake('aktualizr-native')
@@ -38,14 +39,15 @@ class SotaToolsTests(oeSelfTest):
38 result = runCmd('%s --help' % p, ignore_status=True) 39 result = runCmd('%s --help' % p, ignore_status=True)
39 self.assertEqual(result.status, 0, "Status not equal to 0. output: %s" % result.output) 40 self.assertEqual(result.status, 0, "Status not equal to 0. output: %s" % result.output)
40 41
41class HsmTests(oeSelfTest): 42
43class HsmTests(OESelftestTestCase):
42 44
43 def test_hsm(self): 45 def test_hsm(self):
44 self.write_config('SOTA_CLIENT_FEATURES="hsm"') 46 self.write_config('SOTA_CLIENT_FEATURES="hsm"')
45 bitbake('core-image-minimal') 47 bitbake('core-image-minimal')
46 48
47 49
48class GeneralTests(oeSelfTest): 50class GeneralTests(OESelftestTestCase):
49 51
50 def test_feature_sota(self): 52 def test_feature_sota(self):
51 result = get_bb_var('DISTRO_FEATURES').find('sota') 53 result = get_bb_var('DISTRO_FEATURES').find('sota')
@@ -104,10 +106,11 @@ class GeneralTests(oeSelfTest):
104 self.assertNotEqual(size1, size2, "Image sizes are identical; image was not rebuilt.") 106 self.assertNotEqual(size1, size2, "Image sizes are identical; image was not rebuilt.")
105 107
106 108
107class QemuTests(oeSelfTest): 109class QemuTests(OESelftestTestCase):
108 110
109 @classmethod 111 @classmethod
110 def setUpClass(cls): 112 def setUpClass(cls):
113 super(QemuTests, cls).setUpClass()
111 cls.qemu, cls.s = qemu_launch(machine='qemux86-64') 114 cls.qemu, cls.s = qemu_launch(machine='qemux86-64')
112 115
113 @classmethod 116 @classmethod
@@ -133,12 +136,13 @@ class QemuTests(oeSelfTest):
133 self.assertEqual(err, b'', 'Error: ' + err.decode()) 136 self.assertEqual(err, b'', 'Error: ' + err.decode())
134 print(value.decode()) 137 print(value.decode())
135 138
136class GrubTests(oeSelfTest): 139
140class GrubTests(OESelftestTestCase):
137 141
138 def setUpLocal(self): 142 def setUpLocal(self):
139 # This is a bit of a hack but I can't see a better option. 143 # This is a bit of a hack but I can't see a better option.
140 path = os.path.abspath(os.path.dirname(__file__)) 144 path = os.path.abspath(os.path.dirname(__file__))
141 metadir = path + "/../../../../" 145 metadir = path + "/../../../../../"
142 grub_config = 'OSTREE_BOOTLOADER = "grub"\nMACHINE = "intel-corei7-64"' 146 grub_config = 'OSTREE_BOOTLOADER = "grub"\nMACHINE = "intel-corei7-64"'
143 self.append_config(grub_config) 147 self.append_config(grub_config)
144 self.meta_intel = metadir + "meta-intel" 148 self.meta_intel = metadir + "meta-intel"
@@ -161,7 +165,8 @@ class GrubTests(oeSelfTest):
161 # Strip off line ending. 165 # Strip off line ending.
162 value_str = value.decode()[:-1] 166 value_str = value.decode()[:-1]
163 self.assertEqual(value_str, machine, 167 self.assertEqual(value_str, machine,
164 'MACHINE does not match hostname: ' + machine + ', ' + value_str) 168 'MACHINE does not match hostname: ' + machine + ', ' + value_str +
169 '\nIs tianocore ovmf installed?')
165 print(value_str) 170 print(value_str)
166 171
167 172
diff --git a/lib/oeqa/selftest/qemucommand.py b/lib/oeqa/selftest/qemucommand.py
deleted file mode 120000
index bc06dde..0000000
--- a/lib/oeqa/selftest/qemucommand.py
+++ /dev/null
@@ -1 +0,0 @@
1../../../scripts/qemucommand.py \ No newline at end of file
diff --git a/recipes-bsp/u-boot/u-boot_2016.11.bb b/recipes-bsp/u-boot/u-boot_2016.11.bb
deleted file mode 100644
index acd4bb8..0000000
--- a/recipes-bsp/u-boot/u-boot_2016.11.bb
+++ /dev/null
@@ -1,22 +0,0 @@
1require recipes-bsp/u-boot/u-boot.inc
2
3HOMEPAGE = "http://www.denx.de/wiki/U-Boot/WebHome"
4SECTION = "bootloaders"
5
6LICENSE = "GPLv2+"
7LIC_FILES_CHKSUM = "file://Licenses/README;md5=a2c678cfd4a4d97135585cad908541c6"
8PE = "1"
9
10DEPENDS += "dtc-native"
11
12SRCREV = "5ea3e51fc481613a8dee8c02848d1b42c81ad892"
13SRC_URI = "git://git.denx.de/u-boot.git"
14S = "${WORKDIR}/git"
15
16PV = "v2016.11+git${SRCPV}"
17
18#This patch is not compliant with u-boot 2016.11
19#Version of u-boot from yocto 2.2 Morty is 2016.03 from:
20# meta/recipes-bsp/u-boot/u-boot_2016.03.bb
21SRC_URI_remove_raspberrypi3 = "file://0003-Include-lowlevel_init.o-for-rpi2.patch"
22SRC_URI_remove_raspberrypi2 = "file://0003-Include-lowlevel_init.o-for-rpi2.patch"
diff --git a/recipes-sota/aktualizr/aktualizr-hsm-test-prov.bb b/recipes-sota/aktualizr/aktualizr-hsm-prov.bb
index 1e893fa..944607c 100644
--- a/recipes-sota/aktualizr/aktualizr-hsm-test-prov.bb
+++ b/recipes-sota/aktualizr/aktualizr-hsm-prov.bb
@@ -21,7 +21,7 @@ require credentials.inc
21do_install() { 21do_install() {
22 install -d ${D}${libdir}/sota 22 install -d ${D}${libdir}/sota
23 aktualizr_implicit_writer -c ${SOTA_PACKED_CREDENTIALS} --no-root-ca \ 23 aktualizr_implicit_writer -c ${SOTA_PACKED_CREDENTIALS} --no-root-ca \
24 -i ${STAGING_DIR_NATIVE}${libdir}/sota/sota_hsm_test.toml -o ${D}${libdir}/sota/sota.toml -p ${D} 24 -i ${STAGING_DIR_NATIVE}${libdir}/sota/sota_hsm_prov.toml -o ${D}${libdir}/sota/sota.toml -p ${D}
25} 25}
26 26
27FILES_${PN} = " \ 27FILES_${PN} = " \
diff --git a/recipes-sota/aktualizr/aktualizr_git.bb b/recipes-sota/aktualizr/aktualizr_git.bb
index 3925922..67ec104 100644
--- a/recipes-sota/aktualizr/aktualizr_git.bb
+++ b/recipes-sota/aktualizr/aktualizr_git.bb
@@ -21,7 +21,7 @@ SRC_URI = " \
21 file://aktualizr.service \ 21 file://aktualizr.service \
22 file://aktualizr-serialcan.service \ 22 file://aktualizr-serialcan.service \
23 " 23 "
24SRCREV = "37fbf0dfd88d42d76301890818dc4e83b35d9fa4" 24SRCREV = "07d73645231681848bd943074498581e930d8582"
25BRANCH ?= "master" 25BRANCH ?= "master"
26 26
27S = "${WORKDIR}/git" 27S = "${WORKDIR}/git"
@@ -58,7 +58,7 @@ do_install_append_class-native () {
58 rm -f ${D}${bindir}/example-interface 58 rm -f ${D}${bindir}/example-interface
59 install -d ${D}${libdir}/sota 59 install -d ${D}${libdir}/sota
60 install -m 0644 ${S}/config/sota_autoprov.toml ${D}/${libdir}/sota/sota_autoprov.toml 60 install -m 0644 ${S}/config/sota_autoprov.toml ${D}/${libdir}/sota/sota_autoprov.toml
61 install -m 0644 ${S}/config/sota_hsm_test.toml ${D}/${libdir}/sota/sota_hsm_test.toml 61 install -m 0644 ${S}/config/sota_hsm_prov.toml ${D}/${libdir}/sota/sota_hsm_prov.toml
62 install -m 0644 ${S}/config/sota_implicit_prov.toml ${D}/${libdir}/sota/sota_implicit_prov.toml 62 install -m 0644 ${S}/config/sota_implicit_prov.toml ${D}/${libdir}/sota/sota_implicit_prov.toml
63 63
64 install -m 0755 ${B}/src/sota_tools/garage-sign-prefix/src/garage-sign/bin/* ${D}${bindir} 64 install -m 0755 ${B}/src/sota_tools/garage-sign-prefix/src/garage-sign/bin/* ${D}${bindir}
diff --git a/recipes-sota/ostree/ostree_git.bb b/recipes-sota/ostree/ostree_git.bb
index 00559b6..ad85775 100644
--- a/recipes-sota/ostree/ostree_git.bb
+++ b/recipes-sota/ostree/ostree_git.bb
@@ -11,6 +11,7 @@ SRC_URI = "gitsm://github.com/ostreedev/ostree.git;branch=master"
11SRCREV="854a823e05d6fe8b610c02c2a71eaeb2bf1e98a6" 11SRCREV="854a823e05d6fe8b610c02c2a71eaeb2bf1e98a6"
12 12
13PV = "v2017.13" 13PV = "v2017.13"
14PR = "1"
14 15
15S = "${WORKDIR}/git" 16S = "${WORKDIR}/git"
16 17
diff --git a/recipes-sota/rvi-sota-client/files/sota-client-autoprovision.service b/recipes-sota/rvi-sota-client/files/sota-client-autoprovision.service
deleted file mode 100644
index 11b1354..0000000
--- a/recipes-sota/rvi-sota-client/files/sota-client-autoprovision.service
+++ /dev/null
@@ -1,15 +0,0 @@
1[Unit]
2Description=SOTA Client Autoprovisioning
3Requires=network-online.target
4After=network-online.target
5
6[Service]
7Type=oneshot
8WorkingDirectory=/var/sota
9Environment=SOTA_CERT_DIR=/var/sota
10ExecStart=/usr/bin/sota_provision.sh sota_provisioning_credentials
11RemainAfterExit=true
12StandardOutput=journal
13
14[Install]
15WantedBy=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
deleted file mode 100644
index 093a994..0000000
--- a/recipes-sota/rvi-sota-client/files/sota-client-ostree.service
+++ /dev/null
@@ -1,13 +0,0 @@
1[Unit]
2Description=SOTA Client
3Requires=network-online.target
4After=network.target network-online.target
5
6[Service]
7RestartSec=5
8Restart=on-failure
9Environment="RUST_LOG=debug"
10ExecStart=/usr/bin/sota_client --config /sysroot/boot/sota.toml --device-package-manager ostree
11
12[Install]
13WantedBy=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
deleted file mode 100644
index a2d80ce..0000000
--- a/recipes-sota/rvi-sota-client/files/sota-client-uptane.service
+++ /dev/null
@@ -1,15 +0,0 @@
1[Unit]
2Description=SOTA Client
3Requires=network-online.target
4After=network.target network-online.target
5Requires=sota-client-autoprovision
6After=sota-client-autoprovision
7
8[Service]
9RestartSec=5
10Restart=on-failure
11Environment="RUST_LOG=debug"
12ExecStart=/usr/bin/sota_client --config /var/sota/sota.toml --device-package-manager uptane
13
14[Install]
15WantedBy=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
deleted file mode 100644
index a4fd99e..0000000
--- a/recipes-sota/rvi-sota-client/files/sota-installer.service
+++ /dev/null
@@ -1,12 +0,0 @@
1[Unit]
2Description=SOTA Secondary ECU Installer
3Requires=network-online.target
4After=network-online.target
5
6[Service]
7RestartSec=10
8Restart=always
9ExecStart=/usr/bin/sota-installer --level debug --oneshot --config /var/sota/installer.toml
10
11[Install]
12WantedBy=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
deleted file mode 100644
index 712b9b3..0000000
--- a/recipes-sota/rvi-sota-client/rvi-sota-client.inc
+++ /dev/null
@@ -1,173 +0,0 @@
1inherit cargo systemd
2
3DESCRIPTION = "rvi-sota-client recipe"
4HOMEPAGE = "https://github.com/advancedtelematic/rvi_sota_client"
5LICENSE = "MPL-2.0"
6LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=65d26fcc2f35ea6a181ac777e42db1ea"
7
8BBCLASSEXTEND = "native"
9
10S = "${WORKDIR}/git"
11
12SRC_URI[index.md5sum] = "6a635e8a081b4d4ba4cebffd721c2d7d"
13SRC_URI[index.sha256sum] = "1913c41d4b8de89a931b6f9e418f83e70a083e12e6c247e8510ee932571ebae2"
14
15# also update PV and SRC_URI crates when updating SRCREV
16SRCREV = "be8ec83af2051a2b2499ce8878242771c65f0f1c"
17
18PR = "1"
19
20# generate with: `make package-version`
21PV = "0.2.34-8-gbe8ec83"
22
23# generate with: `make yocto-version`
24SRC_URI = " \
25git://github.com/advancedtelematic/rvi_sota_client \
26file://sota-client-autoprovision.service \
27file://sota-client-ostree.service \
28file://sota-client-uptane.service \
29file://sota-installer.service \
30crate://crates.io/adler32/1.0.2 \
31crate://crates.io/advapi32-sys/0.2.0 \
32crate://crates.io/aho-corasick/0.6.3 \
33crate://crates.io/ansi_term/0.9.0 \
34crate://crates.io/antidote/1.0.0 \
35crate://crates.io/atty/0.2.3 \
36crate://crates.io/backtrace/0.3.3 \
37crate://crates.io/backtrace-sys/0.1.15 \
38crate://crates.io/base64/0.6.0 \
39crate://crates.io/bincode/0.9.0 \
40crate://crates.io/bit-set/0.4.0 \
41crate://crates.io/bit-vec/0.4.4 \
42crate://crates.io/bitflags/0.7.0 \
43crate://crates.io/bitflags/0.9.1 \
44crate://crates.io/block-buffer/0.2.0 \
45crate://crates.io/byte-tools/0.2.0 \
46crate://crates.io/byteorder/1.1.0 \
47crate://crates.io/bytes/0.4.5 \
48crate://crates.io/cc/1.0.1 \
49crate://crates.io/cfg-if/0.1.2 \
50crate://crates.io/chan/0.1.19 \
51crate://crates.io/chan-signal/0.3.1 \
52crate://crates.io/chrono/0.4.0 \
53crate://crates.io/clap/2.26.2 \
54crate://crates.io/coco/0.1.1 \
55crate://crates.io/constant_time_eq/0.1.3 \
56crate://crates.io/core-foundation/0.2.3 \
57crate://crates.io/core-foundation-sys/0.2.3 \
58crate://crates.io/crossbeam/0.3.0 \
59crate://crates.io/crypt32-sys/0.2.0 \
60crate://crates.io/crypto-mac/0.4.0 \
61crate://crates.io/dbghelp-sys/0.2.0 \
62crate://crates.io/dbus/0.5.4 \
63crate://crates.io/digest/0.6.2 \
64crate://crates.io/dtoa/0.4.2 \
65crate://crates.io/either/1.2.0 \
66crate://crates.io/env_logger/0.4.3 \
67crate://crates.io/error-chain/0.10.0 \
68crate://crates.io/fake-simd/0.1.2 \
69crate://crates.io/filetime/0.1.14 \
70crate://crates.io/foreign-types/0.2.0 \
71crate://crates.io/fuchsia-zircon/0.2.1 \
72crate://crates.io/fuchsia-zircon-sys/0.2.0 \
73crate://crates.io/futures/0.1.16 \
74crate://crates.io/gcc/0.3.54 \
75crate://crates.io/generic-array/0.8.3 \
76crate://crates.io/getopts/0.2.15 \
77crate://crates.io/hex/0.2.0 \
78crate://crates.io/hmac/0.4.2 \
79crate://crates.io/httparse/1.2.3 \
80crate://crates.io/hyper/0.10.13 \
81crate://crates.io/hyper-native-tls/0.2.4 \
82crate://crates.io/idna/0.1.4 \
83crate://crates.io/iovec/0.1.1 \
84crate://crates.io/itoa/0.3.4 \
85crate://crates.io/kernel32-sys/0.2.2 \
86crate://crates.io/language-tags/0.2.2 \
87crate://crates.io/lazy_static/0.2.9 \
88crate://crates.io/libc/0.2.32 \
89crate://crates.io/libdbus-sys/0.1.1 \
90crate://crates.io/libflate/0.1.11 \
91crate://crates.io/log/0.3.8 \
92crate://crates.io/maplit/0.1.5 \
93crate://crates.io/matches/0.1.6 \
94crate://crates.io/memchr/1.0.1 \
95crate://crates.io/metadeps/1.1.2 \
96crate://crates.io/mime/0.2.6 \
97crate://crates.io/native-tls/0.1.4 \
98crate://crates.io/net2/0.2.31 \
99crate://crates.io/nodrop/0.1.9 \
100crate://crates.io/num/0.1.40 \
101crate://crates.io/num-integer/0.1.35 \
102crate://crates.io/num-iter/0.1.34 \
103crate://crates.io/num-traits/0.1.40 \
104crate://crates.io/num_cpus/1.7.0 \
105crate://crates.io/odds/0.2.25 \
106crate://crates.io/openssl/0.9.19 \
107crate://crates.io/openssl-sys/0.9.19 \
108crate://crates.io/pem/0.4.1 \
109crate://crates.io/percent-encoding/1.0.0 \
110crate://crates.io/pkg-config/0.3.9 \
111crate://crates.io/quote/0.3.15 \
112crate://crates.io/rand/0.3.17 \
113crate://crates.io/rayon/0.8.2 \
114crate://crates.io/rayon-core/1.2.1 \
115crate://crates.io/redox_syscall/0.1.31 \
116crate://crates.io/redox_termios/0.1.1 \
117crate://crates.io/regex/0.2.2 \
118crate://crates.io/regex-syntax/0.4.1 \
119crate://crates.io/reqwest/0.6.2 \
120crate://crates.io/ring/0.12.1 \
121crate://crates.io/rust-crypto/0.2.36 \
122crate://crates.io/rustc-demangle/0.1.5 \
123crate://crates.io/rustc-serialize/0.3.24 \
124crate://crates.io/safemem/0.2.0 \
125crate://crates.io/schannel/0.1.8 \
126crate://crates.io/scopeguard/0.3.2 \
127crate://crates.io/secur32-sys/0.2.0 \
128crate://crates.io/security-framework/0.1.16 \
129crate://crates.io/security-framework-sys/0.1.16 \
130crate://crates.io/serde/1.0.15 \
131crate://crates.io/serde_derive/1.0.15 \
132crate://crates.io/serde_derive_internals/0.16.0 \
133crate://crates.io/serde_json/1.0.3 \
134crate://crates.io/serde_urlencoded/0.5.1 \
135crate://crates.io/sha1/0.2.0 \
136crate://crates.io/sha2/0.6.0 \
137crate://crates.io/strsim/0.6.0 \
138crate://crates.io/syn/0.11.11 \
139crate://crates.io/synom/0.11.3 \
140crate://crates.io/tar/0.4.13 \
141crate://crates.io/tempdir/0.3.5 \
142crate://crates.io/term_size/0.3.0 \
143crate://crates.io/termion/1.5.1 \
144crate://crates.io/textwrap/0.8.0 \
145crate://crates.io/thread_local/0.3.4 \
146crate://crates.io/time/0.1.38 \
147crate://crates.io/toml/0.2.1 \
148crate://crates.io/toml/0.4.5 \
149crate://crates.io/traitobject/0.1.0 \
150crate://crates.io/tungstenite/0.5.0 \
151crate://crates.io/typeable/0.1.2 \
152crate://crates.io/typenum/1.9.0 \
153crate://crates.io/unicase/1.4.2 \
154crate://crates.io/unicode-bidi/0.3.4 \
155crate://crates.io/unicode-normalization/0.1.5 \
156crate://crates.io/unicode-width/0.1.4 \
157crate://crates.io/unicode-xid/0.0.4 \
158crate://crates.io/unix_socket/0.5.0 \
159crate://crates.io/unreachable/1.0.0 \
160crate://crates.io/untrusted/0.5.1 \
161crate://crates.io/url/1.5.1 \
162crate://crates.io/utf-8/0.7.1 \
163crate://crates.io/utf8-ranges/1.0.0 \
164crate://crates.io/uuid/0.5.1 \
165crate://crates.io/vcpkg/0.2.2 \
166crate://crates.io/vec_map/0.8.0 \
167crate://crates.io/version_check/0.1.3 \
168crate://crates.io/void/1.0.2 \
169crate://crates.io/winapi/0.2.8 \
170crate://crates.io/winapi-build/0.1.1 \
171crate://crates.io/ws2_32-sys/0.2.1 \
172crate://crates.io/xattr/0.1.11 \
173"
diff --git a/recipes-sota/rvi-sota-client/rvi-sota-client_git.bb b/recipes-sota/rvi-sota-client/rvi-sota-client_git.bb
deleted file mode 100644
index e286598..0000000
--- a/recipes-sota/rvi-sota-client/rvi-sota-client_git.bb
+++ /dev/null
@@ -1,59 +0,0 @@
1require rvi-sota-client.inc
2
3
4SYSTEMD_SERVICE_${PN} = "sota-client.service sota-client-autoprovision.service"
5
6FILES_${PN} = " \
7/lib64 \
8${bindir}/sota_client \
9${bindir}/sota_sysinfo.sh \
10${bindir}/sota_provision.sh \
11${sysconfdir}/sota_client.version \
12${sysconfdir}/sota_certificates \
13${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/sota-client.service', '', d)} \
14${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/sota-client-autoprovision.service', '', d)} \
15"
16
17DEPENDS += " openssl openssl-native dbus "
18RDEPENDS_${PN} = " \
19bash \
20curl \
21libcrypto \
22libssl \
23lshw \
24jq \
25python-petname \
26sota-launcher \
27zip \
28"
29
30export SOTA_PACKED_CREDENTIALS
31
32do_compile_prepend() {
33 export SOTA_VERSION=$(make sota-version)
34 cd sota-client
35}
36
37do_install() {
38 ln -fs /lib ${D}/lib64
39
40 install -d ${D}${bindir}
41 install -d ${D}${sysconfdir}
42
43 echo `git log -1 --pretty=format:%H` > ${D}${sysconfdir}/sota_client.version
44 install -c ${S}/sota-client/docker/sota_certificates ${D}${sysconfdir}
45
46 install -m 0755 target/${TARGET_SYS}/release/sota_client ${D}${bindir}
47 install -m 0755 ${S}/sota-client/docker/sota_provision.sh ${D}${bindir}
48 install -m 0755 ${S}/sota-client/docker/sota_sysinfo.sh ${D}${bindir}
49
50 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
51 install -d ${D}/${systemd_unitdir}/system
52 if [ -n "$SOTA_PACKED_CREDENTIALS" ]; then
53 install -m 0644 ${WORKDIR}/sota-client-uptane.service ${D}/${systemd_unitdir}/system/sota-client.service
54 else
55 install -m 0644 ${WORKDIR}/sota-client-ostree.service ${D}/${systemd_unitdir}/system/sota-client.service
56 fi
57 install -m 0644 ${WORKDIR}/sota-client-autoprovision.service ${D}/${systemd_unitdir}/system/sota-client-autoprovision.service
58 fi
59}
diff --git a/recipes-sota/rvi-sota-client/sota-installer_git.bb b/recipes-sota/rvi-sota-client/sota-installer_git.bb
deleted file mode 100644
index 09f6e5d..0000000
--- a/recipes-sota/rvi-sota-client/sota-installer_git.bb
+++ /dev/null
@@ -1,25 +0,0 @@
1require rvi-sota-client.inc
2
3
4SYSTEMD_SERVICE_${PN} = "sota-installer.service"
5
6DEPENDS += " rvi-sota-client "
7
8FILES_${PN} = " \
9${bindir}/sota-installer \
10${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/sota-installer.service', '', d)} \
11"
12
13do_compile_prepend() {
14 cd sota-installer
15}
16
17do_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
deleted file mode 100644
index e9874e7..0000000
--- a/recipes-sota/rvi-sota-client/sota-launcher_git.bb
+++ /dev/null
@@ -1,15 +0,0 @@
1require rvi-sota-client.inc
2
3
4DEPENDS += " rvi-sota-client "
5FILES_${PN} = "${bindir}/sota-launcher"
6
7
8do_compile_prepend() {
9 cd sota-launcher
10}
11
12do_install() {
13 install -d ${D}${bindir}
14 install -m 0755 target/${TARGET_SYS}/release/sota-launcher ${D}${bindir}
15}
diff --git a/recipes-support/libp11/files/0001-Workaround-for-a-buggy-version-of-openssl-1.0.2m.patch b/recipes-support/libp11/files/0001-Workaround-for-a-buggy-version-of-openssl-1.0.2m.patch
new file mode 100644
index 0000000..0538eff
--- /dev/null
+++ b/recipes-support/libp11/files/0001-Workaround-for-a-buggy-version-of-openssl-1.0.2m.patch
@@ -0,0 +1,42 @@
1From ccab5ce63dd5d3dbb4bd02998d21d34407e550f2 Mon Sep 17 00:00:00 2001
2From: Anton Gerasimov <anton.gerasimov@here.com>
3Date: Fri, 19 Jan 2018 12:44:27 +0100
4Subject: [PATCH] Workaround for a buggy version of openssl (1.0.2m)
5
6---
7 src/p11_pkey.c | 12 +++++++++---
8 1 file changed, 9 insertions(+), 3 deletions(-)
9
10diff --git a/src/p11_pkey.c b/src/p11_pkey.c
11index 45d5ad3..75625e6 100644
12--- a/src/p11_pkey.c
13+++ b/src/p11_pkey.c
14@@ -139,8 +139,14 @@ static void EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, const EVP_PKEY_METHOD *src)
15
16 #endif
17
18-#if OPENSSL_VERSION_NUMBER < 0x100020d0L || defined(LIBRESSL_VERSION_NUMBER)
19-static void EVP_PKEY_meth_get_sign(EVP_PKEY_METHOD *pmeth,
20+#if OPENSSL_VERSION_NUMBER <= 0x100020e0L || defined(LIBRESSL_VERSION_NUMBER)
21+
22+# if (OPENSSL_VERSION_NUMBER & 0xFFFFFFF0) == 0x100020d0L
23+# undef EVP_PKEY_meth_get_sign
24+# undef EVP_PKEY_meth_get_decrypt
25+# endif
26+
27+void EVP_PKEY_meth_get_sign(EVP_PKEY_METHOD *pmeth,
28 int (**psign_init) (EVP_PKEY_CTX *ctx),
29 int (**psign) (EVP_PKEY_CTX *ctx,
30 unsigned char *sig, size_t *siglen,
31@@ -152,7 +158,7 @@ static void EVP_PKEY_meth_get_sign(EVP_PKEY_METHOD *pmeth,
32 *psign = pmeth->sign;
33 }
34
35-static void EVP_PKEY_meth_get_decrypt(EVP_PKEY_METHOD *pmeth,
36+void EVP_PKEY_meth_get_decrypt(EVP_PKEY_METHOD *pmeth,
37 int (**pdecrypt_init) (EVP_PKEY_CTX *ctx),
38 int (**pdecrypt) (EVP_PKEY_CTX *ctx,
39 unsigned char *out,
40--
412.15.1
42
diff --git a/recipes-support/libp11/libp11_0.4.7.bb b/recipes-support/libp11/libp11_0.4.7.bb
index 7d77e90..7a93102 100644
--- a/recipes-support/libp11/libp11_0.4.7.bb
+++ b/recipes-support/libp11/libp11_0.4.7.bb
@@ -8,7 +8,8 @@ LICENSE = "LGPLv2+"
8LIC_FILES_CHKSUM = "file://COPYING;md5=fad9b3332be894bab9bc501572864b29" 8LIC_FILES_CHKSUM = "file://COPYING;md5=fad9b3332be894bab9bc501572864b29"
9DEPENDS = "libtool openssl" 9DEPENDS = "libtool openssl"
10 10
11SRC_URI = "git://github.com/OpenSC/libp11.git" 11SRC_URI = "git://github.com/OpenSC/libp11.git \
12 file://0001-Workaround-for-a-buggy-version-of-openssl-1.0.2m.patch"
12SRCREV = "da725ab727342083478150a203a3c80c4551feb4" 13SRCREV = "da725ab727342083478150a203a3c80c4551feb4"
13 14
14S = "${WORKDIR}/git" 15S = "${WORKDIR}/git"
diff --git a/recipes-support/util-linux/util-linux_%.bbappend b/recipes-support/util-linux/util-linux_%.bbappend
deleted file mode 100644
index d653bb2..0000000
--- a/recipes-support/util-linux/util-linux_%.bbappend
+++ /dev/null
@@ -1,3 +0,0 @@
1PACKAGES_append_class-native = "${@bb.utils.contains('DISTRO_FEATURES', 'sota', ' util-linux-agetty-native util-linux-fdisk-native util-linux-cfdisk-native util-linux-sfdisk-native util-linux-swaponoff-native util-linux-losetup-native util-linux-umount-native util-linux-mount-native util-linux-readprofile-native util-linux-uuidd-native util-linux-uuidgen-native util-linux-lscpu-native util-linux-fsck-native util-linux-blkid util-linux-mkfs-native util-linux-mcookie-native util-linux-reset-native util-linux-mkfs.cramfs-native util-linux-fsck.cramfs-native util-linux-fstrim-native util-linux-partx-native ${PN}-bash-completion-native util-linux-hwclock util-linux-findfs-native util-linux-getopt-native util-linux-sulogin-native', ' ', d)}"
2
3PACKAGES_append_class-native = "${@' util-linux-pylibmount-native' if bb.utils.contains('DISTRO_FEATURES', 'sota', True, False, d) and bb.utils.contains('PACKAGECONFIG', 'pylibmount', True, False, d) else ' '}"
diff --git a/scripts/lib/wic/plugins/source/otaimage.py b/scripts/lib/wic/plugins/source/otaimage.py
index 26cfb10..ee8088b 100644
--- a/scripts/lib/wic/plugins/source/otaimage.py
+++ b/scripts/lib/wic/plugins/source/otaimage.py
@@ -20,7 +20,7 @@ import os
20import sys 20import sys
21 21
22from wic.plugins.source.rawcopy import RawCopyPlugin 22from wic.plugins.source.rawcopy import RawCopyPlugin
23from wic.utils.misc import get_bitbake_var 23from wic.misc import get_bitbake_var
24 24
25logger = logging.getLogger('wic') 25logger = logging.getLogger('wic')
26 26
diff --git a/scripts/qemucommand.py b/scripts/qemucommand.py
index 9a893d8..6b1106d 100644
--- a/scripts/qemucommand.py
+++ b/scripts/qemucommand.py
@@ -73,7 +73,7 @@ class QemuCommand(object):
73 try: 73 try:
74 check_output(['kvm-ok']) 74 check_output(['kvm-ok'])
75 self.kvm = True 75 self.kvm = True
76 except CalledProcessError: 76 except Exception:
77 self.kvm = False 77 self.kvm = False
78 else: 78 else:
79 self.kvm = args.kvm 79 self.kvm = args.kvm
@@ -96,7 +96,7 @@ class QemuCommand(object):
96 "-serial", "tcp:127.0.0.1:%d,server,nowait" % self.serial_port, 96 "-serial", "tcp:127.0.0.1:%d,server,nowait" % self.serial_port,
97 "-m", "1G", 97 "-m", "1G",
98 "-usb", 98 "-usb",
99 "-usbdevice", "tablet", 99 "-device", "usb-tablet",
100 "-show-cursor", 100 "-show-cursor",
101 "-vga", "std", 101 "-vga", "std",
102 "-net", netuser, 102 "-net", netuser,