diff options
21 files changed, 122 insertions, 54 deletions
diff --git a/classes/image_types_ostree.bbclass b/classes/image_types_ostree.bbclass index fd38d28..0b928a3 100644 --- a/classes/image_types_ostree.bbclass +++ b/classes/image_types_ostree.bbclass | |||
| @@ -3,13 +3,11 @@ inherit features_check | |||
| 3 | 3 | ||
| 4 | REQUIRED_DISTRO_FEATURES = "usrmerge" | 4 | REQUIRED_DISTRO_FEATURES = "usrmerge" |
| 5 | 5 | ||
| 6 | OSTREE_KERNEL ??= "${KERNEL_IMAGETYPE}" | ||
| 7 | OSTREE_ROOTFS ??= "${WORKDIR}/ostree-rootfs" | 6 | OSTREE_ROOTFS ??= "${WORKDIR}/ostree-rootfs" |
| 8 | OSTREE_COMMIT_SUBJECT ??= "Commit-id: ${IMAGE_NAME}" | 7 | OSTREE_COMMIT_SUBJECT ??= "Commit-id: ${IMAGE_NAME}" |
| 9 | OSTREE_COMMIT_BODY ??= "" | 8 | OSTREE_COMMIT_BODY ??= "" |
| 10 | OSTREE_COMMIT_VERSION ??= "${DISTRO_VERSION}" | 9 | OSTREE_COMMIT_VERSION ??= "${DISTRO_VERSION}" |
| 11 | OSTREE_UPDATE_SUMMARY ??= "0" | 10 | OSTREE_UPDATE_SUMMARY ??= "0" |
| 12 | OSTREE_DEPLOY_DEVICETREE ??= "0" | ||
| 13 | 11 | ||
| 14 | BUILD_OSTREE_TARBALL ??= "1" | 12 | BUILD_OSTREE_TARBALL ??= "1" |
| 15 | 13 | ||
| @@ -134,27 +132,6 @@ IMAGE_CMD_ostree () { | |||
| 134 | 132 | ||
| 135 | ln -sf ../var/usrlocal usr/local | 133 | ln -sf ../var/usrlocal usr/local |
| 136 | 134 | ||
| 137 | if [ "${KERNEL_IMAGETYPE}" = "fitImage" ]; then | ||
| 138 | # this is a hack for ostree not to override init= in kernel cmdline - | ||
| 139 | # make it think that the initramfs is present (while it is in FIT image) | ||
| 140 | # since initramfs is fake file, it does not need to be included in checksum | ||
| 141 | checksum=$(sha256sum ${DEPLOY_DIR_IMAGE}/${OSTREE_KERNEL} | cut -f 1 -d " ") | ||
| 142 | touch boot/initramfs-${checksum} | ||
| 143 | else | ||
| 144 | if [ ${@ oe.types.boolean('${OSTREE_DEPLOY_DEVICETREE}')} = True ] && [ -n "${KERNEL_DEVICETREE}" ]; then | ||
| 145 | checksum=$(cat ${DEPLOY_DIR_IMAGE}/${OSTREE_KERNEL} ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES} ${KERNEL_DEVICETREE} | sha256sum | cut -f 1 -d " ") | ||
| 146 | for DTS_FILE in ${KERNEL_DEVICETREE}; do | ||
| 147 | DTS_FILE_BASENAME=$(basename ${DTS_FILE}) | ||
| 148 | cp ${DEPLOY_DIR_IMAGE}/${DTS_FILE_BASENAME} boot/devicetree-${DTS_FILE_BASENAME}-${checksum} | ||
| 149 | done | ||
| 150 | else | ||
| 151 | checksum=$(cat ${DEPLOY_DIR_IMAGE}/${OSTREE_KERNEL} ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES} | sha256sum | cut -f 1 -d " ") | ||
| 152 | fi | ||
| 153 | cp ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES} boot/initramfs-${checksum} | ||
| 154 | fi | ||
| 155 | |||
| 156 | cp ${DEPLOY_DIR_IMAGE}/${OSTREE_KERNEL} boot/vmlinuz-${checksum} | ||
| 157 | |||
| 158 | # Copy image manifest | 135 | # Copy image manifest |
| 159 | cat ${IMAGE_MANIFEST} | cut -d " " -f1,3 > usr/package.manifest | 136 | cat ${IMAGE_MANIFEST} | cut -d " " -f1,3 > usr/package.manifest |
| 160 | } | 137 | } |
diff --git a/classes/image_types_ota.bbclass b/classes/image_types_ota.bbclass index a8a19b5..36a6a64 100644 --- a/classes/image_types_ota.bbclass +++ b/classes/image_types_ota.bbclass | |||
| @@ -128,4 +128,4 @@ IMAGE_CMD_ota-ext4 () { | |||
| 128 | mkfs.ext4 -O ^64bit ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.ota-ext4 -L otaroot -d ${OTA_SYSROOT} | 128 | mkfs.ext4 -O ^64bit ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.ota-ext4 -L otaroot -d ${OTA_SYSROOT} |
| 129 | } | 129 | } |
| 130 | 130 | ||
| 131 | do_image_wic[depends] += "${@bb.utils.contains('DISTRO_FEATURES', 'sota', '%s:do_image_ota_ext4' % d.getVar('IMAGE_BASENAME'), '', d)}" | 131 | do_image_wic[depends] += "${@bb.utils.contains('DISTRO_FEATURES', 'sota', '%s:do_image_ota_ext4' % d.getVar('PN'), '', d)}" |
diff --git a/classes/sota.bbclass b/classes/sota.bbclass index 71bd303..fde00cd 100644 --- a/classes/sota.bbclass +++ b/classes/sota.bbclass | |||
| @@ -1,12 +1,14 @@ | |||
| 1 | DISTROOVERRIDES .= "${@bb.utils.contains('DISTRO_FEATURES', 'sota', ':sota', '', d)}" | 1 | DISTROOVERRIDES .= "${@bb.utils.contains('DISTRO_FEATURES', 'sota', ':sota', '', d)}" |
| 2 | 2 | ||
| 3 | SOTA_CLIENT ??= "aktualizr" | ||
| 4 | SOTA_CLIENT_PROV ??= "aktualizr-shared-prov" | 3 | SOTA_CLIENT_PROV ??= "aktualizr-shared-prov" |
| 5 | SOTA_DEPLOY_CREDENTIALS ?= "1" | 4 | SOTA_DEPLOY_CREDENTIALS ?= "1" |
| 6 | SOTA_HARDWARE_ID ??= "${MACHINE}" | 5 | SOTA_HARDWARE_ID ??= "${MACHINE}" |
| 7 | 6 | ||
| 8 | IMAGE_INSTALL_append_sota = " ostree os-release ${SOTA_CLIENT} ${SOTA_CLIENT_PROV}" | ||
| 9 | IMAGE_CLASSES += " image_types_ostree image_types_ota image_repo_manifest" | 7 | IMAGE_CLASSES += " image_types_ostree image_types_ota image_repo_manifest" |
| 8 | IMAGE_INSTALL_append_sota = " aktualizr aktualizr-info ${SOTA_CLIENT_PROV} \ | ||
| 9 | ostree os-release ostree-kernel \ | ||
| 10 | ${@'ostree-initramfs' if d.getVar('KERNEL_IMAGETYPE') != 'fitImage' else ''} \ | ||
| 11 | ${@'ostree-devicetrees' if oe.types.boolean('${OSTREE_DEPLOY_DEVICETREE}') else ''}" | ||
| 10 | 12 | ||
| 11 | IMAGE_FSTYPES += "${@bb.utils.contains('DISTRO_FEATURES', 'sota', 'ostreepush garagesign garagecheck ota-ext4 wic', ' ', d)}" | 13 | IMAGE_FSTYPES += "${@bb.utils.contains('DISTRO_FEATURES', 'sota', 'ostreepush garagesign garagecheck ota-ext4 wic', ' ', d)}" |
| 12 | IMAGE_FSTYPES += "${@bb.utils.contains('BUILD_OSTREE_TARBALL', '1', 'ostree.tar.bz2', ' ', d)}" | 14 | IMAGE_FSTYPES += "${@bb.utils.contains('BUILD_OSTREE_TARBALL', '1', 'ostree.tar.bz2', ' ', d)}" |
| @@ -27,6 +29,9 @@ OSTREE_BRANCHNAME ?= "${SOTA_HARDWARE_ID}" | |||
| 27 | OSTREE_OSNAME ?= "poky" | 29 | OSTREE_OSNAME ?= "poky" |
| 28 | OSTREE_BOOTLOADER ??= 'u-boot' | 30 | OSTREE_BOOTLOADER ??= 'u-boot' |
| 29 | OSTREE_BOOT_PARTITION ??= "/boot" | 31 | OSTREE_BOOT_PARTITION ??= "/boot" |
| 32 | OSTREE_KERNEL ??= "${KERNEL_IMAGETYPE}" | ||
| 33 | OSTREE_DEPLOY_DEVICETREE ??= "0" | ||
| 34 | OSTREE_DEVICETREE ??= "${KERNEL_DEVICETREE}" | ||
| 30 | 35 | ||
| 31 | INITRAMFS_IMAGE ?= "initramfs-ostree-image" | 36 | INITRAMFS_IMAGE ?= "initramfs-ostree-image" |
| 32 | 37 | ||
diff --git a/classes/sota_m3ulcb.bbclass b/classes/sota_m3ulcb.bbclass index e7fa9c2..7ea273d 100644 --- a/classes/sota_m3ulcb.bbclass +++ b/classes/sota_m3ulcb.bbclass | |||
| @@ -8,5 +8,5 @@ OSTREE_BOOTLOADER ?= "u-boot" | |||
| 8 | 8 | ||
| 9 | UBOOT_MACHINE_sota = "${@d.getVar('SOC_FAMILY').split(':')[1]}_ulcb_defconfig" | 9 | UBOOT_MACHINE_sota = "${@d.getVar('SOC_FAMILY').split(':')[1]}_ulcb_defconfig" |
| 10 | 10 | ||
| 11 | PREFERRED_RPROVIDER_virtual/network-configuration ?= "connman" | 11 | PREFERRED_RPROVIDER_network-configuration ?= "connman" |
| 12 | IMAGE_INSTALL_append_sota = " virtual/network-configuration " | 12 | IMAGE_INSTALL_append_sota = " network-configuration " |
diff --git a/classes/sota_minnowboard.bbclass b/classes/sota_minnowboard.bbclass index a907217..3128965 100644 --- a/classes/sota_minnowboard.bbclass +++ b/classes/sota_minnowboard.bbclass | |||
| @@ -8,5 +8,5 @@ IMAGE_FSTYPES_remove_sota = "live hddimg" | |||
| 8 | OSTREE_KERNEL_ARGS ?= "ramdisk_size=16384 rw rootfstype=ext4 rootwait rootdelay=2 console=ttyS0,115200 console=tty0" | 8 | OSTREE_KERNEL_ARGS ?= "ramdisk_size=16384 rw rootfstype=ext4 rootwait rootdelay=2 console=ttyS0,115200 console=tty0" |
| 9 | IMAGE_INSTALL_append = " minnowboard-efi-startup" | 9 | IMAGE_INSTALL_append = " minnowboard-efi-startup" |
| 10 | 10 | ||
| 11 | PREFERRED_RPROVIDER_virtual/network-configuration ?= "connman" | 11 | PREFERRED_RPROVIDER_network-configuration ?= "connman" |
| 12 | IMAGE_INSTALL_append_sota = " virtual/network-configuration " | 12 | IMAGE_INSTALL_append_sota = " network-configuration " |
diff --git a/classes/sota_porter.bbclass b/classes/sota_porter.bbclass index 80062e1..6c6fe70 100644 --- a/classes/sota_porter.bbclass +++ b/classes/sota_porter.bbclass | |||
| @@ -7,5 +7,5 @@ IMAGE_BOOT_FILES_sota += "porter-bootfiles/*" | |||
| 7 | OSTREE_BOOTLOADER ?= "u-boot" | 7 | OSTREE_BOOTLOADER ?= "u-boot" |
| 8 | UBOOT_MACHINE_sota = "porter_config" | 8 | UBOOT_MACHINE_sota = "porter_config" |
| 9 | 9 | ||
| 10 | PREFERRED_RPROVIDER_virtual/network-configuration ?= "connman" | 10 | PREFERRED_RPROVIDER_network-configuration ?= "connman" |
| 11 | IMAGE_INSTALL_append_sota = " virtual/network-configuration " | 11 | IMAGE_INSTALL_append_sota = " network-configuration " |
diff --git a/classes/sota_qemux86-64.bbclass b/classes/sota_qemux86-64.bbclass index fc4aa7c..3dc2428 100644 --- a/classes/sota_qemux86-64.bbclass +++ b/classes/sota_qemux86-64.bbclass | |||
| @@ -13,4 +13,4 @@ IMAGE_ROOTFS_EXTRA_SPACE = "${@bb.utils.contains('DISTRO_FEATURES', 'sota', '655 | |||
| 13 | # fix for u-boot/swig build issue | 13 | # fix for u-boot/swig build issue |
| 14 | HOSTTOOLS_NONFATAL += "x86_64-linux-gnu-gcc" | 14 | HOSTTOOLS_NONFATAL += "x86_64-linux-gnu-gcc" |
| 15 | 15 | ||
| 16 | IMAGE_INSTALL_append_sota = " virtual/network-configuration " | 16 | IMAGE_INSTALL_append_sota = " network-configuration " |
diff --git a/classes/sota_raspberrypi.bbclass b/classes/sota_raspberrypi.bbclass index d5d89a9..744ba22 100644 --- a/classes/sota_raspberrypi.bbclass +++ b/classes/sota_raspberrypi.bbclass | |||
| @@ -13,7 +13,7 @@ UBOOT_DTBO_LOADADDRESS = "0x06000000" | |||
| 13 | IMAGE_INSTALL_append = " fit-conf" | 13 | IMAGE_INSTALL_append = " fit-conf" |
| 14 | 14 | ||
| 15 | DEV_MATCH_DIRECTIVE_pn-networkd-dhcp-conf = "Driver=smsc95xx lan78xx" | 15 | DEV_MATCH_DIRECTIVE_pn-networkd-dhcp-conf = "Driver=smsc95xx lan78xx" |
| 16 | IMAGE_INSTALL_append_sota = " virtual/network-configuration " | 16 | IMAGE_INSTALL_append_sota = " network-configuration " |
| 17 | 17 | ||
| 18 | PREFERRED_PROVIDER_virtual/bootloader_sota ?= "u-boot" | 18 | PREFERRED_PROVIDER_virtual/bootloader_sota ?= "u-boot" |
| 19 | UBOOT_ENTRYPOINT_sota ?= "0x00080000" | 19 | UBOOT_ENTRYPOINT_sota ?= "0x00080000" |
diff --git a/conf/distro/poky-sota-systemd.conf b/conf/distro/poky-sota-systemd.conf index 0dc50b0..4b7990f 100644 --- a/conf/distro/poky-sota-systemd.conf +++ b/conf/distro/poky-sota-systemd.conf | |||
| @@ -9,4 +9,4 @@ DISTRO_CODENAME = "sota" | |||
| 9 | 9 | ||
| 10 | DISTRO_FEATURES_append = " systemd" | 10 | DISTRO_FEATURES_append = " systemd" |
| 11 | VIRTUAL-RUNTIME_init_manager = "systemd" | 11 | VIRTUAL-RUNTIME_init_manager = "systemd" |
| 12 | PREFERRED_RPROVIDER_virtual/network-configuration ??= "networkd-dhcp-conf" | 12 | PREFERRED_RPROVIDER_network-configuration ??= "networkd-dhcp-conf" |
diff --git a/conf/local.conf.nonostree.append b/conf/local.conf.nonostree.append index 0e63e98..ee56b69 100644 --- a/conf/local.conf.nonostree.append +++ b/conf/local.conf.nonostree.append | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | DISTRO_FEATURES_append = " systemd" | 2 | DISTRO_FEATURES_append = " systemd" |
| 3 | VIRTUAL-RUNTIME_init_manager = "systemd" | 3 | VIRTUAL-RUNTIME_init_manager = "systemd" |
| 4 | 4 | ||
| 5 | PREFERRED_RPROVIDER_virtual/network-configuration ??= "networkd-dhcp-conf" | 5 | PREFERRED_RPROVIDER_network-configuration ??= "networkd-dhcp-conf" |
| 6 | 6 | ||
| 7 | SOTA_DEPLOY_CREDENTIALS ?= "1" | 7 | SOTA_DEPLOY_CREDENTIALS ?= "1" |
| 8 | PACKAGECONFIG_pn-aktualizr = "" | 8 | PACKAGECONFIG_pn-aktualizr = "" |
diff --git a/lib/oeqa/selftest/cases/updater_qemux86_64.py b/lib/oeqa/selftest/cases/updater_qemux86_64.py index 08220f4..c7d0448 100644 --- a/lib/oeqa/selftest/cases/updater_qemux86_64.py +++ b/lib/oeqa/selftest/cases/updater_qemux86_64.py | |||
| @@ -130,11 +130,10 @@ class SharedCredProvTestsNonOSTree(SharedCredProvTests): | |||
| 130 | self.append_config('DISTRO = "poky"') | 130 | self.append_config('DISTRO = "poky"') |
| 131 | self.append_config('DISTRO_FEATURES_append = " systemd"') | 131 | self.append_config('DISTRO_FEATURES_append = " systemd"') |
| 132 | self.append_config('VIRTUAL-RUNTIME_init_manager = "systemd"') | 132 | self.append_config('VIRTUAL-RUNTIME_init_manager = "systemd"') |
| 133 | self.append_config('PREFERRED_RPROVIDER_virtual/network-configuration ??= "networkd-dhcp-conf"') | 133 | self.append_config('PREFERRED_RPROVIDER_network-configuration ??= "networkd-dhcp-conf"') |
| 134 | self.append_config('PACKAGECONFIG_pn-aktualizr = ""') | 134 | self.append_config('PACKAGECONFIG_pn-aktualizr = ""') |
| 135 | self.append_config('SOTA_DEPLOY_CREDENTIALS = "1"') | 135 | self.append_config('SOTA_DEPLOY_CREDENTIALS = "1"') |
| 136 | self.append_config('IMAGE_INSTALL_append += "aktualizr"') | 136 | self.append_config('IMAGE_INSTALL_append += "aktualizr aktualizr-info aktualizr-shared-prov"') |
| 137 | self.append_config('IMAGE_INSTALL_append += " aktualizr-shared-prov"') | ||
| 138 | self.qemu, self.s = qemu_launch(machine='qemux86-64', uboot_enable='no') | 137 | self.qemu, self.s = qemu_launch(machine='qemux86-64', uboot_enable='no') |
| 139 | 138 | ||
| 140 | 139 | ||
diff --git a/recipes-connectivity/connman/connman_%.bbappend b/recipes-connectivity/connman/connman_%.bbappend index b3633cc..cd1b95d 100644 --- a/recipes-connectivity/connman/connman_%.bbappend +++ b/recipes-connectivity/connman/connman_%.bbappend | |||
| @@ -1 +1 @@ | |||
| RPROVIDES_${PN} += "virtual/network-configuration" | RPROVIDES_${PN} += "network-configuration" | ||
diff --git a/recipes-connectivity/networkd-dhcp-conf/networkd-dhcp-conf.bb b/recipes-connectivity/networkd-dhcp-conf/networkd-dhcp-conf.bb index 40a3958..20a1a17 100644 --- a/recipes-connectivity/networkd-dhcp-conf/networkd-dhcp-conf.bb +++ b/recipes-connectivity/networkd-dhcp-conf/networkd-dhcp-conf.bb | |||
| @@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7 | |||
| 6 | 6 | ||
| 7 | inherit systemd | 7 | inherit systemd |
| 8 | 8 | ||
| 9 | RPROVIDES_${PN} = "virtual/network-configuration" | 9 | RPROVIDES_${PN} = "network-configuration" |
| 10 | 10 | ||
| 11 | SRC_URI = " \ | 11 | SRC_URI = " \ |
| 12 | file://20-wired-dhcp.network \ | 12 | file://20-wired-dhcp.network \ |
diff --git a/recipes-core/images/initramfs-ostree-image.bb b/recipes-core/images/initramfs-ostree-image.bb index bc21ed3..4af1548 100644 --- a/recipes-core/images/initramfs-ostree-image.bb +++ b/recipes-core/images/initramfs-ostree-image.bb | |||
| @@ -20,7 +20,7 @@ IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}" | |||
| 20 | # Avoid circular dependencies | 20 | # Avoid circular dependencies |
| 21 | EXTRA_IMAGEDEPENDS = "" | 21 | EXTRA_IMAGEDEPENDS = "" |
| 22 | 22 | ||
| 23 | inherit core-image | 23 | inherit core-image nopackages |
| 24 | 24 | ||
| 25 | IMAGE_ROOTFS_SIZE = "8192" | 25 | IMAGE_ROOTFS_SIZE = "8192" |
| 26 | 26 | ||
diff --git a/recipes-sota/aktualizr/aktualizr_git.bb b/recipes-sota/aktualizr/aktualizr_git.bb index 56a6389..d9b464f 100644 --- a/recipes-sota/aktualizr/aktualizr_git.bb +++ b/recipes-sota/aktualizr/aktualizr_git.bb | |||
| @@ -17,7 +17,7 @@ PRIVATE_LIBS_${PN}-ptest = "libaktualizr.so libaktualizr_secondary.so" | |||
| 17 | PV = "1.0+git${SRCPV}" | 17 | PV = "1.0+git${SRCPV}" |
| 18 | PR = "7" | 18 | PR = "7" |
| 19 | 19 | ||
| 20 | GARAGE_SIGN_PV = "0.7.1-4-gf10c1da" | 20 | GARAGE_SIGN_PV = "0.7.1-10-ga0a099a" |
| 21 | 21 | ||
| 22 | SRC_URI = " \ | 22 | SRC_URI = " \ |
| 23 | gitsm://github.com/advancedtelematic/aktualizr;branch=${BRANCH};name=aktualizr \ | 23 | gitsm://github.com/advancedtelematic/aktualizr;branch=${BRANCH};name=aktualizr \ |
| @@ -29,10 +29,10 @@ SRC_URI = " \ | |||
| 29 | ${@ d.expand("https://tuf-cli-releases.ota.here.com/cli-${GARAGE_SIGN_PV}.tgz;unpack=0;name=garagesign") if not oe.types.boolean(d.getVar('GARAGE_SIGN_AUTOVERSION')) else ''} \ | 29 | ${@ d.expand("https://tuf-cli-releases.ota.here.com/cli-${GARAGE_SIGN_PV}.tgz;unpack=0;name=garagesign") if not oe.types.boolean(d.getVar('GARAGE_SIGN_AUTOVERSION')) else ''} \ |
| 30 | " | 30 | " |
| 31 | 31 | ||
| 32 | SRC_URI[garagesign.md5sum] = "5f8eea81d1559d6fcb28d49c4298727c" | 32 | SRC_URI[garagesign.md5sum] = "e2354fb75ae56c2d253be26617b2bd10" |
| 33 | SRC_URI[garagesign.sha256sum] = "8b2f5bb164f19b41972069d3377e39c2eb9edffd471777161691039e12a71738" | 33 | SRC_URI[garagesign.sha256sum] = "2ddb26b19090a42d7aeeda287ed40123ffa3ab55b5dcc4ea4c9320d0a0fd59a0" |
| 34 | 34 | ||
| 35 | SRCREV = "cf44da79555d1897115eb350cbc43db1e213db03" | 35 | SRCREV = "4169157a1874fca3fb55571c60507c1aefd4e1e5" |
| 36 | BRANCH ?= "master" | 36 | BRANCH ?= "master" |
| 37 | 37 | ||
| 38 | S = "${WORKDIR}/git" | 38 | S = "${WORKDIR}/git" |
| @@ -132,23 +132,25 @@ PACKAGESPLITFUNCS_prepend = "split_hosttools_packages " | |||
| 132 | python split_hosttools_packages () { | 132 | python split_hosttools_packages () { |
| 133 | bindir = d.getVar('bindir') | 133 | bindir = d.getVar('bindir') |
| 134 | 134 | ||
| 135 | # Split all binaries to their own packages except aktualizr-info, | 135 | # Split all binaries to their own packages. |
| 136 | # aktualizr-info should stay in main package aktualizr. | 136 | do_split_packages(d, bindir, '^(.*)$', '%s', 'Aktualizr tool - %s', extra_depends='aktualizr-configs', prepend=False) |
| 137 | do_split_packages(d, bindir, r'^((?!(aktualizr-info)).*)$', '%s', 'Aktualizr tool - %s', extra_depends='aktualizr-configs', prepend=False) | ||
| 138 | } | 137 | } |
| 139 | 138 | ||
| 140 | PACKAGES_DYNAMIC = "^aktualizr-.* ^garage-.*" | 139 | PACKAGES_DYNAMIC = "^aktualizr-.* ^garage-.*" |
| 141 | 140 | ||
| 142 | PACKAGES =+ "${PN}-host-tools ${PN}-lib ${PN}-resource-control ${PN}-configs ${PN}-secondary ${PN}-secondary-lib ${PN}-sotatools-lib" | 141 | PACKAGES =+ "${PN}-host-tools ${PN}-info ${PN}-lib ${PN}-resource-control ${PN}-configs ${PN}-secondary ${PN}-secondary-lib ${PN}-sotatools-lib" |
| 143 | 142 | ||
| 144 | ALLOW_EMPTY_${PN}-host-tools = "1" | 143 | ALLOW_EMPTY_${PN}-host-tools = "1" |
| 145 | 144 | ||
| 146 | FILES_${PN} = " \ | 145 | FILES_${PN} = " \ |
| 147 | ${bindir}/aktualizr \ | 146 | ${bindir}/aktualizr \ |
| 148 | ${bindir}/aktualizr-info \ | ||
| 149 | ${systemd_unitdir}/system/aktualizr.service \ | 147 | ${systemd_unitdir}/system/aktualizr.service \ |
| 150 | " | 148 | " |
| 151 | 149 | ||
| 150 | FILES_${PN}-info = " \ | ||
| 151 | ${bindir}/aktualizr-info \ | ||
| 152 | " | ||
| 153 | |||
| 152 | FILES_${PN}-lib = " \ | 154 | FILES_${PN}-lib = " \ |
| 153 | ${libdir}/libaktualizr.so \ | 155 | ${libdir}/libaktualizr.so \ |
| 154 | " | 156 | " |
diff --git a/recipes-sota/aktualizr/files/aktualizr.service b/recipes-sota/aktualizr/files/aktualizr.service index 3d807a1..ae5d23a 100644 --- a/recipes-sota/aktualizr/files/aktualizr.service +++ b/recipes-sota/aktualizr/files/aktualizr.service | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | [Unit] | 1 | [Unit] |
| 2 | Description=Aktualizr SOTA Client | 2 | Description=Aktualizr SOTA Client |
| 3 | After=network-online.target nss-lookup.target | 3 | After=network-online.target nss-lookup.target boot-complete.target |
| 4 | Requires=boot-complete.target | ||
| 4 | Wants=network-online.target | 5 | Wants=network-online.target |
| 5 | 6 | ||
| 6 | [Service] | 7 | [Service] |
diff --git a/recipes-sota/config/aktualizr-binary-pacman.bb b/recipes-sota/config/aktualizr-binary-pacman.bb new file mode 100644 index 0000000..36bafb3 --- /dev/null +++ b/recipes-sota/config/aktualizr-binary-pacman.bb | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | DESCRIPTION = "Configure aktualizr with a binary package manager" | ||
| 2 | LICENSE = "MPL-2.0" | ||
| 3 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad" | ||
| 4 | |||
| 5 | inherit allarch | ||
| 6 | |||
| 7 | SRC_URI = "\ | ||
| 8 | file://10-pacman.toml \ | ||
| 9 | " | ||
| 10 | |||
| 11 | FILES_${PN} = " \ | ||
| 12 | ${libdir}/sota/conf.d \ | ||
| 13 | ${libdir}/sota/conf.d/10-pacman.toml \ | ||
| 14 | " | ||
| 15 | |||
| 16 | PR = "1" | ||
| 17 | |||
| 18 | do_install() { | ||
| 19 | install -m 0700 -d ${D}${libdir}/sota/conf.d | ||
| 20 | install -m 0644 ${WORKDIR}/10-pacman.toml ${D}${libdir}/sota/conf.d/10-pacman.toml | ||
| 21 | } | ||
diff --git a/recipes-sota/config/files/10-pacman.toml b/recipes-sota/config/files/10-pacman.toml new file mode 100644 index 0000000..a24fd39 --- /dev/null +++ b/recipes-sota/config/files/10-pacman.toml | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | [pacman] | ||
| 2 | type = "none" | ||
diff --git a/recipes-sota/ostree-kernel-initramfs/ostree-kernel-initramfs_0.0.1.bb b/recipes-sota/ostree-kernel-initramfs/ostree-kernel-initramfs_0.0.1.bb new file mode 100644 index 0000000..136bb22 --- /dev/null +++ b/recipes-sota/ostree-kernel-initramfs/ostree-kernel-initramfs_0.0.1.bb | |||
| @@ -0,0 +1,61 @@ | |||
| 1 | SUMMARY = "Ostree linux kernel, devicetrees and initramfs packager" | ||
| 2 | DESCRIPTION = "Ostree linux kernel, devicetrees and initramfs packager" | ||
| 3 | SECTION = "kernel" | ||
| 4 | LICENSE = "GPLv2" | ||
| 5 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" | ||
| 6 | |||
| 7 | # Whilst not a module, this ensures we don't get multilib extended (which would make no sense) | ||
| 8 | inherit module-base kernel-artifact-names | ||
| 9 | |||
| 10 | PACKAGES = "ostree-kernel ostree-initramfs ostree-devicetrees" | ||
| 11 | |||
| 12 | ALLOW_EMPTY_ostree-initramfs = "1" | ||
| 13 | ALLOW_EMPTY_ostree-devicetrees = "1" | ||
| 14 | |||
| 15 | FILES_ostree-kernel = "${nonarch_base_libdir}/modules/*/vmlinuz" | ||
| 16 | FILES_ostree-initramfs = "${nonarch_base_libdir}/modules/*/initramfs.img" | ||
| 17 | FILES_ostree-devicetrees = "${nonarch_base_libdir}/modules/*/dtb/* \ | ||
| 18 | ${nonarch_base_libdir}/modules/*/devicetree \ | ||
| 19 | " | ||
| 20 | |||
| 21 | PACKAGE_ARCH = "${MACHINE_ARCH}" | ||
| 22 | |||
| 23 | KERNEL_BUILD_ROOT = "${nonarch_base_libdir}/modules/" | ||
| 24 | |||
| 25 | # There's nothing to do here, except install the artifacts where we can package them | ||
| 26 | do_fetch[noexec] = "1" | ||
| 27 | do_unpack[noexec] = "1" | ||
| 28 | do_patch[noexec] = "1" | ||
| 29 | do_configure[noexec] = "1" | ||
| 30 | do_compile[noexec] = "1" | ||
| 31 | deltask do_populate_sysroot | ||
| 32 | |||
| 33 | do_install() { | ||
| 34 | kerneldir=${D}${KERNEL_BUILD_ROOT}${KERNEL_VERSION} | ||
| 35 | install -d $kerneldir | ||
| 36 | |||
| 37 | cp ${DEPLOY_DIR_IMAGE}/${OSTREE_KERNEL} $kerneldir/vmlinuz | ||
| 38 | |||
| 39 | if [ "${KERNEL_IMAGETYPE}" != "fitImage" ]; then | ||
| 40 | if [ -n "${INITRAMFS_IMAGE}" ]; then | ||
| 41 | cp ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES} $kerneldir/initramfs.img | ||
| 42 | fi | ||
| 43 | |||
| 44 | if [ ${@ oe.types.boolean('${OSTREE_DEPLOY_DEVICETREE}')} = True ] && [ -n "${OSTREE_DEVICETREE}" ]; then | ||
| 45 | mkdir -p $kerneldir/dtb | ||
| 46 | for dts_file in ${OSTREE_DEVICETREE}; do | ||
| 47 | dts_file_basename=$(basename $dts_file) | ||
| 48 | cp ${DEPLOY_DIR_IMAGE}/$dts_file_basename $kerneldir/dtb/$dts_file_basename | ||
| 49 | done | ||
| 50 | cp $kerneldir/dtb/$(basename $(echo ${OSTREE_DEVICETREE} | awk '{print $1}')) $kerneldir/devicetree | ||
| 51 | fi | ||
| 52 | fi | ||
| 53 | } | ||
| 54 | do_install[vardepsexclude] = "KERNEL_VERSION" | ||
| 55 | INITRAMFS_IMAGE ?= "" | ||
| 56 | do_install[depends] = "virtual/kernel:do_deploy ${@['${INITRAMFS_IMAGE}:do_image_complete', ''][d.getVar('INITRAMFS_IMAGE') == '']}" | ||
| 57 | |||
| 58 | python() { | ||
| 59 | if not d.getVar('OSTREE_KERNEL'): | ||
| 60 | raise bb.parse.SkipRecipe('OSTREE_KERNEL is not defined, maybe your MACHINE config does not inherit sota.bbclass?') | ||
| 61 | } | ||
diff --git a/recipes-test/images/primary-image.bb b/recipes-test/images/primary-image.bb index ba1dc1f..e6896ea 100644 --- a/recipes-test/images/primary-image.bb +++ b/recipes-test/images/primary-image.bb | |||
| @@ -5,7 +5,7 @@ SUMMARY = "A minimal Uptane Primary image running aktualizr, for testing with a | |||
| 5 | LICENSE = "MPL-2.0" | 5 | LICENSE = "MPL-2.0" |
| 6 | 6 | ||
| 7 | IMAGE_INSTALL_remove = " \ | 7 | IMAGE_INSTALL_remove = " \ |
| 8 | virtual/network-configuration \ | 8 | network-configuration \ |
| 9 | " | 9 | " |
| 10 | 10 | ||
| 11 | IMAGE_INSTALL_append = " \ | 11 | IMAGE_INSTALL_append = " \ |
diff --git a/recipes-test/images/secondary-image.bb b/recipes-test/images/secondary-image.bb index 7db2c68..22fb7f3 100644 --- a/recipes-test/images/secondary-image.bb +++ b/recipes-test/images/secondary-image.bb | |||
| @@ -16,7 +16,7 @@ IMAGE_INSTALL_remove = " \ | |||
| 16 | aktualizr-device-prov \ | 16 | aktualizr-device-prov \ |
| 17 | aktualizr-device-prov-hsm \ | 17 | aktualizr-device-prov-hsm \ |
| 18 | aktualizr-uboot-env-rollback \ | 18 | aktualizr-uboot-env-rollback \ |
| 19 | virtual/network-configuration \ | 19 | network-configuration \ |
| 20 | " | 20 | " |
| 21 | 21 | ||
| 22 | IMAGE_INSTALL_append = " \ | 22 | IMAGE_INSTALL_append = " \ |
