summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEugene Smirnov <30469026+eu-smirnov@users.noreply.github.com>2019-11-07 10:50:58 +0100
committerGitHub <noreply@github.com>2019-11-07 10:50:58 +0100
commitdc19f1fb7b458c3b12843ba7a7e4aa8984bd4d7c (patch)
tree14a128b77ac28abb58df21706bc78ef448b0c572
parent2c9eb2c7509e4b8cbe8734c402fdd7db477d9200 (diff)
parentc74c4eb5399ed7a195e00172774a283582da6e44 (diff)
downloadmeta-updater-dc19f1fb7b458c3b12843ba7a7e4aa8984bd4d7c.tar.gz
Merge pull request #624 from advancedtelematic/feat/OTA-3988/non-systemd-support
OTA-3988: Non-systemd/poky-sota local.conf
-rw-r--r--conf/distro/poky-sota-systemd.conf2
-rw-r--r--conf/distro/poky-sota.conf2
-rw-r--r--conf/local.conf.base.append18
-rw-r--r--conf/local.conf.systemd.append (renamed from conf/local.conf.sample.append)20
-rw-r--r--lib/oeqa/selftest/cases/updater_qemux86_64.py36
-rw-r--r--recipes-connectivity/networkd-dhcp-conf/networkd-dhcp-conf.bb2
-rwxr-xr-xrecipes-sota/ostree/files/touch-ostree21
-rw-r--r--recipes-sota/ostree/ostree-booted_1.0.bb15
-rwxr-xr-xscripts/envsetup.sh18
9 files changed, 109 insertions, 25 deletions
diff --git a/conf/distro/poky-sota-systemd.conf b/conf/distro/poky-sota-systemd.conf
index b30b322..0dc50b0 100644
--- a/conf/distro/poky-sota-systemd.conf
+++ b/conf/distro/poky-sota-systemd.conf
@@ -2,7 +2,7 @@ require conf/distro/poky.conf
2 2
3require conf/distro/sota.conf.inc 3require conf/distro/sota.conf.inc
4 4
5DISTRO = "poky-sota" 5DISTRO = "poky-sota-systemd"
6DISTRO_NAME = "OTA-enabled Linux" 6DISTRO_NAME = "OTA-enabled Linux"
7DISTRO_VERSION = "1.0" 7DISTRO_VERSION = "1.0"
8DISTRO_CODENAME = "sota" 8DISTRO_CODENAME = "sota"
diff --git a/conf/distro/poky-sota.conf b/conf/distro/poky-sota.conf
index 3fb1d20..bfac90f 100644
--- a/conf/distro/poky-sota.conf
+++ b/conf/distro/poky-sota.conf
@@ -5,3 +5,5 @@ DISTRO = "poky-sota"
5DISTRO_NAME = "OTA-enabled Linux" 5DISTRO_NAME = "OTA-enabled Linux"
6DISTRO_VERSION = "1.0" 6DISTRO_VERSION = "1.0"
7DISTRO_CODENAME = "sota" 7DISTRO_CODENAME = "sota"
8
9IMAGE_INSTALL_append_sota = " ostree-booted"
diff --git a/conf/local.conf.base.append b/conf/local.conf.base.append
new file mode 100644
index 0000000..36b2f59
--- /dev/null
+++ b/conf/local.conf.base.append
@@ -0,0 +1,18 @@
1#
2# meta-updater configuration, see README.adoc and aktualizr's
3# documentation for more options and detailed documentation
4#
5
6MACHINE = "##MACHINE##"
7DISTRO = "##DISTRO##"
8
9# General SOTA setup
10#SOTA_CLIENT_PROV = "aktualizr-shared-prov"
11#SOTA_PACKED_CREDENTIALS = "/path/to/credentials.zip"
12
13# Uncomment this line to start an ssh server at boot automatically
14#IMAGE_FEATURES += "ssh-server-dropbear"
15
16# Uncomment this line to set the log level of aktualizr to 'debug' (from 'info'
17# by default)
18#IMAGE_INSTALL_append += " aktualizr-log-debug"
diff --git a/conf/local.conf.sample.append b/conf/local.conf.systemd.append
index fc565f8..12e0182 100644
--- a/conf/local.conf.sample.append
+++ b/conf/local.conf.systemd.append
@@ -1,23 +1,3 @@
1
2#
3# meta-updater configuration, see README.adoc and aktualizr's
4# documentation for more options and detailed documentation
5#
6
7MACHINE = "##MACHINE##"
8DISTRO = "poky-sota-systemd"
9
10# General SOTA setup
11#SOTA_CLIENT_PROV = "aktualizr-shared-prov"
12#SOTA_PACKED_CREDENTIALS = "/path/to/credentials.zip"
13
14# Uncomment this line to start an ssh server at boot automatically
15#IMAGE_FEATURES += "ssh-server-dropbear"
16
17# Uncomment this line to set the log level of aktualizr to 'debug' (from 'info'
18# by default)
19#IMAGE_INSTALL_append += " aktualizr-log-debug"
20
21# Store systemd logs in persistent storage 1# Store systemd logs in persistent storage
22# 2#
23# It greatly helps diagnosing issues on testing devices but should be 3# It greatly helps diagnosing issues on testing devices but should be
diff --git a/lib/oeqa/selftest/cases/updater_qemux86_64.py b/lib/oeqa/selftest/cases/updater_qemux86_64.py
index 4506300..5f152ad 100644
--- a/lib/oeqa/selftest/cases/updater_qemux86_64.py
+++ b/lib/oeqa/selftest/cases/updater_qemux86_64.py
@@ -465,4 +465,40 @@ class ResourceControlTests(OESelftestTestCase):
465 stdout, stderr, retcode = self.qemu_command('systemctl --no-pager show --property=ExecMainStatus aktualizr') 465 stdout, stderr, retcode = self.qemu_command('systemctl --no-pager show --property=ExecMainStatus aktualizr')
466 self.assertIn(b'ExecMainStatus=0', stdout, 'Aktualizr did not restart') 466 self.assertIn(b'ExecMainStatus=0', stdout, 'Aktualizr did not restart')
467 467
468
469class NonSystemdTests(OESelftestTestCase):
470 def setUpLocal(self):
471 layer = "meta-updater-qemux86-64"
472 result = runCmd('bitbake-layers show-layers')
473 if re.search(layer, result.output) is None:
474 self.meta_qemu = metadir() + layer
475 runCmd('bitbake-layers add-layer "%s"' % self.meta_qemu)
476 else:
477 self.meta_qemu = None
478 self.append_config('MACHINE = "qemux86-64"')
479 self.append_config('SOTA_CLIENT_PROV = " aktualizr-shared-prov "')
480 self.append_config('IMAGE_FSTYPES_remove = "ostreepush garagesign garagecheck"')
481 self.append_config('DISTRO = "poky-sota"')
482 self.append_config('IMAGE_INSTALL_remove += " aktualizr-resource-control"')
483 self.qemu, self.s = qemu_launch(machine='qemux86-64')
484
485 def tearDownLocal(self):
486 qemu_terminate(self.s)
487 if self.meta_qemu:
488 runCmd('bitbake-layers remove-layer "%s"' % self.meta_qemu, ignore_status=True)
489
490 def qemu_command(self, command):
491 return qemu_send_command(self.qemu.ssh_port, command)
492
493 def test_provisioning(self):
494 print('Checking if systemd is not installed...')
495 stdout, stderr, retcode = self.qemu_command('systemctl')
496 self.assertTrue(retcode != 0, 'systemd is installed while it is not supposed to: ' + str(stdout))
497
498 stdout, stderr, retcode = self.qemu_command('aktualizr --run-mode once')
499 self.assertEqual(retcode, 0, 'Failed to run aktualizr: ' + str(stdout) + str(stderr))
500
501 machine = get_bb_var('MACHINE', 'core-image-minimal')
502 verifyProvisioned(self, machine)
503
468# vim:set ts=4 sw=4 sts=4 expandtab: 504# vim:set ts=4 sw=4 sts=4 expandtab:
diff --git a/recipes-connectivity/networkd-dhcp-conf/networkd-dhcp-conf.bb b/recipes-connectivity/networkd-dhcp-conf/networkd-dhcp-conf.bb
index 394531e..40a3958 100644
--- a/recipes-connectivity/networkd-dhcp-conf/networkd-dhcp-conf.bb
+++ b/recipes-connectivity/networkd-dhcp-conf/networkd-dhcp-conf.bb
@@ -15,7 +15,7 @@ SRC_URI = " \
15 " 15 "
16PR = "r1" 16PR = "r1"
17 17
18RDEPENDS_${PN} = "systemd" 18REQUIRED_DISTRO_FEATURES_${PN} = "systemd"
19RCONFLICTS_${PN} = "connman" 19RCONFLICTS_${PN} = "connman"
20 20
21S = "${WORKDIR}" 21S = "${WORKDIR}"
diff --git a/recipes-sota/ostree/files/touch-ostree b/recipes-sota/ostree/files/touch-ostree
new file mode 100755
index 0000000..28cb672
--- /dev/null
+++ b/recipes-sota/ostree/files/touch-ostree
@@ -0,0 +1,21 @@
1#!/bin/sh
2### BEGIN INIT INFO
3# Provides: touch-ostree
4# Required-Start: $network $remote_fs
5# Required-Stop: $network $remote_fs
6# Default-Start: 2 3 4 5
7# Default-Stop: 0 1 6
8# Short-Description: Indicate OSTree boot
9### END INIT INFO
10
11case "$1" in
12 start)
13 touch /run/ostree-booted
14 ;;
15 stop)
16 ;;
17 *)
18 echo "Usage: /etc/init.d/touch-ostree {start|stop}"
19 exit 1
20 ;;
21esac
diff --git a/recipes-sota/ostree/ostree-booted_1.0.bb b/recipes-sota/ostree/ostree-booted_1.0.bb
new file mode 100644
index 0000000..d74cf24
--- /dev/null
+++ b/recipes-sota/ostree/ostree-booted_1.0.bb
@@ -0,0 +1,15 @@
1SUMMARY = "Indicate an OSTree boot"
2DESCRIPTION = "Indicate an OSTree boot"
3LICENSE = "MPL-2.0"
4LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad"
5SRC_URI = "file://touch-ostree"
6
7inherit allarch update-rc.d
8
9INITSCRIPT_NAME = "touch-ostree"
10INITSCRIPT_PARAMS = "start 8 2 3 4 5 . stop 20 0 1 6 ."
11
12do_install() {
13 install -d ${D}${sysconfdir}/init.d
14 install -m 0755 ${WORKDIR}/touch-ostree ${D}${sysconfdir}/init.d/touch-ostree
15}
diff --git a/scripts/envsetup.sh b/scripts/envsetup.sh
index 5827bc2..19a5c94 100755
--- a/scripts/envsetup.sh
+++ b/scripts/envsetup.sh
@@ -3,9 +3,13 @@
3SCRIPT="envsetup.sh" 3SCRIPT="envsetup.sh"
4MACHINE="$1" 4MACHINE="$1"
5BUILDDIR="build" 5BUILDDIR="build"
6DISTRO="poky-sota-systemd"
7BASE_CONF="local.conf.base.append"
8declare -A supported_distros=( ["poky-sota-systemd"]="local.conf.systemd.append" ["poky-sota"]="local.conf.base.append" )
6 9
7[[ "$#" -lt 1 ]] && { echo "Usage: ${SCRIPT} <machine> [builddir]"; return 1; } 10[[ "$#" -lt 1 ]] && { echo "Usage: ${SCRIPT} <machine> [builddir] [distro=< poky-sota-systemd | poky-sota >]"; return 1; }
8[[ "$#" -eq 2 ]] && { BUILDDIR="$2"; } 11[[ "$#" -ge 2 ]] && { BUILDDIR="$2"; }
12[[ "$#" -eq 3 ]] && { DISTRO="$3"; }
9 13
10# detect if this script is sourced: see http://stackoverflow.com/a/38128348/6255594 14# detect if this script is sourced: see http://stackoverflow.com/a/38128348/6255594
11SOURCED=0 15SOURCED=0
@@ -22,6 +26,8 @@ if [[ $SOURCED -ne 1 ]]; then
22fi 26fi
23 27
24METADIR=${METADIR:-${SOURCEDIR}/../..} 28METADIR=${METADIR:-${SOURCEDIR}/../..}
29DISTRO_CONF=${supported_distros[$DISTRO]}
30[[ -n $DISTRO_CONF ]] && { echo "Using $DISTRO_CONF for the specified distro $DISTRO"; } || { echo "The specified distro $DISTRO is not supported"; return 1; }
25 31
26if [[ ! -f "${BUILDDIR}/conf/local.conf" ]]; then 32if [[ ! -f "${BUILDDIR}/conf/local.conf" ]]; then
27 source "$METADIR/poky/oe-init-build-env" "$BUILDDIR" 33 source "$METADIR/poky/oe-init-build-env" "$BUILDDIR"
@@ -30,7 +36,13 @@ if [[ ! -f "${BUILDDIR}/conf/local.conf" ]]; then
30 cat "${METADIR}/meta-updater/conf/include/bblayers/sota.inc" >> conf/bblayers.conf 36 cat "${METADIR}/meta-updater/conf/include/bblayers/sota.inc" >> conf/bblayers.conf
31 cat "${METADIR}/meta-updater/conf/include/bblayers/sota_${MACHINE}.inc" >> conf/bblayers.conf 37 cat "${METADIR}/meta-updater/conf/include/bblayers/sota_${MACHINE}.inc" >> conf/bblayers.conf
32 38
33 sed "s/##MACHINE##/$MACHINE/g" "${METADIR}/meta-updater/conf/local.conf.sample.append" >> conf/local.conf 39 sed -e "s/##MACHINE##/$MACHINE/g" \
40 -e "s/##DISTRO##/$DISTRO/g" \
41 "${METADIR}/meta-updater/conf/$BASE_CONF" >> conf/local.conf
42
43 if [ "$BASE_CONF" != "$DISTRO_CONF" ]; then
44 cat "${METADIR}/meta-updater/conf/$DISTRO_CONF" >> conf/local.conf
45 fi
34else 46else
35 source "$METADIR/poky/oe-init-build-env" "$BUILDDIR" 47 source "$METADIR/poky/oe-init-build-env" "$BUILDDIR"
36fi 48fi