summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.adoc10
-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)81
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.bb9
-rw-r--r--recipes-sota/aktualizr/aktualizr-implicit-prov.bb6
-rw-r--r--recipes-sota/aktualizr/aktualizr_git.bb2
-rw-r--r--recipes-sota/asn1c/asn1c.bb17
-rw-r--r--recipes-sota/asn1c/files/skeletons_dir_fix.patch44
-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
31 files changed, 192 insertions, 400 deletions
diff --git a/README.adoc b/README.adoc
index fbd3239..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
diff --git a/classes/image_types_ostree.bbclass b/classes/image_types_ostree.bbclass
index dcc376d..5ebed81 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 \
@@ -164,7 +164,7 @@ IMAGE_CMD_ostree () {
164} 164}
165 165
166IMAGE_TYPEDEP_ostreepush = "ostree" 166IMAGE_TYPEDEP_ostreepush = "ostree"
167IMAGE_DEPENDS_ostreepush = "aktualizr-native:do_populate_sysroot ca-certificates-native:do_populate_sysroot " 167do_image_ostreepush[depends] += "aktualizr-native:do_populate_sysroot ca-certificates-native:do_populate_sysroot"
168IMAGE_CMD_ostreepush () { 168IMAGE_CMD_ostreepush () {
169 # Print warnings if credetials are not set or if the file has not been found. 169 # Print warnings if credetials are not set or if the file has not been found.
170 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then 170 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then
@@ -182,7 +182,7 @@ IMAGE_CMD_ostreepush () {
182} 182}
183 183
184IMAGE_TYPEDEP_garagesign = "ostreepush" 184IMAGE_TYPEDEP_garagesign = "ostreepush"
185IMAGE_DEPENDS_garagesign = "aktualizr-native:do_populate_sysroot" 185do_image_garage_sign[depends] += "aktualizr-native:do_populate_sysroot"
186IMAGE_CMD_garagesign () { 186IMAGE_CMD_garagesign () {
187 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then 187 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then
188 # if credentials are issued by a server that doesn't support offline signing, exit silently 188 # if credentials are issued by a server that doesn't support offline signing, exit silently
@@ -227,7 +227,7 @@ IMAGE_CMD_garagesign () {
227} 227}
228 228
229IMAGE_TYPEDEP_garagecheck = "ostreepush garagesign" 229IMAGE_TYPEDEP_garagecheck = "ostreepush garagesign"
230IMAGE_DEPENDS_garagecheck = "aktualizr-native:do_populate_sysroot" 230do_image_garagecheck[depends] += "aktualizr-native:do_populate_sysroot"
231IMAGE_CMD_garagecheck () { 231IMAGE_CMD_garagecheck () {
232 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then 232 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then
233 # if credentials are issued by a server that doesn't support offline signing, exit silently 233 # 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 be9a017..e753e0e 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..91ac9fc 100644
--- a/lib/oeqa/selftest/updater.py
+++ b/lib/oeqa/selftest/cases/updater.py
@@ -1,18 +1,20 @@
1import unittest 1# pylint: disable=C0111,C0325
2import os 2import os
3import logging 3import logging
4import subprocess 4import subprocess
5import time 5import unittest
6from time import sleep
6 7
7from oeqa.selftest.base import oeSelfTest 8from oeqa.selftest.case import OESelftestTestCase
8from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars 9from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars
9from oeqa.selftest.qemucommand import QemuCommand 10from qemucommand import QemuCommand
10 11
11 12
12class SotaToolsTests(oeSelfTest): 13class SotaToolsTests(OESelftestTestCase):
13 14
14 @classmethod 15 @classmethod
15 def setUpClass(cls): 16 def setUpClass(cls):
17 super(SotaToolsTests, cls).setUpClass()
16 logger = logging.getLogger("selftest") 18 logger = logging.getLogger("selftest")
17 logger.info('Running bitbake to build aktualizr-native tools') 19 logger.info('Running bitbake to build aktualizr-native tools')
18 bitbake('aktualizr-native') 20 bitbake('aktualizr-native')
@@ -38,22 +40,23 @@ class SotaToolsTests(oeSelfTest):
38 result = runCmd('%s --help' % p, ignore_status=True) 40 result = runCmd('%s --help' % p, ignore_status=True)
39 self.assertEqual(result.status, 0, "Status not equal to 0. output: %s" % result.output) 41 self.assertEqual(result.status, 0, "Status not equal to 0. output: %s" % result.output)
40 42
41class HsmTests(oeSelfTest): 43
44class HsmTests(OESelftestTestCase):
42 45
43 def test_hsm(self): 46 def test_hsm(self):
44 self.write_config('SOTA_CLIENT_FEATURES="hsm"') 47 self.write_config('SOTA_CLIENT_FEATURES="hsm"')
45 bitbake('core-image-minimal') 48 bitbake('core-image-minimal')
46 49
47 50
48class GeneralTests(oeSelfTest): 51class GeneralTests(OESelftestTestCase):
49 52
50 def test_feature_sota(self): 53 def test_feature_sota(self):
51 result = get_bb_var('DISTRO_FEATURES').find('sota') 54 result = get_bb_var('DISTRO_FEATURES').find('sota')
52 self.assertNotEqual(result, -1, 'Feature "sota" not set at DISTRO_FEATURES'); 55 self.assertNotEqual(result, -1, 'Feature "sota" not set at DISTRO_FEATURES')
53 56
54 def test_feature_systemd(self): 57 def test_feature_systemd(self):
55 result = get_bb_var('DISTRO_FEATURES').find('systemd') 58 result = get_bb_var('DISTRO_FEATURES').find('systemd')
56 self.assertNotEqual(result, -1, 'Feature "systemd" not set at DISTRO_FEATURES'); 59 self.assertNotEqual(result, -1, 'Feature "systemd" not set at DISTRO_FEATURES')
57 60
58 def test_credentials(self): 61 def test_credentials(self):
59 bitbake('core-image-minimal') 62 bitbake('core-image-minimal')
@@ -66,7 +69,8 @@ class GeneralTests(oeSelfTest):
66 deploydir = get_bb_var('DEPLOY_DIR_IMAGE') 69 deploydir = get_bb_var('DEPLOY_DIR_IMAGE')
67 imagename = get_bb_var('IMAGE_LINK_NAME', 'core-image-minimal') 70 imagename = get_bb_var('IMAGE_LINK_NAME', 'core-image-minimal')
68 # Check if the credentials are included in the output image 71 # Check if the credentials are included in the output image
69 result = runCmd('tar -jtvf %s/%s.tar.bz2 | grep sota_provisioning_credentials.zip' % (deploydir, imagename), ignore_status=True) 72 result = runCmd('tar -jtvf %s/%s.tar.bz2 | grep sota_provisioning_credentials.zip' %
73 (deploydir, imagename), ignore_status=True)
70 self.assertEqual(result.status, 0, "Status not equal to 0. output: %s" % result.output) 74 self.assertEqual(result.status, 0, "Status not equal to 0. output: %s" % result.output)
71 75
72 def test_java(self): 76 def test_java(self):
@@ -99,29 +103,33 @@ class GeneralTests(oeSelfTest):
99 self.assertEqual(result.output, 'ERROR: Unable to find any package producing path /usr/bin/man') 103 self.assertEqual(result.output, 'ERROR: Unable to find any package producing path /usr/bin/man')
100 path2 = os.path.realpath(image_path) 104 path2 = os.path.realpath(image_path)
101 size2 = os.path.getsize(path2) 105 size2 = os.path.getsize(path2)
102 logger.info('Second image %s has size %i' % (path2, size2)) 106 logger.info('Second image %s has size %i', path2, size2)
103 self.assertNotEqual(path1, path2, "Image paths are identical; image was not rebuilt.") 107 self.assertNotEqual(path1, path2, "Image paths are identical; image was not rebuilt.")
104 self.assertNotEqual(size1, size2, "Image sizes are identical; image was not rebuilt.") 108 self.assertNotEqual(size1, size2, "Image sizes are identical; image was not rebuilt.")
105 109
106 110
107class QemuTests(oeSelfTest): 111class QemuTests(OESelftestTestCase):
108 112
109 @classmethod 113 @classmethod
110 def setUpClass(cls): 114 def setUpClass(cls):
115 super(QemuTests, cls).setUpClass()
111 cls.qemu, cls.s = qemu_launch(machine='qemux86-64') 116 cls.qemu, cls.s = qemu_launch(machine='qemux86-64')
112 117
113 @classmethod 118 @classmethod
114 def tearDownClass(cls): 119 def tearDownClass(cls):
115 qemu_terminate(cls.s) 120 qemu_terminate(cls.s)
116 121
122 def run_command(self, command):
123 return qemu_send_command(self.qemu.ssh_port, command)
124
117 def test_hostname(self): 125 def test_hostname(self):
118 print('') 126 print('')
119 print('Checking machine name (hostname) of device:') 127 print('Checking machine name (hostname) of device:')
120 value, err = qemu_send_command(self.qemu.ssh_port, 'hostname') 128 stdout, stderr, retcode = self.run_command('hostname')
121 machine = get_bb_var('MACHINE', 'core-image-minimal') 129 machine = get_bb_var('MACHINE', 'core-image-minimal')
122 self.assertEqual(err, b'', 'Error: ' + err.decode()) 130 self.assertEqual(stderr, b'', 'Error: ' + stderr.decode())
123 # Strip off line ending. 131 # Strip off line ending.
124 value_str = value.decode()[:-1] 132 value_str = stdout.decode()[:-1]
125 self.assertEqual(value_str, machine, 133 self.assertEqual(value_str, machine,
126 'MACHINE does not match hostname: ' + machine + ', ' + value_str) 134 'MACHINE does not match hostname: ' + machine + ', ' + value_str)
127 print(value_str) 135 print(value_str)
@@ -129,16 +137,34 @@ class QemuTests(oeSelfTest):
129 def test_var_sota(self): 137 def test_var_sota(self):
130 print('') 138 print('')
131 print('Checking contents of /var/sota:') 139 print('Checking contents of /var/sota:')
132 value, err = qemu_send_command(self.qemu.ssh_port, 'ls /var/sota') 140 stdout, stderr, retcode = self.run_command('ls /var/sota')
133 self.assertEqual(err, b'', 'Error: ' + err.decode()) 141 self.assertEqual(stderr, b'', 'Error: ' + stderr.decode())
134 print(value.decode()) 142 self.assertEqual(retcode, 0)
135 143 print(stdout.decode())
136class GrubTests(oeSelfTest): 144
145 def test_aktualizr_info(self):
146 print('Checking output of aktualizr-info:')
147 ran_ok = False
148 for delay in [0, 1, 2, 5, 10, 15]:
149 sleep(delay)
150 try:
151 stdout, stderr, retcode = self.run_command('aktualizr-info')
152 if retcode == 0 and stderr == b'':
153 ran_ok = True
154 break
155 except IOError as e:
156 print(e)
157 if not ran_ok:
158 print(stdout.decode())
159 print(stderr.decode())
160
161
162class GrubTests(OESelftestTestCase):
137 163
138 def setUpLocal(self): 164 def setUpLocal(self):
139 # This is a bit of a hack but I can't see a better option. 165 # This is a bit of a hack but I can't see a better option.
140 path = os.path.abspath(os.path.dirname(__file__)) 166 path = os.path.abspath(os.path.dirname(__file__))
141 metadir = path + "/../../../../" 167 metadir = path + "/../../../../../"
142 grub_config = 'OSTREE_BOOTLOADER = "grub"\nMACHINE = "intel-corei7-64"' 168 grub_config = 'OSTREE_BOOTLOADER = "grub"\nMACHINE = "intel-corei7-64"'
143 self.append_config(grub_config) 169 self.append_config(grub_config)
144 self.meta_intel = metadir + "meta-intel" 170 self.meta_intel = metadir + "meta-intel"
@@ -155,13 +181,15 @@ class GrubTests(oeSelfTest):
155 def test_grub(self): 181 def test_grub(self):
156 print('') 182 print('')
157 print('Checking machine name (hostname) of device:') 183 print('Checking machine name (hostname) of device:')
158 value, err = qemu_send_command(self.qemu.ssh_port, 'hostname') 184 value, err, retcode = qemu_send_command(self.qemu.ssh_port, 'hostname')
159 machine = get_bb_var('MACHINE', 'core-image-minimal') 185 machine = get_bb_var('MACHINE', 'core-image-minimal')
160 self.assertEqual(err, b'', 'Error: ' + err.decode()) 186 self.assertEqual(err, b'', 'Error: ' + err.decode())
187 self.assertEqual(retcode, 0)
161 # Strip off line ending. 188 # Strip off line ending.
162 value_str = value.decode()[:-1] 189 value_str = value.decode()[:-1]
163 self.assertEqual(value_str, machine, 190 self.assertEqual(value_str, machine,
164 'MACHINE does not match hostname: ' + machine + ', ' + value_str) 191 'MACHINE does not match hostname: ' + machine + ', ' + value_str +
192 '\nIs tianocore ovmf installed?')
165 print(value_str) 193 print(value_str)
166 194
167 195
@@ -189,7 +217,7 @@ def qemu_launch(efi=False, machine=None):
189 cmdline = qemu.command_line() 217 cmdline = qemu.command_line()
190 print('Booting image with run-qemu-ota...') 218 print('Booting image with run-qemu-ota...')
191 s = subprocess.Popen(cmdline) 219 s = subprocess.Popen(cmdline)
192 time.sleep(10) 220 sleep(10)
193 return qemu, s 221 return qemu, s
194 222
195def qemu_terminate(s): 223def qemu_terminate(s):
@@ -202,6 +230,7 @@ def qemu_send_command(port, command):
202 command = ['ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@localhost -p ' + 230 command = ['ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@localhost -p ' +
203 str(port) + ' "' + command + '"'] 231 str(port) + ' "' + command + '"']
204 s2 = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) 232 s2 = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
205 value, err = s2.communicate() 233 stdout, stderr = s2.communicate()
206 return value, err 234 return stdout, stderr, s2.returncode
207 235
236# vim:set ts=4 sw=4 sts=4 expandtab:
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-prov.bb b/recipes-sota/aktualizr/aktualizr-hsm-prov.bb
index 944607c..5f8da3c 100644
--- a/recipes-sota/aktualizr/aktualizr-hsm-prov.bb
+++ b/recipes-sota/aktualizr/aktualizr-hsm-prov.bb
@@ -1,5 +1,5 @@
1SUMMARY = "Aktualizr configuration with HSM support" 1SUMMARY = "Aktualizr configuration with HSM support"
2DESCRIPTION = "Systemd service and configurations for Aktualizr, the SOTA Client application written in C++" 2DESCRIPTION = "Systemd service and configurations for HSM provisioning with Aktualizr, the SOTA Client application written in C++"
3HOMEPAGE = "https://github.com/advancedtelematic/aktualizr" 3HOMEPAGE = "https://github.com/advancedtelematic/aktualizr"
4SECTION = "base" 4SECTION = "base"
5LICENSE = "MPL-2.0" 5LICENSE = "MPL-2.0"
@@ -14,14 +14,15 @@ SRC_URI = " \
14PV = "1.0" 14PV = "1.0"
15PR = "6" 15PR = "6"
16 16
17
18require environment.inc 17require environment.inc
19require credentials.inc 18require credentials.inc
20 19
21do_install() { 20do_install() {
22 install -d ${D}${libdir}/sota 21 install -d ${D}${libdir}/sota
23 aktualizr_implicit_writer -c ${SOTA_PACKED_CREDENTIALS} --no-root-ca \ 22 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then
24 -i ${STAGING_DIR_NATIVE}${libdir}/sota/sota_hsm_prov.toml -o ${D}${libdir}/sota/sota.toml -p ${D} 23 aktualizr_implicit_writer -c ${SOTA_PACKED_CREDENTIALS} --no-root-ca \
24 -i ${STAGING_DIR_NATIVE}${libdir}/sota/sota_hsm_prov.toml -o ${D}${libdir}/sota/sota.toml -p ${D}
25 fi
25} 26}
26 27
27FILES_${PN} = " \ 28FILES_${PN} = " \
diff --git a/recipes-sota/aktualizr/aktualizr-implicit-prov.bb b/recipes-sota/aktualizr/aktualizr-implicit-prov.bb
index b5bf420..cf3d22c 100644
--- a/recipes-sota/aktualizr/aktualizr-implicit-prov.bb
+++ b/recipes-sota/aktualizr/aktualizr-implicit-prov.bb
@@ -4,15 +4,15 @@ HOMEPAGE = "https://github.com/advancedtelematic/aktualizr"
4SECTION = "base" 4SECTION = "base"
5LICENSE = "MPL-2.0" 5LICENSE = "MPL-2.0"
6LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=9741c346eef56131163e13b9db1241b3" 6LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=9741c346eef56131163e13b9db1241b3"
7
7DEPENDS = "aktualizr-native" 8DEPENDS = "aktualizr-native"
8RDEPENDS_${PN} = "aktualizr" 9RDEPENDS_${PN} = "aktualizr"
9PV = "1.0"
10PR = "1"
11 10
12SRC_URI = " \ 11SRC_URI = " \
13 file://LICENSE \ 12 file://LICENSE \
14 " 13 "
15 14PV = "1.0"
15PR = "1"
16 16
17require environment.inc 17require environment.inc
18require credentials.inc 18require credentials.inc
diff --git a/recipes-sota/aktualizr/aktualizr_git.bb b/recipes-sota/aktualizr/aktualizr_git.bb
index 82da19c..3bbedb8 100644
--- a/recipes-sota/aktualizr/aktualizr_git.bb
+++ b/recipes-sota/aktualizr/aktualizr_git.bb
@@ -5,7 +5,7 @@ SECTION = "base"
5LICENSE = "MPL-2.0" 5LICENSE = "MPL-2.0"
6LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=9741c346eef56131163e13b9db1241b3" 6LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=9741c346eef56131163e13b9db1241b3"
7 7
8DEPENDS = "boost curl openssl libarchive libsodium " 8DEPENDS = "boost curl openssl libarchive libsodium asn1c-native "
9DEPENDS_append_class-target = "jansson ostree ${@bb.utils.contains('SOTA_CLIENT_FEATURES', 'hsm', ' libp11', '', d)} " 9DEPENDS_append_class-target = "jansson ostree ${@bb.utils.contains('SOTA_CLIENT_FEATURES', 'hsm', ' libp11', '', d)} "
10DEPENDS_append_class-native = "glib-2.0-native " 10DEPENDS_append_class-native = "glib-2.0-native "
11 11
diff --git a/recipes-sota/asn1c/asn1c.bb b/recipes-sota/asn1c/asn1c.bb
new file mode 100644
index 0000000..9d1517d
--- /dev/null
+++ b/recipes-sota/asn1c/asn1c.bb
@@ -0,0 +1,17 @@
1SUMMARY = "ASN.1 to C compiler"
2DESCRIPTION = "Generates serialization routines from ASN.1 schemas"
3HOMEPAGE = "http://lionet.info/asn1c"
4SECTION = "base"
5LICENSE = "BSD"
6LIC_FILES_CHKSUM = "file://LICENSE;md5=ee8bfaaa7d71cf3edb079475e6716d4b"
7
8inherit autotools native
9
10PV = "0.9.28"
11SRC_URI = "https://github.com/vlm/asn1c/releases/download/v${PV}/asn1c-${PV}.tar.gz \
12 file://skeletons_dir_fix.patch"
13SRC_URI[sha256sum] = "8007440b647ef2dd9fb73d931c33ac11764e6afb2437dbe638bb4e5fc82386b9"
14
15BBCLASSEXTEND = "native nativesdk"
16
17# vim:set ts=4 sw=4 sts=4 expandtab:
diff --git a/recipes-sota/asn1c/files/skeletons_dir_fix.patch b/recipes-sota/asn1c/files/skeletons_dir_fix.patch
new file mode 100644
index 0000000..f1caa2f
--- /dev/null
+++ b/recipes-sota/asn1c/files/skeletons_dir_fix.patch
@@ -0,0 +1,44 @@
1From 1a1c2c94f700cf0f4dc5dba863950b16477fdc6d Mon Sep 17 00:00:00 2001
2From: Laurent Bonnans <laurent.bonnans@here.com>
3Date: Thu, 25 Jan 2018 09:49:41 +0100
4Subject: [PATCH] Patch the skeletons directory detection
5
6Detect `share/asn1c` from `bin/` if it exists
7---
8 asn1c/asn1c.c | 9 ++++-----
9 1 file changed, 4 insertions(+), 5 deletions(-)
10
11diff --git a/asn1c/asn1c.c b/asn1c/asn1c.c
12index eb1eff7c..dd9fc832 100644
13--- a/asn1c/asn1c.c
14+++ b/asn1c/asn1c.c
15@@ -226,22 +226,21 @@ main(int ac, char **av) {
16 if(skeletons_dir == NULL) {
17 struct stat sb;
18 skeletons_dir = DATADIR;
19- if((av[-optind][0] == '.' || av[-optind][1] == '/')
20- && stat(skeletons_dir, &sb)) {
21+ if(stat(skeletons_dir, &sb)) {
22 /*
23 * The default skeletons directory does not exist,
24 * compute it from my file name:
25- * ./asn1c/asn1c -> ./skeletons
26+ * ./asn1c/asn1c -> ./share/asn1c
27 */
28 char *p;
29 size_t len;
30
31 p = a1c_dirname(av[-optind]);
32
33- len = strlen(p) + sizeof("/../skeletons");
34+ len = strlen(p) + sizeof("/../share/asn1c");
35 skeletons_dir = malloc(len);
36 assert(skeletons_dir);
37- snprintf(skeletons_dir, len, "%s/../skeletons", p);
38+ snprintf(skeletons_dir, len, "%s/../share/asn1c", p);
39 if(stat(skeletons_dir, &sb)) {
40 fprintf(stderr,
41 "WARNING: skeletons are neither in "
42--
432.15.1
44
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,