diff options
| author | Ming Liu <liu.ming50@gmail.com> | 2019-02-03 13:12:29 +0100 |
|---|---|---|
| committer | Peter Liu <peter.liu@se.atlascopco.com> | 2019-02-06 21:27:11 +0100 |
| commit | 7ec1ffc436e8725e40e1853d084054b554929041 (patch) | |
| tree | ea1baac6841f9770c92c89ec8ccc6a0e61349b5a | |
| parent | 3217e9205c85d91be6a4e2ea13f7a30d4343f69f (diff) | |
| download | meta-updater-7ec1ffc436e8725e40e1853d084054b554929041.tar.gz | |
aktualizr: split binaries to their own packages
This patch mainly aims to fix the following issues:
- ${libdir}/sota/conf.d is being put into aktualizr package, but
${libdir}/sota/*.toml is being put into aktualizr-host-tools, this
does not make sense, if a end user only install aktualizr-host-tools
to a target, he will miss the config files in ${libdir}/sota/conf.d.
- A user should be able to install garage-deploy garage-push to a board
if he wants to do that by choosing building aktualizr with sota-tools,
but now it's not in that case, garage-deploy garage-push are only
available for native.
- It's not necessary to distinguish native/target when installing
systemd services, they will be dropped by sstate from native sysroot
any way.
- It would be better that all binaries to be put into their own
packages, so a end user can choose to install a package only with one
binary, rather than having to install the entire aktualizr-host-tools.
Introduce per-binary based packages for host tools, and gather all
config files to aktualizr-configs, it will be depended by binary
packages and main aktualizr package.
Signed-off-by: Ming Liu <liu.ming50@gmail.com>
| -rwxr-xr-x | recipes-sota/aktualizr/aktualizr_git.bb | 61 |
1 files changed, 29 insertions, 32 deletions
diff --git a/recipes-sota/aktualizr/aktualizr_git.bb b/recipes-sota/aktualizr/aktualizr_git.bb index 8bd65da..fbc1bca 100755 --- a/recipes-sota/aktualizr/aktualizr_git.bb +++ b/recipes-sota/aktualizr/aktualizr_git.bb | |||
| @@ -5,9 +5,12 @@ SECTION = "base" | |||
| 5 | LICENSE = "MPL-2.0" | 5 | LICENSE = "MPL-2.0" |
| 6 | LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=9741c346eef56131163e13b9db1241b3" | 6 | LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=9741c346eef56131163e13b9db1241b3" |
| 7 | 7 | ||
| 8 | require garage-sign-version.inc | ||
| 9 | |||
| 8 | DEPENDS = "boost curl openssl libarchive libsodium sqlite3 asn1c-native" | 10 | DEPENDS = "boost curl openssl libarchive libsodium sqlite3 asn1c-native" |
| 9 | RDEPENDS_${PN}_class-target = "${PN}-tools lshw" | 11 | RDEPENDS_${PN}_class-target = "aktualizr-check-discovery aktualizr-configs lshw" |
| 10 | RDEPENDS_${PN}-secondary_class-target = "${PN}-tools" | 12 | RDEPENDS_${PN}-secondary = "aktualizr-check-discovery" |
| 13 | RDEPENDS_${PN}-host-tools = "aktualizr aktualizr-repo aktualizr-cert-provider ${@bb.utils.contains('PACKAGECONFIG', 'sota-tools', 'garage-deploy garage-push', '', d)}" | ||
| 11 | 14 | ||
| 12 | PV = "1.0+git${SRCPV}" | 15 | PV = "1.0+git${SRCPV}" |
| 13 | PR = "7" | 16 | PR = "7" |
| @@ -31,10 +34,6 @@ SYSTEMD_PACKAGES = "${PN} ${PN}-secondary" | |||
| 31 | SYSTEMD_SERVICE_${PN} = "aktualizr.service" | 34 | SYSTEMD_SERVICE_${PN} = "aktualizr.service" |
| 32 | SYSTEMD_SERVICE_${PN}-secondary = "aktualizr-secondary.socket" | 35 | SYSTEMD_SERVICE_${PN}-secondary = "aktualizr-secondary.socket" |
| 33 | 36 | ||
| 34 | BBCLASSEXTEND =+ "native" | ||
| 35 | |||
| 36 | require garage-sign-version.inc | ||
| 37 | |||
| 38 | EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release -DAKTUALIZR_VERSION=${PV}" | 37 | EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release -DAKTUALIZR_VERSION=${PV}" |
| 39 | 38 | ||
| 40 | GARAGE_SIGN_OPS = "${@ '-DGARAGE_SIGN_VERSION=%s' % d.getVar('GARAGE_SIGN_VERSION') if d.getVar('GARAGE_SIGN_VERSION') is not None else ''} \ | 39 | GARAGE_SIGN_OPS = "${@ '-DGARAGE_SIGN_VERSION=%s' % d.getVar('GARAGE_SIGN_VERSION') if d.getVar('GARAGE_SIGN_VERSION') is not None else ''} \ |
| @@ -80,48 +79,45 @@ do_install_append () { | |||
| 80 | fi | 79 | fi |
| 81 | fi | 80 | fi |
| 82 | 81 | ||
| 83 | } | ||
| 84 | |||
| 85 | do_install_append_class-target () { | ||
| 86 | install -m 0755 -d ${D}${systemd_unitdir}/system | 82 | install -m 0755 -d ${D}${systemd_unitdir}/system |
| 87 | aktualizr_service=${@bb.utils.contains('SOTA_CLIENT_FEATURES', 'serialcan', '${WORKDIR}/aktualizr-serialcan.service', '${WORKDIR}/aktualizr.service', d)} | 83 | aktualizr_service=${@bb.utils.contains('SOTA_CLIENT_FEATURES', 'serialcan', '${WORKDIR}/aktualizr-serialcan.service', '${WORKDIR}/aktualizr.service', d)} |
| 88 | install -m 0644 ${aktualizr_service} ${D}${systemd_unitdir}/system/aktualizr.service | 84 | install -m 0644 ${aktualizr_service} ${D}${systemd_unitdir}/system/aktualizr.service |
| 85 | |||
| 86 | if ${@bb.utils.contains('PACKAGECONFIG', 'sota-tools', 'true', 'false', d)}; then | ||
| 87 | install -m 0755 ${B}/src/sota_tools/garage-sign/bin/* ${D}${bindir} | ||
| 88 | install -m 0644 ${B}/src/sota_tools/garage-sign/lib/* ${D}${libdir} | ||
| 89 | fi | ||
| 89 | } | 90 | } |
| 90 | 91 | ||
| 91 | do_install_append_class-native () { | 92 | PACKAGESPLITFUNCS_prepend = "split_hosttools_packages " |
| 92 | install -m 0755 ${B}/src/sota_tools/garage-sign/bin/* ${D}${bindir} | 93 | |
| 93 | install -m 0644 ${B}/src/sota_tools/garage-sign/lib/* ${D}${libdir} | 94 | python split_hosttools_packages () { |
| 95 | bindir = d.getVar('bindir') | ||
| 96 | |||
| 97 | # Split all binaries to their own packages except aktualizr-info, | ||
| 98 | # aktualizr-info should stay in main package aktualizr. | ||
| 99 | do_split_packages(d, bindir, r'^((?!(aktualizr-info)).*)$', '%s', 'Aktualizr tool - %s', extra_depends='aktualizr-configs', prepend=False) | ||
| 94 | } | 100 | } |
| 95 | 101 | ||
| 96 | PACKAGES =+ " ${PN}-examples ${PN}-host-tools ${PN}-tools ${PN}-secondary " | 102 | PACKAGES_DYNAMIC = "^aktualizr-.* ^garage-.*" |
| 103 | |||
| 104 | PACKAGES =+ "${PN}-examples ${PN}-secondary ${PN}-configs ${PN}-host-tools" | ||
| 105 | |||
| 106 | ALLOW_EMPTY_${PN}-host-tools = "1" | ||
| 97 | 107 | ||
| 98 | FILES_${PN} = " \ | 108 | FILES_${PN} = " \ |
| 99 | ${bindir}/aktualizr \ | 109 | ${bindir}/aktualizr \ |
| 100 | ${bindir}/aktualizr-info \ | 110 | ${bindir}/aktualizr-info \ |
| 101 | ${systemd_unitdir}/system/aktualizr.service \ | 111 | ${systemd_unitdir}/system/aktualizr.service \ |
| 102 | ${libdir}/sota/conf.d \ | ||
| 103 | ${sysconfdir}/sota/conf.d \ | ||
| 104 | ${sysconfdir}/sota/ecus/* \ | ||
| 105 | " | 112 | " |
| 106 | 113 | ||
| 107 | FILES_${PN}-examples = " \ | 114 | FILES_${PN}-configs = " \ |
| 108 | ${bindir}/hmi-stub \ | 115 | ${sysconfdir}/sota/* \ |
| 116 | ${libdir}/sota/* \ | ||
| 109 | " | 117 | " |
| 110 | 118 | ||
| 111 | FILES_${PN}-host-tools = " \ | 119 | FILES_${PN}-examples = " \ |
| 112 | ${bindir}/aktualizr-repo \ | 120 | ${bindir}/hmi-stub \ |
| 113 | ${bindir}/aktualizr-cert-provider \ | ||
| 114 | ${bindir}/garage-deploy \ | ||
| 115 | ${bindir}/garage-push \ | ||
| 116 | ${libdir}/sota/sota_autoprov.toml \ | ||
| 117 | ${libdir}/sota/sota_autoprov_primary.toml \ | ||
| 118 | ${libdir}/sota/sota_hsm_prov.toml \ | ||
| 119 | ${libdir}/sota/sota_implicit_prov_ca.toml \ | ||
| 120 | ${libdir}/sota/sota_uboot_env.toml \ | ||
| 121 | " | ||
| 122 | |||
| 123 | FILES_${PN}-tools = " \ | ||
| 124 | ${bindir}/aktualizr-check-discovery \ | ||
| 125 | " | 121 | " |
| 126 | 122 | ||
| 127 | FILES_${PN}-secondary = " \ | 123 | FILES_${PN}-secondary = " \ |
| @@ -130,5 +126,6 @@ FILES_${PN}-secondary = " \ | |||
| 130 | ${systemd_unitdir}/system/aktualizr-secondary.socket \ | 126 | ${systemd_unitdir}/system/aktualizr-secondary.socket \ |
| 131 | ${systemd_unitdir}/system/aktualizr-secondary.service \ | 127 | ${systemd_unitdir}/system/aktualizr-secondary.service \ |
| 132 | " | 128 | " |
| 129 | BBCLASSEXTEND = "native" | ||
| 133 | 130 | ||
| 134 | # vim:set ts=4 sw=4 sts=4 expandtab: | 131 | # vim:set ts=4 sw=4 sts=4 expandtab: |
