diff options
author | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2022-08-09 11:33:17 +0200 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2022-08-09 15:43:04 +0200 |
commit | 13169c3265ba75d783eb3723504298a08e768110 (patch) | |
tree | 9f30b921d3491ad9bc8a55d58fd3bf6f3db8800e /meta-agl-ic-container | |
parent | ce87122d195d3a1fea454cfa4acd91e22ccea264 (diff) |
Rename Instrument Cluster Container layer
meta-agl-lxc is no longer reflecting the actual content and use of the layer.
Rename it to 'meta-agl-ic-container' and the feature to 'agl-ic-container'.
Also rename the main image to 'agl-cluster-demo-lxc-host' to match the pattern used
by all other images e.g. agl-<ivi,cluster,telematics>-demo-* .
But keep the names of the underlying images as-is.
Bug-AGL: SPEC-4464
Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Change-Id: I898c786ca884331b302a3be8e150379fcf5bdc9b
Diffstat (limited to 'meta-agl-ic-container')
106 files changed, 1801 insertions, 0 deletions
diff --git a/meta-agl-ic-container/classes/guest-kernel-module.bbclass b/meta-agl-ic-container/classes/guest-kernel-module.bbclass new file mode 100644 index 00000000..6c8da4a2 --- /dev/null +++ b/meta-agl-ic-container/classes/guest-kernel-module.bbclass @@ -0,0 +1,21 @@ +DEPENDS:remove:aglcontainerguest = "${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-dummy", "linux-renesas", "", d)}" + +do_configure[depends] = "${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-dummy", "", "make-mod-scripts:do_compile", d)}" + +python __anonymous () { + # Need to use inline python here as, contrary to the BitBake docs, + # having noexec set at all disables the task, so using + # oe.utils.conditional to set it to "0" still ends up with the task + # disabled. + if d.getVar("PREFERRED_PROVIDER_virtual/kernel") == "linux-dummy": + d.setVarFlag("do_compile", "noexec", "1") +} + +do_install:aglcontainerguest() { + # Create destination directory + install -d ${D}/${includedir}/ +} + +# Guest doesn't build the module, so go ahead and quiet warnings about +# double '/' in base recipe definition +FILES:${PN}:aglcontainerguest = "" diff --git a/meta-agl-ic-container/classes/lxc-config.bbclass b/meta-agl-ic-container/classes/lxc-config.bbclass new file mode 100644 index 00000000..921aaf92 --- /dev/null +++ b/meta-agl-ic-container/classes/lxc-config.bbclass @@ -0,0 +1,58 @@ +# Helper class for installing LXC guest configuration. +# Assumes that: +# - Recipe name is 'lxc-config-' + <guest name> +# - Corresponding files {config,system.conf}.<guest name>.in are in +# the file search path +# - That references to the DRM lease device name are parameterized +# with @DRM_LEASE_DEVICE@ in the .in files +# As well: +# - The .in files can optionally use the @LXC_AUTO_START@ parameter +# to pick up the value of the LXC_AUTO_START variable for use in +# defining lxc.start.auto. The default value is "0", so recipes +# need to assign the variable to "1" to have the associated +# container start automatically. + +python __anonymous() { + bpn = d.getVar('BPN') + if not bpn.startswith('lxc-config-'): + bb.error('Recipe name does not start with \'lxc-config-\'') + config = bpn[11:] + d.setVar('LXC_CONFIG_NAME', config) + src_uri = 'file://basic.in' \ + + ' file://mount.in' \ + + ' file://network.in' \ + + ' file://environment.in' \ + + ' file://misc.in' \ + + ' file://system.conf.' + config + '.in' + d.setVar('SRC_URI', src_uri) +} + +S = "${WORKDIR}" + +inherit allarch + +DRM_LEASE_DEVICE ??= "card0-HDMI-A-1" + +DRM_LEASE_DEVICE:qemuall ?= "card0-Virtual-1" + +LXC_AUTO_START ??= "0" + +do_configure[noexec] = "1" +do_compile[noexec] = "1" + +do_install () { + rm -f ${WORKDIR}/config.${LXC_CONFIG_NAME}.in + files="basic.in mount.in network.in environment.in misc.in" + for f in ${files}; do + cat ${WORKDIR}/$f >> ${WORKDIR}/config.${LXC_CONFIG_NAME}.in + done + + install -m 0755 -d ${D}/var/lib/lxc/${LXC_CONFIG_NAME} + for f in config.${LXC_CONFIG_NAME}.in system.conf.${LXC_CONFIG_NAME}.in; do + sed -e 's|@DRM_LEASE_DEVICE@|${DRM_LEASE_DEVICE}|g' \ + -e 's|@LXC_AUTO_START@|${LXC_AUTO_START}|g' \ + ${WORKDIR}/$f > ${D}${localstatedir}/lib/lxc/${LXC_CONFIG_NAME}/${f%.${LXC_CONFIG_NAME}.in} + done +} + +FILES:${PN} = "${localstatedir}/lib/lxc/" diff --git a/meta-agl-ic-container/conf/layer.conf b/meta-agl-ic-container/conf/layer.conf new file mode 100644 index 00000000..acf7dbbe --- /dev/null +++ b/meta-agl-ic-container/conf/layer.conf @@ -0,0 +1,17 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH =. "${LAYERDIR}:" + +# We have recipes-* directories, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "aglcontainermc" +BBFILE_PATTERN_aglcontainermc = "^${LAYERDIR}/" +BBFILE_PRIORITY_aglcontainermc = "100" + +BBFILES_DYNAMIC += " \ + rcar-gen3:${LAYERDIR}/dynamic-layers/meta-rcar-gen3/*/*/*.bb \ + rcar-gen3:${LAYERDIR}/dynamic-layers/meta-rcar-gen3/*/*/*.bbappend \ +" + +LAYERSERIES_COMPAT_aglcontainermc = "kirkstone" diff --git a/meta-agl-ic-container/conf/multiconfig/agl-container-cluster.conf b/meta-agl-ic-container/conf/multiconfig/agl-container-cluster.conf new file mode 100644 index 00000000..29272c78 --- /dev/null +++ b/meta-agl-ic-container/conf/multiconfig/agl-container-cluster.conf @@ -0,0 +1,29 @@ +# The aglcontainerguest is a common keyword for agl container. +OVERRIDES:append = ":aglcontainerguest" + +# The aglcontainercluster is specific keyword for cluster guest. +OVERRIDES:append = ":aglcontainercluster" + +TMPDIR = "${TOPDIR}/tmp-${BB_CURRENT_MC}" + +# Can be blank as container image type results in a .tar.bz2 +AGL_DEFAULT_IMAGE_FSTYPES = "" +AGL_EXTRA_IMAGE_FSTYPES = "" + +IMAGE_FSTYPES:aglcontainerguest = "container" + +IMAGE_LINGUAS:append:aglcontainercluster = " en-us" + +PREFERRED_PROVIDER_virtual/kernel:aglcontainerguest = "linux-dummy" +KERNEL_DEVICETREE:aglcontainercluster = "" + +# Disable serial consoles +SERIAL_CONSOLES:aglcontainerguest = "" + +# Remove unneeded firmware packages +EXTRA_IMAGEDEPENDS:remove:aglcontainerguest = "arm-trusted-firmware optee-os u-boot" + +# We assume rngd is running on the host, so unnecessary in container +VIRTUAL-RUNTIME_rngd = "" + +hostname:append:aglcontainercluster = "-cluster" diff --git a/meta-agl-ic-container/conf/multiconfig/agl-container-guest.conf b/meta-agl-ic-container/conf/multiconfig/agl-container-guest.conf new file mode 100644 index 00000000..db25b3b7 --- /dev/null +++ b/meta-agl-ic-container/conf/multiconfig/agl-container-guest.conf @@ -0,0 +1,23 @@ +OVERRIDES:append = ":aglcontainerguest" + +TMPDIR = "${TOPDIR}/tmp-${BB_CURRENT_MC}" + +# Can be blank as container image type results in a .tar.bz2 +AGL_DEFAULT_IMAGE_FSTYPES:aglcontainerguest = "" +AGL_EXTRA_IMAGE_FSTYPES:aglcontainerguest = "" + +IMAGE_FSTYPES:aglcontainerguest = "container" + +IMAGE_LINGUAS:append:aglcontainerguest = " en-us" + +PREFERRED_PROVIDER_virtual/kernel:aglcontainerguest = "linux-dummy" +KERNEL_DEVICETREE:aglcontainerguest = "" + +# Disable serial consoles +SERIAL_CONSOLES:aglcontainerguest = "" + +# Remove unneeded firmware packages +EXTRA_IMAGEDEPENDS:remove:aglcontainerguest = "arm-trusted-firmware optee-os u-boot" + +# We assume rngd is running on the host, so unnecessary in container +VIRTUAL-RUNTIME_rngd = "" diff --git a/meta-agl-ic-container/conf/multiconfig/agl-container-ivi.conf b/meta-agl-ic-container/conf/multiconfig/agl-container-ivi.conf new file mode 100644 index 00000000..4553e7a2 --- /dev/null +++ b/meta-agl-ic-container/conf/multiconfig/agl-container-ivi.conf @@ -0,0 +1,32 @@ +# The aglcontainerguest is a common keyword for agl container. +OVERRIDES:append = ":aglcontainerguest" + +# The aglcontainerivi is specific keyword for ivi guest. +OVERRIDES:append = ":aglcontainerivi" + +TMPDIR = "${TOPDIR}/tmp-${BB_CURRENT_MC}" + +# Can be blank as container image type results in a .tar.bz2 +AGL_DEFAULT_IMAGE_FSTYPES:aglcontainerivi = "" +AGL_EXTRA_IMAGE_FSTYPES:aglcontainerivi = "" + +IMAGE_FSTYPES:aglcontainerguest = "container" + +IMAGE_LINGUAS:append:aglcontainerivi = " en-us" + +PREFERRED_PROVIDER_virtual/kernel:aglcontainerguest = "linux-dummy" +KERNEL_DEVICETREE:aglcontainerivi = "" + +# Disable serial consoles +SERIAL_CONSOLES:aglcontainerguest = "" + +# Remove unneeded firmware packages +EXTRA_IMAGEDEPENDS:remove:aglcontainerguest = "arm-trusted-firmware optee-os u-boot" + +# We assume rngd is running on the host, so unnecessary in container +VIRTUAL-RUNTIME_rngd = "" + +# network manager to use +VIRTUAL-RUNTIME_net_manager = "systemd" + +hostname:append:aglcontainerivi = "-ivi" diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-connectivity/openssl/openssl_%.bbappend b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-connectivity/openssl/openssl_%.bbappend new file mode 100644 index 00000000..6060e6b1 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-connectivity/openssl/openssl_%.bbappend @@ -0,0 +1,4 @@ +# Add a hook to disable depending on cryptodev-module for containers +CRYPTODEV_RDEPENDS = "cryptodev-module" +CRYPTODEV_RDEPENDS:aglcontainerguest = "" +PACKAGECONFIG[cryptodev-linux] = "enable-devcryptoeng,disable-devcryptoeng,cryptodev-linux,,${CRYPTODEV_RDEPENDS}" diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in new file mode 100644 index 00000000..523b5272 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in @@ -0,0 +1,17 @@ +# lxc mount setting +lxc.mount.entry = /var/lib/lxc/cluster-demo/system.conf etc/systemd/system.conf.d/10-environment.conf none bind,optional,create=file + +lxc.mount.auto = cgroup:mixed proc:mixed sys:mixed +lxc.mount.entry = shm /dev/shm tmpfs defaults 0 0 +lxc.mount.entry = /sys/kernel/security sys/kernel/security none ro,bind,optional 0 0 + +lxc.cgroup.devices.allow = c 226:* rwm +lxc.mount.entry = /dev/dri dev/dri none bind,optional,create=dir + +lxc.mount.entry = /run/drm-lease-manager/lease-cluster var/display/drm-lease-manager/lease none bind,create=file + +lxc.cgroup.devices.allow = c 10:* rwm +lxc.mount.entry = /dev/pvr_sync dev/pvr_sync none bind,optional,create=file + +lxc.mount.entry = /run/pipewire/icipc-0 var/icipc-0 none bind,optional,create=file + diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bbappend b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bbappend new file mode 100644 index 00000000..92888ba8 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bbappend @@ -0,0 +1,8 @@ +require multi-display.inc + +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" + +# If you want to change display assign in your board, please change this line in your recipe. +DRM_LEASE_DEVICE ?= "${@bb.utils.contains("HAS_MULTI_DISPLAY", "1", "card0-HDMI-A-2", "card0-HDMI-A-1" ,d)}" + +LXC_AUTO_START ?= "1" diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo/mount.in b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo/mount.in new file mode 100644 index 00000000..2fbf4193 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo/mount.in @@ -0,0 +1,22 @@ +# lxc mount setting +lxc.mount.entry = /var/lib/lxc/ivi-demo/system.conf etc/systemd/system.conf.d/10-environment.conf none bind,optional,create=file + +lxc.mount.auto = cgroup:mixed proc:mixed sys:mixed +lxc.mount.entry = shm /dev/shm tmpfs defaults 0 0 +lxc.mount.entry = /sys/kernel/security sys/kernel/security none ro,bind,optional 0 0 +lxc.mount.entry = tmpfs run tmpfs defaults +lxc.mount.entry = /run/udev/data run/udev/data none ro,bind,optional,create=dir + +lxc.cgroup.devices.allow = c 226:* rwm +lxc.mount.entry = /dev/dri dev/dri none bind,optional,create=dir + +lxc.mount.entry = /run/drm-lease-manager/lease-ivi var/display/drm-lease-manager/lease none bind,create=file + +lxc.cgroup.devices.allow = c 13:* rwm +lxc.mount.entry = /dev/input dev/input none bind,optional,create=dir + +lxc.cgroup.devices.allow = c 10:* rwm +lxc.mount.entry = /dev/pvr_sync dev/pvr_sync none bind,optional,create=file + +lxc.mount.entry = /run/pipewire/pipewire-0 var/pipewire-0 none bind,optional,create=file + diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo/network.in b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo/network.in new file mode 100644 index 00000000..6545b1ad --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo/network.in @@ -0,0 +1,5 @@ +# lxc network setting +lxc.net.0.type = veth +lxc.net.0.link = lxcbr0 +lxc.net.0.flags = up +lxc.net.0.hwaddr = 00:16:3e:69:87:a4 diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bbappend b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bbappend new file mode 100644 index 00000000..f58fe2cb --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bbappend @@ -0,0 +1,5 @@ +require multi-display.inc + +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" + +LXC_AUTO_START ?= "${@bb.utils.contains("HAS_MULTI_DISPLAY", "1", "1", "0" ,d)}" diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/multi-display.inc b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/multi-display.inc new file mode 100644 index 00000000..96a3e29e --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/multi-display.inc @@ -0,0 +1,3 @@ +HAS_MULTI_DISPLAY ?= "" +HAS_MULTI_DISPLAY += "${@bb.utils.contains("AGL_FEATURES", "kingfisher", "1", "" ,d)}" +HAS_MULTI_DISPLAY += "${@bb.utils.contains("AGL_FEATURES", "agl-refhw-h3", "1", "" ,d)}" diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-graphics/drm-lease-manager/drm-lease-manager-init.bbappend b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-graphics/drm-lease-manager/drm-lease-manager-init.bbappend new file mode 100644 index 00000000..371f6539 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-graphics/drm-lease-manager/drm-lease-manager-init.bbappend @@ -0,0 +1,2 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" +SRC_URI = "file://drm-lease-manager.ini" diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-graphics/drm-lease-manager/drm-lease-manager-init/drm-lease-manager.ini b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-graphics/drm-lease-manager/drm-lease-manager-init/drm-lease-manager.ini new file mode 100644 index 00000000..45ecfc27 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-graphics/drm-lease-manager/drm-lease-manager-init/drm-lease-manager.ini @@ -0,0 +1,7 @@ +[[lease]] +name="lease-ivi" +connectors=["HDMI-A-1"] + +[[lease]] +name="lease-cluster" +connectors=["HDMI-A-2"] diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-graphics/gles-module/gles-user-module.bbappend b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-graphics/gles-module/gles-user-module.bbappend new file mode 100644 index 00000000..462dd5fc --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-graphics/gles-module/gles-user-module.bbappend @@ -0,0 +1,22 @@ +RDEPENDS:${PN}:remove:aglcontainerguest = "kernel-module-gles" + +PACKAGES:prepend = "\ + ${PN}-firmware \ +" + +FILES:${PN} = " \ + ${libdir}/* \ + ${sysconfdir}/* \ + ${RENESAS_DATADIR}/bin/dlcsrv_REL \ +" +SYSTEMD_SERVICE:${PN} = "" + +FILES:${PN}-firmware = " \ + ${systemd_system_unitdir}/* \ + ${sysconfdir}/udev/* \ + ${nonarch_base_libdir}/firmware/* \ + ${exec_prefix}/bin/pvrinit \ +" +SYSTEMD_SERVICE:${PN}-firmware = "rc.pvr.service" +SYSTEMD_PACKAGES = "${PN}-firmware" +SYSTEMD_AUTO_ENABLE = "enable" diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-gles/kernel-module-gles.bbappend b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-gles/kernel-module-gles.bbappend new file mode 100644 index 00000000..d0a6a502 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-gles/kernel-module-gles.bbappend @@ -0,0 +1 @@ +RDEPENDS:${PN}:append = " gles-user-module-firmware" diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngr.bbappend b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngr.bbappend new file mode 100644 index 00000000..a9d09a77 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngr.bbappend @@ -0,0 +1,7 @@ +inherit guest-kernel-module + +do_install:aglcontainerguest:append() { + # Install shared header file to ${includedir} + install -m 644 ${S}/${MMNGR_DRV_DIR}/include/mmngr_public_cmn.h ${D}/${includedir}/ + install -m 644 ${S}/${MMNGR_DRV_DIR}/include/mmngr_private_cmn.h ${D}/${includedir}/ +} diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngrbuf.bbappend b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngrbuf.bbappend new file mode 100644 index 00000000..2323de93 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngrbuf.bbappend @@ -0,0 +1,6 @@ +inherit guest-kernel-module + +do_install:aglcontainerguest:append() { + # Install shared header files to ${includedir} + install -m 644 ${S}/${MMNGRBUF_DRV_DIR}/include/mmngr_buf_private_cmn.h ${D}/${includedir}/ +} diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-uvcs/kernel-module-uvcs-drv.bbappend b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-uvcs/kernel-module-uvcs-drv.bbappend new file mode 100644 index 00000000..7c221585 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-uvcs/kernel-module-uvcs-drv.bbappend @@ -0,0 +1,6 @@ +inherit guest-kernel-module + +do_install:aglcontainerguest:append() { + # Install shared header file + install -m 644 ${S}/include/uvcs_ioctl.h ${D}/${includedir}/ +} diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-vsp2driver/kernel-module-vsp2driver.bbappend b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-vsp2driver/kernel-module-vsp2driver.bbappend new file mode 100644 index 00000000..057613fb --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-vsp2driver/kernel-module-vsp2driver.bbappend @@ -0,0 +1,9 @@ +inherit guest-kernel-module + +do_install:aglcontainerguest:append() { + # Install shared header file to ${includedir} + install -m 644 ${S}/vsp2driver/linux/vsp2.h ${D}/${includedir}/ +} + +PACKAGES:append:aglcontainerguest = " ${PN}-dev" +FILES:${PN}-dev:aglcontainerguest += "${includedir}" diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-vspm/kernel-module-vspm.bbappend b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-vspm/kernel-module-vspm.bbappend new file mode 100644 index 00000000..eb478bea --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-vspm/kernel-module-vspm.bbappend @@ -0,0 +1,8 @@ +inherit guest-kernel-module + +do_install:aglcontainerguest:append() { + # Install shared header files + install -m 644 ${S}/${VSPM_DRV_DIR}/include/vspm_cmn.h ${D}/${includedir}/ + install -m 644 ${S}/${VSPM_DRV_DIR}/include/vsp_drv.h ${D}/${includedir}/ + install -m 644 ${S}/${VSPM_DRV_DIR}/include/fdp_drv.h ${D}/${includedir}/ +} diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-vspmif/kernel-module-vspm-if.bbappend b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-vspmif/kernel-module-vspm-if.bbappend new file mode 100644 index 00000000..00078b9c --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-vspmif/kernel-module-vspm-if.bbappend @@ -0,0 +1,6 @@ +inherit guest-kernel-module + +do_install:aglcontainerguest:append() { + # Install shared header file + install -m 644 ${S}/${VSPMIF_DRV_DIR}/include/vspm_if.h ${D}/${includedir}/ +} diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.%.bbappend b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.%.bbappend new file mode 100644 index 00000000..204b6902 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.%.bbappend @@ -0,0 +1,4 @@ +DEPENDS:remove:aglcontainerguest = "linux-renesas" + +EXTRA_OECONF:remove:aglcontainerguest = "--enable-kms" +PACKAGECONFIG:remove:aglcontainerguest = "kms" diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/basic.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/basic.in new file mode 100644 index 00000000..22a8f8de --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/basic.in @@ -0,0 +1,9 @@ +# lxc basic setting +lxc.rootfs.path = dir:/var/lib/machines/cluster-demo +lxc.signal.halt = SIGRTMIN+3 +lxc.signal.reboot = SIGTERM +lxc.uts.name = "cluster" +lxc.tty.max = 1 +lxc.pty.max = 1 +lxc.cap.drop = sys_module mac_admin mac_override sys_time + diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/environment.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/environment.in new file mode 100644 index 00000000..374b9c03 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/environment.in @@ -0,0 +1,7 @@ +# lxc environment variable setting +lxc.environment = QT_QPA_PLATFORM=wayland +lxc.environment = QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/plugins/ +lxc.environment = QML_IMPORT_PATH=/usr/lib/qml/ +lxc.environment = QML2_IMPORT_PATH=/usr/lib/qml/ +lxc.environment = QT_WAYLAND_SHELL_INTEGRATION=xdg-shell + diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/misc.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/misc.in new file mode 100644 index 00000000..9b4f4883 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/misc.in @@ -0,0 +1,3 @@ +# lxc misc setting +lxc.start.auto = @LXC_AUTO_START@ + diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in new file mode 100644 index 00000000..a87322ba --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in @@ -0,0 +1,14 @@ +# lxc mount setting +lxc.mount.entry = /var/lib/lxc/cluster-demo/system.conf etc/systemd/system.conf.d/10-environment.conf none bind,optional,create=file + +lxc.mount.auto = cgroup:mixed proc:mixed sys:mixed +lxc.mount.entry = shm /dev/shm tmpfs defaults 0 0 +lxc.mount.entry = /sys/kernel/security sys/kernel/security none ro,bind,optional 0 0 + +lxc.cgroup.devices.allow = c 226:* rwm +lxc.mount.entry = /dev/dri dev/dri none bind,optional,create=dir + +lxc.mount.entry = /run/drm-lease-manager/lease-cluster var/display/drm-lease-manager/lease none bind,create=file + +lxc.mount.entry = /run/pipewire/icipc-0 var/icipc-0 none bind,optional,create=file + diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/network.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/network.in new file mode 100644 index 00000000..573f4796 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/network.in @@ -0,0 +1,3 @@ +# lxc network setting +lxc.net.0.type = empty + diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/system.conf.cluster-demo.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/system.conf.cluster-demo.in new file mode 100644 index 00000000..29a49b6c --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/system.conf.cluster-demo.in @@ -0,0 +1,8 @@ +[Manager] +DefaultEnvironment = DLM_RUNTIME_PATH=/var/display/drm-lease-manager +DefaultEnvironment = DRM_LEASE_DEVICE=@DRM_LEASE_DEVICE@ +DefaultEnvironment = QT_QPA_PLATFORM=wayland +DefaultEnvironment = QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/plugins/ +DefaultEnvironment = QML_IMPORT_PATH=/usr/lib/qml/ +DefaultEnvironment = QML2_IMPORT_PATH=/usr/lib/qml/ +DefaultEnvironment = QT_WAYLAND_SHELL_INTEGRATION=xdg-shell diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bb b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bb new file mode 100644 index 00000000..a30505e9 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bb @@ -0,0 +1,7 @@ +DESCRIPTION = "AGL cluster demo container LXC config" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" + +inherit lxc-config + +LXC_AUTO_START ??= "1" diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/basic.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/basic.in new file mode 100644 index 00000000..603e902e --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/basic.in @@ -0,0 +1,9 @@ +# lxc basic setting +lxc.rootfs.path = dir:/var/lib/machines/dummy +lxc.signal.halt = SIGRTMIN+3 +lxc.signal.reboot = SIGTERM +lxc.uts.name = "guest-dummy" +lxc.tty.max = 1 +lxc.pty.max = 1 +lxc.cap.drop = sys_module mac_admin mac_override sys_time + diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/environment.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/environment.in new file mode 100644 index 00000000..b7cde1c8 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/environment.in @@ -0,0 +1,2 @@ +# lxc environment variable setting + diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/misc.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/misc.in new file mode 100644 index 00000000..9b4f4883 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/misc.in @@ -0,0 +1,3 @@ +# lxc misc setting +lxc.start.auto = @LXC_AUTO_START@ + diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/mount.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/mount.in new file mode 100644 index 00000000..686fdcb9 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/mount.in @@ -0,0 +1,7 @@ +# lxc mount setting +lxc.mount.entry = /var/lib/lxc/dummy/system.conf etc/systemd/system.conf.d/10-environment.conf none bind,optional,create=file + +lxc.mount.auto = cgroup:mixed proc:mixed sys:mixed +lxc.mount.entry = shm /dev/shm tmpfs defaults 0 0 +lxc.mount.entry = /sys/kernel/security sys/kernel/security none ro,bind,optional 0 0 + diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/network.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/network.in new file mode 100644 index 00000000..573f4796 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/network.in @@ -0,0 +1,3 @@ +# lxc network setting +lxc.net.0.type = empty + diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/system.conf.dummy.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/system.conf.dummy.in new file mode 100644 index 00000000..f496c589 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/system.conf.dummy.in @@ -0,0 +1,2 @@ +[Manager] +#DefaultEnvironment = diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy_1.0.bb b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy_1.0.bb new file mode 100644 index 00000000..41246391 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy_1.0.bb @@ -0,0 +1,5 @@ +DESCRIPTION = "AGL dummy container LXC config" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" + +inherit lxc-config diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/basic.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/basic.in new file mode 100644 index 00000000..1fd9f347 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/basic.in @@ -0,0 +1,9 @@ +# lxc basic setting +lxc.rootfs.path = dir:/var/lib/machines/ivi-demo +lxc.signal.halt = SIGRTMIN+3 +lxc.signal.reboot = SIGTERM +lxc.uts.name = "ivi" +lxc.tty.max = 1 +lxc.pty.max = 1 +lxc.cap.drop = sys_module mac_admin mac_override sys_time + diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/environment.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/environment.in new file mode 100644 index 00000000..632252d5 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/environment.in @@ -0,0 +1,8 @@ +# lxc environment variable setting +lxc.environment = QT_QPA_PLATFORM=wayland +lxc.environment = QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/plugins/ +lxc.environment = QML_IMPORT_PATH=/usr/lib/qml/ +lxc.environment = QML2_IMPORT_PATH=/usr/lib/qml/ +lxc.environment = QT_WAYLAND_SHELL_INTEGRATION=xdg-shell +lxc.environment = PIPEWIRE_RUNTIME_DIR=/var + diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/misc.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/misc.in new file mode 100644 index 00000000..9b4f4883 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/misc.in @@ -0,0 +1,3 @@ +# lxc misc setting +lxc.start.auto = @LXC_AUTO_START@ + diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/mount.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/mount.in new file mode 100644 index 00000000..262f09bd --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/mount.in @@ -0,0 +1,17 @@ +# lxc mount setting +lxc.mount.entry = /var/lib/lxc/ivi-demo/system.conf etc/systemd/system.conf.d/10-environment.conf none bind,optional,create=file + +lxc.mount.auto = cgroup:mixed proc:mixed sys:mixed +lxc.mount.entry = shm /dev/shm tmpfs defaults 0 0 +lxc.mount.entry = /sys/kernel/security sys/kernel/security none ro,bind,optional 0 0 +lxc.mount.entry = tmpfs run tmpfs defaults +lxc.mount.entry = /run/udev/data run/udev/data none ro,bind,optional,create=dir + +lxc.cgroup.devices.allow = c 226:* rwm +lxc.mount.entry = /dev/dri dev/dri none bind,optional,create=dir + +lxc.mount.entry = /run/drm-lease-manager/lease-ivi var/display/drm-lease-manager/lease none bind,create=file + +lxc.cgroup.devices.allow = c 13:* rwm +lxc.mount.entry = /dev/input dev/input none bind,optional,create=dir +lxc.mount.entry = /run/pipewire/pipewire-0 var/pipewire-0 none bind,optional,create=file diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/network.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/network.in new file mode 100644 index 00000000..573f4796 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/network.in @@ -0,0 +1,3 @@ +# lxc network setting +lxc.net.0.type = empty + diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/system.conf.ivi-demo.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/system.conf.ivi-demo.in new file mode 100644 index 00000000..de7c6cdd --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/system.conf.ivi-demo.in @@ -0,0 +1,9 @@ +[Manager] +DefaultEnvironment = DLM_RUNTIME_PATH=/var/display/drm-lease-manager +DefaultEnvironment = DRM_LEASE_DEVICE=@DRM_LEASE_DEVICE@ +DefaultEnvironment = QT_QPA_PLATFORM=wayland +DefaultEnvironment = QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/plugins/ +DefaultEnvironment = QML_IMPORT_PATH=/usr/lib/qml/ +DefaultEnvironment = QML2_IMPORT_PATH=/usr/lib/qml/ +DefaultEnvironment = QT_WAYLAND_SHELL_INTEGRATION=xdg-shell +DefaultEnvironment = PIPEWIRE_RUNTIME_DIR=/var diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bb b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bb new file mode 100644 index 00000000..0bc7e11c --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bb @@ -0,0 +1,7 @@ +DESCRIPTION = "AGL simple IVI demo container LXC config" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" + +inherit lxc-config + +LXC_AUTO_START ??= "0" diff --git a/meta-agl-ic-container/recipes-container/lxc/files/lxc-net.service b/meta-agl-ic-container/recipes-container/lxc/files/lxc-net.service new file mode 100644 index 00000000..1b6e8451 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc/files/lxc-net.service @@ -0,0 +1,15 @@ +[Unit] +Description=LXC network bridge setup +After=network-online.target systemd-resolved.service +Before=lxc.service +Documentation=man:lxc +ConditionVirtualization=!lxc + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=@LIBEXECDIR@/lxc/lxc-net start +ExecStop=@LIBEXECDIR@/lxc/lxc-net stop + +[Install] +WantedBy=multi-user.target diff --git a/meta-agl-ic-container/recipes-container/lxc/files/lxc.service b/meta-agl-ic-container/recipes-container/lxc/files/lxc.service new file mode 100644 index 00000000..acf8da39 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc/files/lxc.service @@ -0,0 +1,19 @@ +[Unit] +Description=LXC Container Initialization and Autoboot Code +After=network.target lxc-net.service remote-fs.target drm-lease-manager.service +Wants=lxc-net.service +Documentation=man:lxc-autostart man:lxc + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStartPre=@LIBEXECDIR@/lxc/lxc-apparmor-load +ExecStart=@LIBEXECDIR@/lxc/lxc-containers start +ExecStop=@LIBEXECDIR@/lxc/lxc-containers stop +ExecReload=@LIBEXECDIR@/lxc/lxc-apparmor-load +# Environment=BOOTUP=serial +# Environment=CONSOLETYPE=serial +Delegate=yes + +[Install] +WantedBy=multi-user.target diff --git a/meta-agl-ic-container/recipes-container/lxc/lxc_%.bbappend b/meta-agl-ic-container/recipes-container/lxc/lxc_%.bbappend new file mode 100644 index 00000000..75ab98c0 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/lxc/lxc_%.bbappend @@ -0,0 +1,25 @@ +PACKAGECONFIG:remove = "templates" + +SYSTEMD_AUTO_ENABLE:${PN} = "enable" + +FILESEXTRAPATHS:prepend := "${THISDIR}/files:" + +SRC_URI += " \ + file://lxc.service \ + file://lxc-net.service \ + " + +do_install:append () { + for service in lxc.service lxc-net.service; do + install -D -m 0644 ${WORKDIR}/$service ${D}${systemd_system_unitdir}/$service + sed -i -e 's,@LIBEXECDIR@,${libexecdir},g' ${D}${systemd_system_unitdir}/$service + done +} + +# NOTE: +# This needs to be replaced with a rework of the upstream packaging +# to do a proper split of core from the template support. +RDEPENDS:${PN} = "" + + + diff --git a/meta-agl-ic-container/recipes-core/base-files/base-files/fstab b/meta-agl-ic-container/recipes-core/base-files/base-files/fstab new file mode 100644 index 00000000..a27f8cd6 --- /dev/null +++ b/meta-agl-ic-container/recipes-core/base-files/base-files/fstab @@ -0,0 +1,3 @@ +# Reference fstab for container guest +devpts /dev/pts devpts mode=0620,gid=5 0 0 +tmpfs /var/volatile tmpfs defaults 0 0 diff --git a/meta-agl-ic-container/recipes-core/base-files/base-files_%.bbappend b/meta-agl-ic-container/recipes-core/base-files/base-files_%.bbappend new file mode 100644 index 00000000..2df9447b --- /dev/null +++ b/meta-agl-ic-container/recipes-core/base-files/base-files_%.bbappend @@ -0,0 +1,2 @@ +FILESEXTRAPATHS:prepend:aglcontainerguest := "${THISDIR}/base-files:" + diff --git a/meta-agl-ic-container/recipes-core/libclusterapi/libclusterapi_git.bb b/meta-agl-ic-container/recipes-core/libclusterapi/libclusterapi_git.bb new file mode 100644 index 00000000..af974e49 --- /dev/null +++ b/meta-agl-ic-container/recipes-core/libclusterapi/libclusterapi_git.bb @@ -0,0 +1,16 @@ +SUMMARY = "AGL Instrument Cluster API library" +DESCRIPTION = "AGL Instrument Cluster API is defined common function API for Instrument Cluster.\ + This library was contributed by four EG member company." +HOMEPAGE = "https://confluence.automotivelinux.org/display/IC" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984" + +DEPENDS = "libclusteripc" + +SRC_URI = "git://git.automotivelinux.org/src/libcluster-api;protocol=https;branch=${AGL_BRANCH}" +SRCREV = "3ef96b9efb7c80f3f7a731379dcbfa9a21e2ceed" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig diff --git a/meta-agl-ic-container/recipes-core/libclusteripc/libclusteripc_git.bb b/meta-agl-ic-container/recipes-core/libclusteripc/libclusteripc_git.bb new file mode 100644 index 00000000..c55906f8 --- /dev/null +++ b/meta-agl-ic-container/recipes-core/libclusteripc/libclusteripc_git.bb @@ -0,0 +1,14 @@ +SUMMARY = "AGL Instrument Cluster IPC library" +DESCRIPTION = "AGL Instrument Cluster IPC is IPC framework for the AGL Instrument Cluster API.\ + This library was contributed by four EG member company." +HOMEPAGE = "https://confluence.automotivelinux.org/display/IC" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984" + +SRC_URI = "git://git.automotivelinux.org/src/libcluster-ipc;protocol=https;branch=${AGL_BRANCH}" +SRCREV = "464ed5a672700436a1cb89d41afe8c088d2f3c5b" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig diff --git a/meta-agl-ic-container/recipes-core/packagegroups/packagegroup-core-tools-profile.bbappend b/meta-agl-ic-container/recipes-core/packagegroups/packagegroup-core-tools-profile.bbappend new file mode 100644 index 00000000..13f85b59 --- /dev/null +++ b/meta-agl-ic-container/recipes-core/packagegroups/packagegroup-core-tools-profile.bbappend @@ -0,0 +1,8 @@ +# Disable LTTng dependencies when building for container guest to avoid +# lttng-modules being pulled in as a dependency. +LTTNGUST:aglcontainerguest = "" +LTTNGTOOLS:aglcontainerguest = "" +LTTNGMODULES:aglcontainerguest = "" + +# Similarly, disable perf since it builds out of the kernel source tree. +PERF:aglcontainerguest = "" diff --git a/meta-agl-ic-container/recipes-core/systemd/systemd-netif-config/20-wired.network b/meta-agl-ic-container/recipes-core/systemd/systemd-netif-config/20-wired.network new file mode 100644 index 00000000..abd371bd --- /dev/null +++ b/meta-agl-ic-container/recipes-core/systemd/systemd-netif-config/20-wired.network @@ -0,0 +1,6 @@ +[Match] +Name=eth0 + +[Network] +DHCP=ipv4 + diff --git a/meta-agl-ic-container/recipes-core/systemd/systemd-netif-config_0.1.bb b/meta-agl-ic-container/recipes-core/systemd/systemd-netif-config_0.1.bb new file mode 100644 index 00000000..0714f62b --- /dev/null +++ b/meta-agl-ic-container/recipes-core/systemd/systemd-netif-config_0.1.bb @@ -0,0 +1,19 @@ +SUMMARY = "Systemd network interface configuration" +DESCRIPTION = "Systemd network interface configuration \ + " +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +SRC_URI = " \ + file://20-wired.network \ + " + +do_install() { + install -D -m0644 ${WORKDIR}/20-wired.network ${D}${sysconfdir}/systemd/network/20-wired.network +} + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +FILES:${PN} = "\ + ${sysconfdir}/systemd/network/* \ +" diff --git a/meta-agl-ic-container/recipes-demo/cluster-refgui/cluster-refgui/cluster b/meta-agl-ic-container/recipes-demo/cluster-refgui/cluster-refgui/cluster new file mode 100644 index 00000000..ff5166d0 --- /dev/null +++ b/meta-agl-ic-container/recipes-demo/cluster-refgui/cluster-refgui/cluster @@ -0,0 +1,5 @@ +XDG_RUNTIME_DIR=/run/user/0 +QT_QPA_PLATFORM=wayland-egl +QT_WAYLAND_DISABLE_WINDOWDECORATION=1 +QT_QPA_FONTDIR=/usr/share/fonts/truetype +WAYLAND_DISPLAY=wayland-1 diff --git a/meta-agl-ic-container/recipes-demo/cluster-refgui/cluster-refgui/cluster.service b/meta-agl-ic-container/recipes-demo/cluster-refgui/cluster-refgui/cluster.service new file mode 100644 index 00000000..a82c4127 --- /dev/null +++ b/meta-agl-ic-container/recipes-demo/cluster-refgui/cluster-refgui/cluster.service @@ -0,0 +1,11 @@ +[Unit] +Description=AGL Cluster Reference GUI +After=multi-user.target weston.service +Requires=multi-user.target weston.service + +[Service] +EnvironmentFile=/etc/default/cluster +ExecStart=/opt/apps/cluster + +[Install] +WantedBy=multi-user.target diff --git a/meta-agl-ic-container/recipes-demo/cluster-refgui/cluster-refgui_git.bb b/meta-agl-ic-container/recipes-demo/cluster-refgui/cluster-refgui_git.bb new file mode 100644 index 00000000..4327c8de --- /dev/null +++ b/meta-agl-ic-container/recipes-demo/cluster-refgui/cluster-refgui_git.bb @@ -0,0 +1,49 @@ +DESCRIPTION = "AGL Cluster Reference GUI" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5335066555b14d832335aa4660d6c376" + +DEPENDS = " \ + qttools-native \ + qtmultimedia \ +" + +BRANCH = "master" +SRC_URI = "git://git.automotivelinux.org/src/cluster-refgui;protocol=https;branch=${BRANCH} \ + file://cluster.service \ + file://cluster \ +" +SRCREV = "a16c6201be94a57eb8151a91699084d99694877c" + +S = "${WORKDIR}/git" + +inherit cmake cmake_qt5 systemd + +# NOTE: +# The app currently assumes the mp4 video file is in the same +# directory, so changing this to ${bindir} to better match FHS +# requires code changes. +APP_DIR = "/opt/apps" +EXTRA_OECMAKE = "-DAPPS_INST_DIR=${APP_DIR}" + +SYSTEMD_SERVICE:${PN} = "cluster.service" + +do_install:append() { + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/cluster.service ${D}${systemd_unitdir}/system/ + + install -m 0755 -d ${D}${sysconfdir}/default/ + install -m 0755 ${WORKDIR}/cluster ${D}${sysconfdir}/default/ +} + +FILES:${PN} += "${APP_DIR}/" + +RDEPENDS:${PN} = " \ + qtbase \ + qtdeclarative \ + qt3d \ + qtgraphicaleffects \ + qtmultimedia \ + qtquickcontrols \ + qtquickcontrols2 \ + qtwayland \ +" diff --git a/meta-agl-ic-container/recipes-demo/ilm-manager/ilm-manager/agl.json b/meta-agl-ic-container/recipes-demo/ilm-manager/ilm-manager/agl.json new file mode 100644 index 00000000..80028c50 --- /dev/null +++ b/meta-agl-ic-container/recipes-demo/ilm-manager/ilm-manager/agl.json @@ -0,0 +1,70 @@ +{ + "screen": [ + { + "name": "ivi-screen", + "dispname": "HDMI-A-1" + } + ], + "layer": [ + { + "name": "ivi-layer", + "id": 2000, + "width": 1920, + "height": 1080, + "x": 0, + "y": 0, + "z": 10, + "attach": "ivi-screen" + } + ], + "surface": [ + { + "name": "momiscreen", + "id": 2000, + "x": 0, + "y": 988, + "z": 10, + "attach": "ivi-layer" + }, + { + "name": "mominavi", + "id": 2010, + "x": 0, + "y": 0, + "z": 100, + "attach": "ivi-layer" + }, + { + "name": "momiplay", + "id": 2011, + "x": 0, + "y": 0, + "z": 110, + "attach": "ivi-layer" + }, + { + "name": "momiradio", + "id": 2012, + "x": 0, + "y": 0, + "z": 120, + "attach": "ivi-layer" + }, + { + "name": "momisetting", + "id": 2013, + "x": 0, + "y": 0, + "z": 130, + "attach": "ivi-layer" + }, + { + "name": "xdg-test", + "id": 9801, + "x": 0, + "y": 0, + "z": 300, + "attach": "ivi-layer" + } + ] +} diff --git a/meta-agl-ic-container/recipes-demo/ilm-manager/ilm-manager/ilm-manager.service b/meta-agl-ic-container/recipes-demo/ilm-manager/ilm-manager/ilm-manager.service new file mode 100644 index 00000000..b91b65f1 --- /dev/null +++ b/meta-agl-ic-container/recipes-demo/ilm-manager/ilm-manager/ilm-manager.service @@ -0,0 +1,12 @@ +[Unit] +Description=Tiny Window Manager +After=weston.service +Wants=weston.service + +[Service] +Type=simple +EnvironmentFile=/etc/default/weston +ExecStart=/usr/bin/ilmmanager + +[Install] +WantedBy=weston.service diff --git a/meta-agl-ic-container/recipes-demo/ilm-manager/ilm-manager_git.bb b/meta-agl-ic-container/recipes-demo/ilm-manager/ilm-manager_git.bb new file mode 100644 index 00000000..2f976b39 --- /dev/null +++ b/meta-agl-ic-container/recipes-demo/ilm-manager/ilm-manager_git.bb @@ -0,0 +1,31 @@ +SUMMARY = "Tiny window manager for wayland-ivi-extension" +DESCRIPTION = "Tiny window manager for wayland-ivi-extension" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=89aea4e17d99a7cacdbeed46a0096b10" + +DEPENDS = "jsoncpp wayland-ivi-extension" + +PV = "0.1.0+rev${SRCPV}" + +SRCREV = "e3a33d47195e4656f7117753d27a0f2d6b21aab9" +SRC_URI = " \ + git://github.com/AGLExport/ilm-manager.git;branch=master;protocol=https \ + file://agl.json \ + file://ilm-manager.service \ + " +S = "${WORKDIR}/git" + +inherit autotools pkgconfig systemd + +do_install:append() { + #install scripts + install -d ${D}${sysconfdir} + install -m 0644 ${WORKDIR}/agl.json ${D}${sysconfdir} + + install -d ${D}/${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/ilm-manager.service ${D}${systemd_system_unitdir} +} + +FILES:${PN} += " ${systemd_system_unitdir} ${sysconfdir} " +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE:${PN} = "ilm-manager.service" diff --git a/meta-agl-ic-container/recipes-demo/mominavi/mominavi/mominavi b/meta-agl-ic-container/recipes-demo/mominavi/mominavi/mominavi new file mode 100644 index 00000000..bd017dc9 --- /dev/null +++ b/meta-agl-ic-container/recipes-demo/mominavi/mominavi/mominavi @@ -0,0 +1,7 @@ +XDG_RUNTIME_DIR=/run/user/0 +QT_QPA_PLATFORM=wayland-egl +QT_WAYLAND_DISABLE_WINDOWDECORATION=1 +QT_QPA_FONTDIR=/usr/share/fonts/truetype +QT_IVI_SURFACE_ID=2010 +QT_WAYLAND_SHELL_INTEGRATION=ivi-shell +WAYLAND_DISPLAY=wayland-1 diff --git a/meta-agl-ic-container/recipes-demo/mominavi/mominavi/mominavi.service b/meta-agl-ic-container/recipes-demo/mominavi/mominavi/mominavi.service new file mode 100644 index 00000000..b49609e0 --- /dev/null +++ b/meta-agl-ic-container/recipes-demo/mominavi/mominavi/mominavi.service @@ -0,0 +1,12 @@ +[Unit] +Description=mominavi +After=multi-user.target weston.service network-online.target +Requires=multi-user.target weston.service network-online.target + +[Service] +Type=simple +EnvironmentFile=/etc/default/mominavi +ExecStart=/usr/bin/mominavi + +[Install] +WantedBy=multi-user.target diff --git a/meta-agl-ic-container/recipes-demo/mominavi/mominavi_git.bb b/meta-agl-ic-container/recipes-demo/mominavi/mominavi_git.bb new file mode 100644 index 00000000..124252b5 --- /dev/null +++ b/meta-agl-ic-container/recipes-demo/mominavi/mominavi_git.bb @@ -0,0 +1,57 @@ +SUMMARY = "Momiyama navigation example based on mapbox." +DESCRIPTION = "The mominavi is a navigation example based on mapbox. It's based on aglqtnavigation. \ + The mominavi is not require agl-appfw." +LICENSE = "GPL-3.0-only" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS = " \ + qtbase \ + qtquickcontrols2 \ + qtlocation \ + qtgraphicaleffects \ + qtsvg \ + qtwebsockets \ + " + +PV = "0.2.0" + +SRC_URI = "git://github.com/AGLExport/mominavi.git;protocol=https;branch=master \ + file://mominavi.service \ + file://mominavi \ + " +SRCREV = "553776e75da02b27224748756da55d38b6c7241f" + +S = "${WORKDIR}/git" + +inherit qmake5 systemd + +MOMIMAP_MAPBOX_ACCESS_TOKEN ??= "YOU_NEED_TO_SET_IT_IN_LOCAL_CONF" +QT_INSTALL_PREFIX = "/usr" + +do_configure:prepend() { + if [ "${MOMIMAP_MAPBOX_ACCESS_TOKEN}" = "YOU_NEED_TO_SET_IT_IN_LOCAL_CONF" ]; then + bbwarn "WARNING: You should set MapBox development key to MOMIMAP_MAPBOX_ACCESS_TOKEN variable in local.conf." + fi +} +do_install:append() { + install -d ${D}/${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/mominavi.service ${D}/${systemd_unitdir}/system + + install -m 0755 -d ${D}${sysconfdir}/default/ + install -m 0755 ${WORKDIR}/mominavi ${D}${sysconfdir}/default/ + + echo 'MOMIMAP_MAPBOX_ACCESS_TOKEN=${MOMIMAP_MAPBOX_ACCESS_TOKEN}' >> ${D}${sysconfdir}/default/mominavi +} + +FILES:${PN} += " \ + ${systemd_unitdir} \ + ${sysconfdir}/*/* \ + " +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE:${PN} = "mominavi.service" + +RDEPENDS:${PN} = " \ + qtsvg \ + qtwebsockets \ + qtlocation \ + " diff --git a/meta-agl-ic-container/recipes-demo/momiplay/momiplay/momiplay b/meta-agl-ic-container/recipes-demo/momiplay/momiplay/momiplay new file mode 100644 index 00000000..be5a97a1 --- /dev/null +++ b/meta-agl-ic-container/recipes-demo/momiplay/momiplay/momiplay @@ -0,0 +1,8 @@ +XDG_RUNTIME_DIR=/run/user/0 +QT_QPA_PLATFORM=wayland-egl +QT_WAYLAND_DISABLE_WINDOWDECORATION=1 +QT_QPA_FONTDIR=/usr/share/fonts/truetype +QT_IVI_SURFACE_ID=2011 +QT_WAYLAND_SHELL_INTEGRATION=ivi-shell +WAYLAND_DISPLAY=wayland-1 +HOME=/home/root diff --git a/meta-agl-ic-container/recipes-demo/momiplay/momiplay/momiplay.service b/meta-agl-ic-container/recipes-demo/momiplay/momiplay/momiplay.service new file mode 100644 index 00000000..ef974023 --- /dev/null +++ b/meta-agl-ic-container/recipes-demo/momiplay/momiplay/momiplay.service @@ -0,0 +1,12 @@ +[Unit] +Description=momiplayer +After=multi-user.target weston.service +Requires=multi-user.target weston.service + +[Service] +Type=simple +EnvironmentFile=/etc/default/momiplay +ExecStart=/usr/bin/momiplay + +[Install] +WantedBy=multi-user.target diff --git a/meta-agl-ic-container/recipes-demo/momiplay/momiplay_git.bb b/meta-agl-ic-container/recipes-demo/momiplay/momiplay_git.bb new file mode 100644 index 00000000..02fc6f66 --- /dev/null +++ b/meta-agl-ic-container/recipes-demo/momiplay/momiplay_git.bb @@ -0,0 +1,48 @@ +SUMMARY = "Momiyama mediaplayer example based on AGL sample app. at CC" +DESCRIPTION = "The momiplay is a mediaplayer example based on AGL sample app. \ + The momiplay is not require agl-appfw." +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://main.cpp;beginline=1;endline=17;md5=f4ad6901289f57f62d15bfefb5cc3633" + +DEPENDS = " \ + qtbase \ + qtquickcontrols2 \ + qtgraphicaleffects \ + qtsvg \ + qtmultimedia \ + " + +PV = "0.2.0" + +SRC_URI = "git://github.com/AGLExport/momiplayer.git;protocol=https;branch=master \ + file://momiplay.service \ + file://momiplay \ + " +SRCREV = "b4715bf924ea295feaaf8fbdb4a9c3da75f57591" + +S = "${WORKDIR}/git" + +inherit qmake5 systemd + +QT_INSTALL_PREFIX = "/usr" + +do_install:append() { + install -d ${D}/${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/momiplay.service ${D}/${systemd_unitdir}/system + + install -m 0755 -d ${D}${sysconfdir}/default/ + install -m 0755 ${WORKDIR}/momiplay ${D}${sysconfdir}/default/ +} + +FILES:${PN} += " \ + ${systemd_unitdir} \ + ${sysconfdir}/*/* \ + " +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE:${PN} = "momiplay.service" +SYSTEMD_AUTO_ENABLE:${PN} = "disable" + +RDEPENDS:${PN} = " \ + qtsvg \ + qtmultimedia \ + " diff --git a/meta-agl-ic-container/recipes-demo/momiscreen/momiscreen/momiscreen b/meta-agl-ic-container/recipes-demo/momiscreen/momiscreen/momiscreen new file mode 100644 index 00000000..2c0e461c --- /dev/null +++ b/meta-agl-ic-container/recipes-demo/momiscreen/momiscreen/momiscreen @@ -0,0 +1,8 @@ +XDG_RUNTIME_DIR=/run/user/0 +QT_QPA_PLATFORM=wayland-egl +QT_WAYLAND_DISABLE_WINDOWDECORATION=1 +QT_QPA_FONTDIR=/usr/share/fonts/truetype +QT_IVI_SURFACE_ID=2000 +QT_WAYLAND_SHELL_INTEGRATION=ivi-shell +WAYLAND_DISPLAY=wayland-1 +HOME=/home/root diff --git a/meta-agl-ic-container/recipes-demo/momiscreen/momiscreen/momiscreen.service b/meta-agl-ic-container/recipes-demo/momiscreen/momiscreen/momiscreen.service new file mode 100644 index 00000000..a3f54e0c --- /dev/null +++ b/meta-agl-ic-container/recipes-demo/momiscreen/momiscreen/momiscreen.service @@ -0,0 +1,12 @@ +[Unit] +Description=momiscreen +After=multi-user.target weston.service +Requires=multi-user.target weston.service + +[Service] +Type=simple +EnvironmentFile=/etc/default/momiscreen +ExecStart=/usr/bin/momiscreen + +[Install] +WantedBy=multi-user.target diff --git a/meta-agl-ic-container/recipes-demo/momiscreen/momiscreen_git.bb b/meta-agl-ic-container/recipes-demo/momiscreen/momiscreen_git.bb new file mode 100644 index 00000000..f37a5365 --- /dev/null +++ b/meta-agl-ic-container/recipes-demo/momiscreen/momiscreen_git.bb @@ -0,0 +1,43 @@ +SUMMARY = "Momiyama home screen example" +DESCRIPTION = "The momiscreen is a home screen example. \ + The momiscreen is not require agl-appfw." +LICENSE = "GPL-3.0-only" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS = " \ + qtbase \ + qtquickcontrols2 \ + qtgraphicaleffects \ + qtsvg \ + " + +PV = "0.2.0" + +SRC_URI = "git://github.com/AGLExport/momiscreen.git;protocol=https;branch=main \ + file://momiscreen.service \ + file://momiscreen \ + " +SRCREV = "bc3ef09ffad15b97941f28b165dc2019f5950105" + +S = "${WORKDIR}/git" + +inherit qmake5 systemd + +QT_INSTALL_PREFIX = "/usr" + +do_install:append() { + install -d ${D}/${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/momiscreen.service ${D}/${systemd_unitdir}/system + + install -m 0755 -d ${D}${sysconfdir}/default/ + install -m 0755 ${WORKDIR}/momiscreen ${D}${sysconfdir}/default/ +} + +FILES:${PN} += " \ + ${systemd_unitdir} \ + ${sysconfdir}/*/* \ + " +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE:${PN} = "momiscreen.service" + +RDEPENDS:${PN} = "qtsvg " diff --git a/meta-agl-ic-container/recipes-extended/librefop/librefop_git.bb b/meta-agl-ic-container/recipes-extended/librefop/librefop_git.bb new file mode 100644 index 00000000..36876fc3 --- /dev/null +++ b/meta-agl-ic-container/recipes-extended/librefop/librefop_git.bb @@ -0,0 +1,16 @@ +SUMMARY = "Redundancy file operation library (librefop)" +DESCRIPTION = "Redundancy file operation library is a another implementation for \ + the backup manager. It aim to tiny implementation." +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984" + +PV = "1.0.0+rev${SRCPV}" + +SRCREV = "2dd3bafb0c21d7f49fcc2945836924d9c052d268" +SRC_URI = " \ + git://git.automotivelinux.org/src/librefop;branch=master;protocol=https \ + " +S = "${WORKDIR}/git" + +inherit autotools-brokensep pkgconfig + diff --git a/meta-agl-ic-container/recipes-graphics/wayland/wayland-ivi-extension/0001-ivi-input-controller-update-to-weston-7-header-files.patch b/meta-agl-ic-container/recipes-graphics/wayland/wayland-ivi-extension/0001-ivi-input-controller-update-to-weston-7-header-files.patch new file mode 100644 index 00000000..b19243e0 --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/wayland-ivi-extension/0001-ivi-input-controller-update-to-weston-7-header-files.patch @@ -0,0 +1,31 @@ +From 6432f46f500321518e9a588215d4635ef7466692 Mon Sep 17 00:00:00 2001 +From: Rajendraprasad K J <KarammelJayakumar.Rajendraprasad@in.bosch.com> +Date: Mon, 6 Jan 2020 06:41:57 -0500 +Subject: [PATCH 1/6] ivi-input-controller: update to weston 7 header files + +update the header file path. + +Upstream-Status: Submitted [https://github.com/GENIVI/wayland-ivi-extension/pull/110] + +Signed-off-by: Rajendraprasad K J <KarammelJayakumar.Rajendraprasad@in.bosch.com> +Signed-off-by: Gowtham Tammana <g-tammana@ti.com> +--- + .../ivi-input-controller/src/ivi-input-controller.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ivi-input-modules/ivi-input-controller/src/ivi-input-controller.c b/ivi-input-modules/ivi-input-controller/src/ivi-input-controller.c +index b4d54d1..8974115 100644 +--- a/ivi-input-modules/ivi-input-controller/src/ivi-input-controller.c ++++ b/ivi-input-modules/ivi-input-controller/src/ivi-input-controller.c +@@ -31,7 +31,7 @@ + #include <fcntl.h> + #include <unistd.h> + +-#include "plugin-registry.h" ++#include <libweston/plugin-registry.h> + #include "ilm_types.h" + + #include "ivi-input-server-protocol.h" +-- +2.17.1 + diff --git a/meta-agl-ic-container/recipes-graphics/wayland/wayland-ivi-extension/0002-ivi-id-agent-update-to-weston-7-header-files.patch b/meta-agl-ic-container/recipes-graphics/wayland/wayland-ivi-extension/0002-ivi-id-agent-update-to-weston-7-header-files.patch new file mode 100644 index 00000000..87e286ab --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/wayland-ivi-extension/0002-ivi-id-agent-update-to-weston-7-header-files.patch @@ -0,0 +1,33 @@ +From 7b7a5e96388f2431e750583a035962d261292b43 Mon Sep 17 00:00:00 2001 +From: Rajendraprasad K J <KarammelJayakumar.Rajendraprasad@in.bosch.com> +Date: Mon, 6 Jan 2020 06:45:11 -0500 +Subject: [PATCH 2/6] ivi-id-agent: update to weston 7 header files + +update the header file path. + +Upstream-Status: Submitted [https://github.com/GENIVI/wayland-ivi-extension/pull/110] + +Signed-off-by: Rajendraprasad K J <KarammelJayakumar.Rajendraprasad@in.bosch.com> +Signed-off-by: Gowtham Tammana <g-tammana@ti.com> +--- + ivi-id-agent-modules/ivi-id-agent/src/ivi-id-agent.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/ivi-id-agent-modules/ivi-id-agent/src/ivi-id-agent.c b/ivi-id-agent-modules/ivi-id-agent/src/ivi-id-agent.c +index 8f0c199..b80e2a4 100644 +--- a/ivi-id-agent-modules/ivi-id-agent/src/ivi-id-agent.c ++++ b/ivi-id-agent-modules/ivi-id-agent/src/ivi-id-agent.c +@@ -26,8 +26,8 @@ + #include <limits.h> + + #include <weston.h> +-#include <libweston-6/libweston-desktop.h> +-#include "config-parser.h" ++#include <libweston-desktop/libweston-desktop.h> ++#include <libweston/config-parser.h> + #include <weston/ivi-layout-export.h> + + #ifndef INVALID_ID +-- +2.17.1 + diff --git a/meta-agl-ic-container/recipes-graphics/wayland/wayland-ivi-extension/0003-ivi-id-agent-update-dependencies-to-build-on-weston-.patch b/meta-agl-ic-container/recipes-graphics/wayland/wayland-ivi-extension/0003-ivi-id-agent-update-dependencies-to-build-on-weston-.patch new file mode 100644 index 00000000..dcb21a1a --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/wayland-ivi-extension/0003-ivi-id-agent-update-dependencies-to-build-on-weston-.patch @@ -0,0 +1,31 @@ +From 46ef7140611d684d1dbecd866608333e67a1985e Mon Sep 17 00:00:00 2001 +From: Rajendraprasad K J <KarammelJayakumar.Rajendraprasad@in.bosch.com> +Date: Mon, 6 Jan 2020 06:45:54 -0500 +Subject: [PATCH 3/6] ivi-id-agent: update dependencies to build on weston 8 + +upgrade libweston-desktop version. + +Upstream-Status: Submitted [https://github.com/GENIVI/wayland-ivi-extension/pull/110] + +Signed-off-by: Rajendraprasad K J <KarammelJayakumar.Rajendraprasad@in.bosch.com> +Signed-off-by: Gowtham Tammana <g-tammana@ti.com> +--- + ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt b/ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt +index 3e604a5..4f285c2 100644 +--- a/ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt ++++ b/ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt +@@ -25,7 +25,7 @@ find_package(PkgConfig REQUIRED) + pkg_check_modules(WAYLAND_SERVER wayland-server REQUIRED) + pkg_check_modules(WESTON weston>=6.0.0 REQUIRED) + pkg_check_modules(PIXMAN pixman-1 REQUIRED) +-pkg_check_modules(LIBWESTON_DESKTOP libweston-desktop-6 REQUIRED) ++pkg_check_modules(LIBWESTON_DESKTOP libweston-desktop-8 REQUIRED) + + find_package(Threads REQUIRED) + +-- +2.17.1 + diff --git a/meta-agl-ic-container/recipes-graphics/wayland/wayland-ivi-extension/0004-ivi-id-agent-update-dependencies-to-build-on-weston-.patch b/meta-agl-ic-container/recipes-graphics/wayland/wayland-ivi-extension/0004-ivi-id-agent-update-dependencies-to-build-on-weston-.patch new file mode 100644 index 00000000..509becb6 --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/wayland-ivi-extension/0004-ivi-id-agent-update-dependencies-to-build-on-weston-.patch @@ -0,0 +1,28 @@ +From 7b301a1832c81d814a8475c8679eddd3d43f3487 Mon Sep 17 00:00:00 2001 +From: Naoto Yamaguchi <naoto.yamaguchi@aisin.co.jp> +Date: Thu, 28 Apr 2022 07:18:50 +0900 +Subject: [PATCH 4/6] ivi-id-agent: update dependencies to build on weston 10 + +upgrade libweston-desktop version. + +Signed-off-by: Naoto Yamaguchi <naoto.yamaguchi@aisin.co.jp> +--- + ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt b/ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt +index 4f285c2..a67ac5a 100644 +--- a/ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt ++++ b/ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt +@@ -25,7 +25,7 @@ find_package(PkgConfig REQUIRED) + pkg_check_modules(WAYLAND_SERVER wayland-server REQUIRED) + pkg_check_modules(WESTON weston>=6.0.0 REQUIRED) + pkg_check_modules(PIXMAN pixman-1 REQUIRED) +-pkg_check_modules(LIBWESTON_DESKTOP libweston-desktop-8 REQUIRED) ++pkg_check_modules(LIBWESTON_DESKTOP libweston-desktop-10 REQUIRED) + + find_package(Threads REQUIRED) + +-- +2.17.1 + diff --git a/meta-agl-ic-container/recipes-graphics/wayland/wayland-ivi-extension/0005-Fix-buld-error-in-krikston.patch b/meta-agl-ic-container/recipes-graphics/wayland/wayland-ivi-extension/0005-Fix-buld-error-in-krikston.patch new file mode 100644 index 00000000..ab9c13f2 --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/wayland-ivi-extension/0005-Fix-buld-error-in-krikston.patch @@ -0,0 +1,68 @@ +From c54194acfc807fa3e1f5ce14e83826ebc6966ca7 Mon Sep 17 00:00:00 2001 +From: Naoto Yamaguchi <naoto.yamaguchi@aisin.co.jp> +Date: Thu, 28 Apr 2022 07:26:09 +0900 +Subject: [PATCH 5/6] Fix buld error in krikston + +Signed-off-by: Naoto Yamaguchi <naoto.yamaguchi@aisin.co.jp> +--- + ivi-layermanagement-api/ilmClient/include/ilm_client_platform.h | 2 +- + .../ilmClient/src/ilm_client_wayland_platform.c | 2 ++ + ivi-layermanagement-api/ilmCommon/include/ilm_common_platform.h | 2 +- + .../ilmCommon/src/ilm_common_wayland_platform.c | 2 ++ + 4 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/ivi-layermanagement-api/ilmClient/include/ilm_client_platform.h b/ivi-layermanagement-api/ilmClient/include/ilm_client_platform.h +index 1fb10af..56368dc 100644 +--- a/ivi-layermanagement-api/ilmClient/include/ilm_client_platform.h ++++ b/ivi-layermanagement-api/ilmClient/include/ilm_client_platform.h +@@ -35,7 +35,7 @@ typedef struct _ILM_CLIENT_PLATFORM_FUNC + ilmErrorTypes (*destroy)(); + } ILM_CLIENT_PLATFORM_FUNC; + +-ILM_CLIENT_PLATFORM_FUNC gIlmClientPlatformFunc; ++extern ILM_CLIENT_PLATFORM_FUNC gIlmClientPlatformFunc; + + void init_ilmClientPlatformTable(); + +diff --git a/ivi-layermanagement-api/ilmClient/src/ilm_client_wayland_platform.c b/ivi-layermanagement-api/ilmClient/src/ilm_client_wayland_platform.c +index 55b1621..8786251 100644 +--- a/ivi-layermanagement-api/ilmClient/src/ilm_client_wayland_platform.c ++++ b/ivi-layermanagement-api/ilmClient/src/ilm_client_wayland_platform.c +@@ -35,6 +35,8 @@ static ilmErrorTypes wayland_surfaceRemove(const t_ilm_surface surfaceId); + static ilmErrorTypes wayland_init(t_ilm_nativedisplay nativedisplay); + static ilmErrorTypes wayland_destroy(void); + ++ILM_CLIENT_PLATFORM_FUNC gIlmClientPlatformFunc; ++ + void init_ilmClientPlatformTable(void) + { + gIlmClientPlatformFunc.surfaceCreate = +diff --git a/ivi-layermanagement-api/ilmCommon/include/ilm_common_platform.h b/ivi-layermanagement-api/ilmCommon/include/ilm_common_platform.h +index 4e7b55e..ec49467 100644 +--- a/ivi-layermanagement-api/ilmCommon/include/ilm_common_platform.h ++++ b/ivi-layermanagement-api/ilmCommon/include/ilm_common_platform.h +@@ -32,7 +32,7 @@ typedef struct _ILM_COMMON_PLATFORM_FUNC + ilmErrorTypes (*destroy)(); + } ILM_COMMON_PLATFORM_FUNC; + +-ILM_COMMON_PLATFORM_FUNC gIlmCommonPlatformFunc; ++extern ILM_COMMON_PLATFORM_FUNC gIlmCommonPlatformFunc; + + void init_ilmCommonPlatformTable(); + +diff --git a/ivi-layermanagement-api/ilmCommon/src/ilm_common_wayland_platform.c b/ivi-layermanagement-api/ilmCommon/src/ilm_common_wayland_platform.c +index 7470d0d..eef842d 100644 +--- a/ivi-layermanagement-api/ilmCommon/src/ilm_common_wayland_platform.c ++++ b/ivi-layermanagement-api/ilmCommon/src/ilm_common_wayland_platform.c +@@ -32,6 +32,8 @@ static t_ilm_nativedisplay wayland_getNativedisplay(void); + static t_ilm_bool wayland_isInitialized(void); + static ilmErrorTypes wayland_destroy(void); + ++ILM_COMMON_PLATFORM_FUNC gIlmCommonPlatformFunc; ++ + void init_ilmCommonPlatformTable(void) + { + gIlmCommonPlatformFunc.init = wayland_init; +-- +2.17.1 + diff --git a/meta-agl-ic-container/recipes-graphics/wayland/wayland-ivi-extension/0006-Drop-weston-6-support-and-adjust-weston-7-8-10.patch b/meta-agl-ic-container/recipes-graphics/wayland/wayland-ivi-extension/0006-Drop-weston-6-support-and-adjust-weston-7-8-10.patch new file mode 100644 index 00000000..035e597b --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/wayland-ivi-extension/0006-Drop-weston-6-support-and-adjust-weston-7-8-10.patch @@ -0,0 +1,31 @@ +From d25c266858ffbea51b435190ea8697d4a4511355 Mon Sep 17 00:00:00 2001 +From: Naoto Yamaguchi <naoto.yamaguchi@aisin.co.jp> +Date: Thu, 28 Apr 2022 08:00:07 +0900 +Subject: [PATCH 6/6] Drop weston 6 support and adjust weston 7,8,10 + +Signed-off-by: Naoto Yamaguchi <naoto.yamaguchi@aisin.co.jp> +--- + ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt b/ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt +index a67ac5a..a4b4e1a 100644 +--- a/ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt ++++ b/ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt +@@ -23,9 +23,11 @@ project(ivi-id-agent) + + find_package(PkgConfig REQUIRED) + pkg_check_modules(WAYLAND_SERVER wayland-server REQUIRED) +-pkg_check_modules(WESTON weston>=6.0.0 REQUIRED) ++pkg_check_modules(WESTON weston>=7.0.0 REQUIRED) + pkg_check_modules(PIXMAN pixman-1 REQUIRED) +-pkg_check_modules(LIBWESTON_DESKTOP libweston-desktop-10 REQUIRED) ++pkg_check_modules(LIBWESTON_DESKTOP libweston-desktop-10) ++pkg_check_modules(LIBWESTON_DESKTOP libweston-desktop-8) ++pkg_check_modules(LIBWESTON_DESKTOP libweston-desktop-7) + + find_package(Threads REQUIRED) + +-- +2.17.1 + diff --git a/meta-agl-ic-container/recipes-graphics/wayland/wayland-ivi-extension_git.bb b/meta-agl-ic-container/recipes-graphics/wayland/wayland-ivi-extension_git.bb new file mode 100644 index 00000000..b99331aa --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/wayland-ivi-extension_git.bb @@ -0,0 +1,33 @@ +SUMMARY = "Wayland IVI Extension" +DESCRIPTION = "GENIVI Layer Management API based on Wayland IVI Extension" +HOMEPAGE = "https://github.com/COVESA/wayland-ivi-extension" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1f1a56bb2dadf5f2be8eb342acf4ed79" + +DEPENDS = "weston virtual/libgles2 pixman wayland-native" + +SRC_URI = " \ + git://github.com/COVESA/${BPN}.git;protocol=https;branch=master \ + file://0001-ivi-input-controller-update-to-weston-7-header-files.patch \ + file://0002-ivi-id-agent-update-to-weston-7-header-files.patch \ + file://0003-ivi-id-agent-update-dependencies-to-build-on-weston-.patch \ + file://0004-ivi-id-agent-update-dependencies-to-build-on-weston-.patch \ + file://0005-Fix-buld-error-in-krikston.patch \ + file://0006-Drop-weston-6-support-and-adjust-weston-7-8-10.patch \ + " +SRCREV = "f6911a11dc911a5bcb380d0895db6cfd533a3569" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig + +EXTRA_OECMAKE := "-DWITH_ILM_INPUT=1" +EXTRA_OECMAKE += "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}" + +FILES:${PN} += "${datadir}/wayland-protocols/stable/ivi-application/ivi-application.xml" +FILES:${PN} += "${libdir}/weston/*" +FILES:${PN}-dbg += "${libdir}/weston/.debug/*" + +# Need these temporarily to prevent a non-fatal do_package_qa issue +INSANE_SKIP:${PN} += "dev-deps" +INSANE_SKIP:${PN}-dev += "dev-elf dev-so" diff --git a/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-guest/weston.cluster-guest.ini b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-guest/weston.cluster-guest.ini new file mode 100644 index 00000000..c709d60d --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-guest/weston.cluster-guest.ini @@ -0,0 +1,9 @@ +[core] +backend=drm-backend.so +require-input=false +modules=systemd-notify.so +repaint-window=34 + +[shell] +panel-position=none +background-color=0xff000000 diff --git a/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-guest/weston.default.ini b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-guest/weston.default.ini new file mode 100644 index 00000000..c709d60d --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-guest/weston.default.ini @@ -0,0 +1,9 @@ +[core] +backend=drm-backend.so +require-input=false +modules=systemd-notify.so +repaint-window=34 + +[shell] +panel-position=none +background-color=0xff000000 diff --git a/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-guest/weston.ivi-guest.ini b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-guest/weston.ivi-guest.ini new file mode 100644 index 00000000..a664f5e0 --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-guest/weston.ivi-guest.ini @@ -0,0 +1,14 @@ +[core] +shell=ivi-shell.so +backend=drm-backend.so +require-input=false +modules=systemd-notify.so,ivi-controller.so + +[ivi-shell] +ivi-input-module=ivi-input-controller.so +ivi-id-agent-module=ivi-id-agent.so + +[desktop-app-default] +default-surface-id=9801 +default-surface-id-max=9821 + diff --git a/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-guest_0.1.bb b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-guest_0.1.bb new file mode 100644 index 00000000..740fa8ff --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-guest_0.1.bb @@ -0,0 +1,34 @@ +SUMMARY = "Configuration file for the Weston and AGL Wayland compositors for guest container" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +SRC_URI = " \ + file://weston.default.ini \ + file://weston.cluster-guest.ini \ + file://weston.ivi-guest.ini \ +" + +S = "${WORKDIR}" + +inherit allarch + +# Default weston.ini +WESTON_INI_FILE ??= "weston.default.ini" + +# Set container specific weston.ini +WESTON_INI_FILE:aglcontainercluster ?= "weston.cluster-guest.ini" +WESTON_INI_FILE:aglcontainerivi ?= "weston.ivi-guest.ini" + +do_install() { + install -D -p -m0644 ${WORKDIR}/${WESTON_INI_FILE} ${D}${sysconfdir}/xdg/weston/weston.ini +} + +FILES:${PN} += " \ + ${sysconfdir}/xdg/weston/weston.ini \ + " +CONFFILES:${PN} += " \ + ${sysconfdir}/xdg/weston/weston.ini \ + " +RDEPENDS:${PN} = "weston-init-guest" +RPROVIDES:${PN} = "weston-ini" +RCONFLICTS:${PN} = "weston-ini-conf" diff --git a/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf.bbappend b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf.bbappend new file mode 100644 index 00000000..46dfc124 --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf.bbappend @@ -0,0 +1,2 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" + diff --git a/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf/shell.cfg b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf/shell.cfg new file mode 100644 index 00000000..6fe34ea7 --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf/shell.cfg @@ -0,0 +1,3 @@ +[shell] +panel-position=none +background-color=0xff000000 diff --git a/meta-agl-ic-container/recipes-graphics/wayland/weston-init-guest/weston.env b/meta-agl-ic-container/recipes-graphics/wayland/weston-init-guest/weston.env new file mode 100644 index 00000000..ed5f2621 --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/weston-init-guest/weston.env @@ -0,0 +1,4 @@ +XDG_RUNTIME_DIR=/run/user/0 +DLM_RUNTIME_PATH=/var/display/drm-lease-manager +DRM_LEASE_DEVICE=lease +WAYLAND_DISPLAY=wayland-1 diff --git a/meta-agl-ic-container/recipes-graphics/wayland/weston-init-guest/weston.service b/meta-agl-ic-container/recipes-graphics/wayland/weston-init-guest/weston.service new file mode 100644 index 00000000..5f23ea79 --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/weston-init-guest/weston.service @@ -0,0 +1,19 @@ +[Unit] +Description=Weston Wayland Compositor +RequiresMountsFor=/run +After=multi-user.target +Wants=multi-user.target + +[Service] +User=root +PAMName=login +EnvironmentFile=-/etc/default/weston +StandardError=journal +PermissionsStartOnly=true +IgnoreSIGPIPE=no +Type=notify + +ExecStart=/usr/bin/weston --config /etc/xdg/weston/weston.ini --idle-time=0 --drm-lease=${DRM_LEASE_DEVICE} --log=/var/log/weston.log + +[Install] +WantedBy=multi-user.target diff --git a/meta-agl-ic-container/recipes-graphics/wayland/weston-init-guest_0.1.bb b/meta-agl-ic-container/recipes-graphics/wayland/weston-init-guest_0.1.bb new file mode 100644 index 00000000..c95f92e0 --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/weston-init-guest_0.1.bb @@ -0,0 +1,46 @@ +SUMMARY = "Startup script and systemd unit file for the Weston Wayland compositor in guest cotainer" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +SRC_URI = "file://weston.env \ + file://weston.service \ + " + +S = "${WORKDIR}" + +inherit features_check systemd + +do_install() { + install -Dm644 ${WORKDIR}/weston.env ${D}${sysconfdir}/default/weston + + # Install Weston systemd service and accompanying udev rule + install -D -p -m0644 ${WORKDIR}/weston.service ${D}${systemd_system_unitdir}/weston.service + sed -i -e s:/etc:${sysconfdir}:g \ + -e s:/usr/bin:${bindir}:g \ + -e s:/var:${localstatedir}:g \ + ${D}${systemd_unitdir}/system/weston.service +} + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +# rdepends on weston-init-guest which depends on wayland +REQUIRED_DISTRO_FEATURES = "wayland" + +FILES:${PN} += " \ + ${sysconfdir}/xdg/weston/weston.ini \ + ${systemd_system_unitdir}/weston.service \ + ${sysconfdir}/default/weston \ + " +CONFFILES:${PN} += " \ + ${sysconfdir}/xdg/weston/weston.ini \ + ${sysconfdir}/default/weston \ + " +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE:${PN} = "weston.service" +SYSTEMD_AUTO_ENABLE = "enable" + +RDEPENDS:${PN} = " \ + weston \ + weston-ini \ + " +RCONFLICTS:${PN} = "weston-init" diff --git a/meta-agl-ic-container/recipes-graphics/wayland/weston-init.bbappend b/meta-agl-ic-container/recipes-graphics/wayland/weston-init.bbappend new file mode 100644 index 00000000..4374c455 --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/weston-init.bbappend @@ -0,0 +1,40 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" + +AGL_DEFAULT_WESTONSTART ??= "/usr/bin/weston --config ${sysconfdir}/xdg/weston/weston.ini" +WESTONARGS ?= "--idle-time=0 --drm-lease=\${DRM_LEASE_DEVICE}" + +WESTONSTART ??= "${AGL_DEFAULT_WESTONSTART} ${WESTONARGS}" +WESTONSTART:append = " ${@bb.utils.contains("DISTRO_FEATURES", "agl-devel", " --debug", "",d)}" + +WIFILES = " \ + file://drm-lease.conf.in \ +" + +SRC_URI:append = " ${WIFILES}" + +do_install:append() { + # Process ".in" files + files=$(echo ${WIFILES} | sed s,file://,,g) + for f in ${files}; do + g=${f%.in} + if [ "${f}" != "${g}" ]; then + sed -e "s,@WESTONUSER@,${WESTONUSER},g" \ + -e "s,@WESTONGROUP@,${WESTONGROUP},g" \ + -e "s,@XDG_RUNTIME_DIR@,${DISPLAY_XDG_RUNTIME_DIR},g" \ + -e "s,@WESTONSTART@,${WESTONSTART},g" \ + -e "s,@WESTON_DRM_DEVICE@,${WESTON_DRM_DEVICE},g" \ + ${WORKDIR}/${f} > ${WORKDIR}/${g} + fi + done + + # Install weston drop-in + install -d ${D}${systemd_system_unitdir}/weston@.service.d + install -m644 ${WORKDIR}/drm-lease.conf ${D}/${systemd_system_unitdir}/weston@.service.d/ + + install -d ${D}${systemd_system_unitdir}/multi-user.target.wants + ln -s ../weston@.service ${D}${systemd_system_unitdir}/multi-user.target.wants/weston@root.service +} + +FILES:${PN} += " \ + ${systemd_system_unitdir}/ \ +" diff --git a/meta-agl-ic-container/recipes-graphics/wayland/weston-init/drm-lease.conf.in b/meta-agl-ic-container/recipes-graphics/wayland/weston-init/drm-lease.conf.in new file mode 100644 index 00000000..025cd58e --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/weston-init/drm-lease.conf.in @@ -0,0 +1,4 @@ +[Service] +Type=notify +ExecStart= +ExecStart=@WESTONSTART@ diff --git a/meta-agl-ic-container/recipes-kernel/linux/linux-%.bbappend b/meta-agl-ic-container/recipes-kernel/linux/linux-%.bbappend new file mode 100644 index 00000000..d50b5d66 --- /dev/null +++ b/meta-agl-ic-container/recipes-kernel/linux/linux-%.bbappend @@ -0,0 +1 @@ +include ${@'linux_lxc.inc' if bb.data.inherits_class('kernel', d) else ''} diff --git a/meta-agl-ic-container/recipes-kernel/linux/linux/lxc-net.cfg b/meta-agl-ic-container/recipes-kernel/linux/linux/lxc-net.cfg new file mode 100644 index 00000000..e9bd7b80 --- /dev/null +++ b/meta-agl-ic-container/recipes-kernel/linux/linux/lxc-net.cfg @@ -0,0 +1,5 @@ +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_IP_NF_FILTER=m +CONFIG_NF_NAT=m +CONFIG_NF_CONNTRACK=y diff --git a/meta-agl-ic-container/recipes-kernel/linux/linux/lxc.cfg b/meta-agl-ic-container/recipes-kernel/linux/linux/lxc.cfg new file mode 100644 index 00000000..fb87ea19 --- /dev/null +++ b/meta-agl-ic-container/recipes-kernel/linux/linux/lxc.cfg @@ -0,0 +1,26 @@ +CONFIG_CGROUP_DEVICE=y +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_MEMCG=y +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_RT_GROUP_SCHED=y +CONFIG_CHECKPOINT_RESTORE=y +CONFIG_NAMESPACES=y +CONFIG_UTS_NS=y +CONFIG_IPC_NS=y +CONFIG_USER_NS=y +CONFIG_PID_NS=y +CONFIG_NET_NS=y + +CONFIG_NET_CLS_CGROUP=m +CONFIG_BLK_CGROUP=y +CONFIG_CGROUP_NET_PRIO=y + +# Virtual drivers +CONFIG_HVC_DRIVER=y + +# Support for virtual ethernet and LXC +CONFIG_VETH=y +CONFIG_MACVLAN=y +CONFIG_VXLAN=m diff --git a/meta-agl-ic-container/recipes-kernel/linux/linux_lxc.inc b/meta-agl-ic-container/recipes-kernel/linux/linux_lxc.inc new file mode 100644 index 00000000..87e1edc5 --- /dev/null +++ b/meta-agl-ic-container/recipes-kernel/linux/linux_lxc.inc @@ -0,0 +1,10 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/linux:" + +# Disable all other AGL provided kernel configuration (barring +# base BSP provided configuration), and just enable a locally +# provided fragment with minimal LXC required configuration. +AGL_KCONFIG_FRAGMENTS += "lxc.cfg " +AGL_KCONFIG_FRAGMENTS += "lxc-net.cfg " + + + diff --git a/meta-agl-ic-container/recipes-multimedia/pipewire-ic-ipc/pipewire-ic-ipc_git.bb b/meta-agl-ic-container/recipes-multimedia/pipewire-ic-ipc/pipewire-ic-ipc_git.bb new file mode 100644 index 00000000..27f6bfc5 --- /dev/null +++ b/meta-agl-ic-container/recipes-multimedia/pipewire-ic-ipc/pipewire-ic-ipc_git.bb @@ -0,0 +1,37 @@ +SUMMARY = "PipeWire AGL Instrument Cluster IPC" +AUTHOR = "George Kiagiadakis <george.kiagiadakis@collabora.com>" +SECTION = "multimedia" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;beginline=3;md5=e8ad01a5182f2c1b3a2640e9ea268264" + +PV = "0.1+git${SRCPV}" + +SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/pipewire-ic-ipc.git;protocol=https;branch=${AGL_BRANCH}" +SRCREV = "f93f9cda5d8a380bc8846b5de3fc24613466adf3" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig systemd + +# build the server on the host +PACKAGECONFIG = "\ + server \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ +" +# only the example client in the guest +PACKAGECONFIG:aglcontainerguest = "client" + +# systemd integration for the server-side component +PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd" +# server-side component +PACKAGECONFIG[server] = "-Dserver=true,-Dserver=false,pipewire" +# example client; not needed if you use the icipc library in your IC applciation +PACKAGECONFIG[client] = "-Dclient=true,-Dclient=false," + +# server-side systemd service +SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'pipewire-ic-ipc.service', '', d)}" + +FILES:${PN} += "\ + ${datadir}/pipewire/* \ + ${libdir}/pipewire-0.3/* \ +" diff --git a/meta-agl-ic-container/recipes-multimedia/wireplumber/wireplumber-policy-config-agl_git.bbappend b/meta-agl-ic-container/recipes-multimedia/wireplumber/wireplumber-policy-config-agl_git.bbappend new file mode 100644 index 00000000..fe6dab86 --- /dev/null +++ b/meta-agl-ic-container/recipes-multimedia/wireplumber/wireplumber-policy-config-agl_git.bbappend @@ -0,0 +1,8 @@ +do_install:append() { + config_dir="${D}${sysconfdir}/wireplumber/" + systemd_dir="${D}${sysconfdir}/systemd/system/sockets.target.wants" + + # enable additional systemd services + install -d ${systemd_dir} + ln -s ${systemd_system_unitdir}/wireplumber@.service ${systemd_dir}/wireplumber@policy.service +} diff --git a/meta-agl-ic-container/recipes-multimedia/wireplumber/wireplumber/0001-systemd-wireplumber-to-not-depend-on-the-pipewire-de.patch b/meta-agl-ic-container/recipes-multimedia/wireplumber/wireplumber/0001-systemd-wireplumber-to-not-depend-on-the-pipewire-de.patch new file mode 100644 index 00000000..0da0bfb6 --- /dev/null +++ b/meta-agl-ic-container/recipes-multimedia/wireplumber/wireplumber/0001-systemd-wireplumber-to-not-depend-on-the-pipewire-de.patch @@ -0,0 +1,64 @@ +From a2d324c75057f0ddd66cbe5b5e419fddda213cc2 Mon Sep 17 00:00:00 2001 +From: Ashok Sidipotu <ashok.sidipotu@collabora.com> +Date: Mon, 28 Feb 2022 06:46:19 +0530 +Subject: [PATCH] systemd: changes to run wireplumber instances in containers + +- remove the pipewire daemon dependencies so that +only wireplumber policy daemon can run in containers. +- remove pipewire user +--- + src/systemd/system/wireplumber@.service.in | 8 +++----- + src/systemd/user/wireplumber@.service.in | 5 ++--- + 2 files changed, 5 insertions(+), 8 deletions(-) + + Inappropriate [configuration] + +diff --git a/src/systemd/system/wireplumber@.service.in b/src/systemd/system/wireplumber@.service.in +index ba8eefe..e4b985b 100644 +--- a/src/systemd/system/wireplumber@.service.in ++++ b/src/systemd/system/wireplumber@.service.in +@@ -5,8 +5,7 @@ + # wireplumber@policy.service loads policy.conf, etc. + [Unit] + Description=Multimedia Service Session Manager (%i) +-After=pipewire.service +-BindsTo=pipewire.service ++After=sockets.target + Conflicts=pipewire-media-session.service + + [Service] +@@ -19,9 +18,8 @@ SystemCallFilter=@system-service + Type=simple + ExecStart=@WP_BINARY@ -c %i.conf + Restart=on-failure +-User=pipewire +-Environment=PIPEWIRE_RUNTIME_DIR=%t/pipewire ++Environment=PIPEWIRE_RUNTIME_DIR=/var + Environment=GIO_USE_VFS=local + + [Install] +-WantedBy=pipewire.service ++WantedBy=multi-user.target +diff --git a/src/systemd/user/wireplumber@.service.in b/src/systemd/user/wireplumber@.service.in +index 9dbceff..7e21194 100644 +--- a/src/systemd/user/wireplumber@.service.in ++++ b/src/systemd/user/wireplumber@.service.in +@@ -5,8 +5,7 @@ + # wireplumber@policy.service loads policy.conf, etc. + [Unit] + Description=Multimedia Service Session Manager (%i) +-After=pipewire.service +-BindsTo=pipewire.service ++After=sockets.target + Conflicts=pipewire-media-session.service + + [Service] +@@ -23,4 +22,4 @@ Slice=session.slice + Environment=GIO_USE_VFS=local + + [Install] +-WantedBy=pipewire.service ++WantedBy=multi-user.target +-- +2.35.1 + diff --git a/meta-agl-ic-container/recipes-multimedia/wireplumber/wireplumber_git.bbappend b/meta-agl-ic-container/recipes-multimedia/wireplumber/wireplumber_git.bbappend new file mode 100644 index 00000000..56f03a4c --- /dev/null +++ b/meta-agl-ic-container/recipes-multimedia/wireplumber/wireplumber_git.bbappend @@ -0,0 +1,5 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/wireplumber:" + +SRC_URI += "\ + file://0001-systemd-wireplumber-to-not-depend-on-the-pipewire-de.patch \ +" diff --git a/meta-agl-ic-container/recipes-platform/images/agl-cluster-demo-lxc-host.bb b/meta-agl-ic-container/recipes-platform/images/agl-cluster-demo-lxc-host.bb new file mode 100644 index 00000000..c7424f57 --- /dev/null +++ b/meta-agl-ic-container/recipes-platform/images/agl-cluster-demo-lxc-host.bb @@ -0,0 +1,31 @@ +SUMMARY = "LXC host demo image" +LICENSE = "MIT" + +require lxc-host-image-minimal.bb + +CONTAINER_IMAGES ?= "agl-container-cluster:guest-image-cluster-demo \ + agl-container-ivi:guest-image-ivi-demo \ + " + +IMAGE_INSTALL += " \ + kernel-modules \ + alsa-utils \ + packagegroup-pipewire \ + pipewire-ic-ipc \ + wireplumber-config-agl \ +" + +# packages required for network bridge settings via lxc-net +IMAGE_INSTALL += " \ + lxc-networking \ + iptables-modules \ + dnsmasq \ + systemd-netif-config \ + kernel-module-xt-addrtype \ + kernel-module-xt-multiport \ +" + +# network manager to use +VIRTUAL-RUNTIME_net_manager = "systemd" + +IMAGE_INSTALL:append:rcar-gen3 = " kernel-module-gles " diff --git a/meta-agl-ic-container/recipes-platform/images/guest-image-cluster-demo.bb b/meta-agl-ic-container/recipes-platform/images/guest-image-cluster-demo.bb new file mode 100644 index 00000000..1476d7ab --- /dev/null +++ b/meta-agl-ic-container/recipes-platform/images/guest-image-cluster-demo.bb @@ -0,0 +1,12 @@ +SUMMARY = "LXC cluster demo guest image" +LICENSE = "MIT" + +require guest-image-minimal.bb + +IMAGE_INSTALL += " \ + weston \ + weston-init-guest \ + weston-ini-conf-guest \ + cluster-refgui \ + pipewire-ic-ipc \ +" diff --git a/meta-agl-ic-container/recipes-platform/images/guest-image-ivi-demo.bb b/meta-agl-ic-container/recipes-platform/images/guest-image-ivi-demo.bb new file mode 100644 index 00000000..22a59114 --- /dev/null +++ b/meta-agl-ic-container/recipes-platform/images/guest-image-ivi-demo.bb @@ -0,0 +1,30 @@ +SUMMARY = "LXC ivi demo guest image" +LICENSE = "MIT" + +require guest-image-minimal.bb + +IMAGE_INSTALL += " \ + weston \ + weston-init-guest \ + weston-ini-conf-guest \ + wayland-ivi-extension \ + ilm-manager \ + mominavi \ + momiplay \ + momiscreen \ + qtquickcontrols \ + qtquickcontrols2 \ + qtwayland \ + systemd-netif-config \ + ttf-dejavu-sans \ + ttf-dejavu-sans-mono \ + ttf-dejavu-sans-condensed \ + ttf-dejavu-serif \ + ttf-dejavu-serif-condensed \ + ttf-dejavu-mathtexgyre \ + ttf-dejavu-common \ + ca-certificates \ + wireplumber \ + packagegroup-pipewire-base \ + wireplumber-policy-config-agl \ +"
\ No newline at end of file diff --git a/meta-agl-ic-container/recipes-platform/images/guest-image-minimal.bb b/meta-agl-ic-container/recipes-platform/images/guest-image-minimal.bb new file mode 100644 index 00000000..6a47cfe5 --- /dev/null +++ b/meta-agl-ic-container/recipes-platform/images/guest-image-minimal.bb @@ -0,0 +1,11 @@ +SUMMARY = "A minimal container guest image" + +require recipes-platform/images/agl-image-boot.inc + +IMAGE_LINGUAS = " " + +IMAGE_ROOTFS_EXTRA_SPACE:append = "${@bb.utils.contains("DISTRO_FEATURES", "systemd", " + 4096", "" ,d)}" + +IMAGE_INSTALL:append = " \ + packagegroup-agl-ic-core \ +" diff --git a/meta-agl-ic-container/recipes-platform/images/lxc-host-image-minimal.bb b/meta-agl-ic-container/recipes-platform/images/lxc-host-image-minimal.bb new file mode 100644 index 00000000..38fc7b26 --- /dev/null +++ b/meta-agl-ic-container/recipes-platform/images/lxc-host-image-minimal.bb @@ -0,0 +1,62 @@ +SUMMARY = "A minimal container host image" + +require recipes-platform/images/agl-image-boot.inc + +IMAGE_INSTALL += " \ + kernel-image \ + lxc \ + ${LXC_CONTAINER_CONFIGS} \ + drm-lease-manager \ +" + +CONTAINER_IMAGES ??= "" + +LXC_CONTAINER_CONFIGS ?= "" + +IMAGE_LINGUAS = " " + +NO_RECOMMENDATIONS = "1" + +# Handle modification of IMAGE_LINK_NAME done by ULCB builds with Kingfisher support +MACHINE_SUFFIX = "${@bb.utils.contains('AGL_FEATURES', 'kingfisher', '-kf', '', d)}" + +python __anonymous() { + for c in (d.getVar('CONTAINER_IMAGES') or "").split(): + (mc, image) = c.split(':') + dependency = 'mc::' + mc + ':' + image + ':do_image_complete' + d.appendVarFlag('do_rootfs', 'mcdepends', ' ' + dependency) + + # Assume there is a X-lxc-config package for guest-image-X + config = image + if config.startswith('guest-image-'): + config = config[len('guest-image-'):] + d.appendVar('LXC_CONTAINER_CONFIGS', ' ' + 'lxc-config-' + config) +} + +install_container_images() { + for c in ${CONTAINER_IMAGES}; do + config=${c%:*} + image=${c#*:} + name=${image#guest-image-} + rm -rf ${IMAGE_ROOTFS}/var/lib/machines/${name} + install -m 0755 -d ${IMAGE_ROOTFS}/var/lib/machines/${name} + src="${TOPDIR}/tmp-${config}/deploy/images/${MACHINE}/${image}-${MACHINE}${MACHINE_SUFFIX}.tar.bz2" + bbnote "Installing ${src}" + tar -C ${IMAGE_ROOTFS}/var/lib/machines/${name} -xf ${src} + done +} + +# +# Force rebuild of rootfs on every build to work around mcdepends issue +# +# NOTE: +# This is currently required as bitbake fails to trigger do_rootfs +# sometimes even when the guest image has in fact rebuilt. This is +# being investigated with upstream. +# +do_rootfs[nostamp] = "1" + +ROOTFS_POSTPROCESS_COMMAND += "install_container_images; " + +IMAGE_ROOTFS_EXTRA_SPACE:append = "${@bb.utils.contains("DISTRO_FEATURES", "systemd", " + 4096", "" ,d)}" + diff --git a/meta-agl-ic-container/recipes-platform/packagegroups/packagegroup-agl-ic-core.bb b/meta-agl-ic-container/recipes-platform/packagegroups/packagegroup-agl-ic-core.bb new file mode 100644 index 00000000..d54685c8 --- /dev/null +++ b/meta-agl-ic-container/recipes-platform/packagegroups/packagegroup-agl-ic-core.bb @@ -0,0 +1,17 @@ +SUMMARY = "AGL Instrument Cluster Core Packages" +DESCRIPTION = "This pacage group including AGL Instrument Cluster function core packages such as \ + common library,framework." +HOMEPAGE = "https://confluence.automotivelinux.org/display/IC" + +LICENSE = "Apache-2.0" + +inherit packagegroup + +PACKAGES = "\ + packagegroup-agl-ic-core \ +" +RDEPENDS:${PN} += "\ + libclusteripc \ + libclusterapi \ + librefop \ +" diff --git a/meta-agl-ic-container/recipes-qt5/qt5/qtbase_git.bbappend b/meta-agl-ic-container/recipes-qt5/qt5/qtbase_git.bbappend new file mode 100644 index 00000000..7f2e9aa3 --- /dev/null +++ b/meta-agl-ic-container/recipes-qt5/qt5/qtbase_git.bbappend @@ -0,0 +1 @@ +PACKAGECONFIG:append:aglcontainerivi = " sql-sqlite" diff --git a/meta-agl-ic-container/recipes-qt5/qt5/qtlocation/0001-mapbox-update-API-url-to-match-new-schema.patch b/meta-agl-ic-container/recipes-qt5/qt5/qtlocation/0001-mapbox-update-API-url-to-match-new-schema.patch new file mode 100644 index 00000000..ba8a991e --- /dev/null +++ b/meta-agl-ic-container/recipes-qt5/qt5/qtlocation/0001-mapbox-update-API-url-to-match-new-schema.patch @@ -0,0 +1,47 @@ +From 58197439eade86e7efc6fe98116c0092ea429d29 Mon Sep 17 00:00:00 2001 +From: Matt Ranostay <matt.ranostay@konsulko.com> +Date: Tue, 10 Mar 2020 13:59:58 -0700 +Subject: [PATCH] mapbox: update API url to match new schema + +--- + src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp | 7 ++++--- + src/plugins/geoservices/mapbox/qmapboxcommon.h | 2 +- + 2 files changed, 5 insertions(+), 4 deletions(-) + +diff --git a/src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp b/src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp +index 0b128556..bd2be6b6 100644 +--- a/src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp ++++ b/src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp +@@ -88,12 +88,13 @@ QGeoTiledMapReply *QGeoTileFetcherMapbox::getTileImage(const QGeoTileSpec &spec) + request.setRawHeader("User-Agent", m_userAgent); + + request.setUrl(QUrl(mapboxTilesApiPath + +- ((spec.mapId() >= m_mapIds.size()) ? QStringLiteral("mapbox.streets") : m_mapIds[spec.mapId() - 1]) + QLatin1Char('/') + ++ m_mapIds[m_mapIds.size() - 1] + ++ QStringLiteral("/tiles/256/") + + QString::number(spec.zoom()) + QLatin1Char('/') + + QString::number(spec.x()) + QLatin1Char('/') + + QString::number(spec.y()) + +- ((m_scaleFactor > 1) ? (QLatin1Char('@') + QString::number(m_scaleFactor) + QLatin1String("x.")) : QLatin1String(".")) + +- m_format + QLatin1Char('?') + ++ ((m_scaleFactor > 1) ? (QLatin1Char('@') + QString::number(m_scaleFactor) + QLatin1String("x")) : QLatin1String("")) + ++ QLatin1Char('?') + + QStringLiteral("access_token=") + m_accessToken)); + + QNetworkReply *reply = m_networkManager->get(request); +diff --git a/src/plugins/geoservices/mapbox/qmapboxcommon.h b/src/plugins/geoservices/mapbox/qmapboxcommon.h +index e60c4e83..4b2ea98d 100644 +--- a/src/plugins/geoservices/mapbox/qmapboxcommon.h ++++ b/src/plugins/geoservices/mapbox/qmapboxcommon.h +@@ -46,7 +46,7 @@ + + QT_BEGIN_NAMESPACE + +-static const QString mapboxTilesApiPath = QStringLiteral("http://api.tiles.mapbox.com/v4/"); ++static const QString mapboxTilesApiPath = QStringLiteral("https://api.mapbox.com/"); + + // https://www.mapbox.com/api-documentation/#geocoding + static const QString mapboxGeocodingApiPath = QStringLiteral("https://api.mapbox.com/geocoding/v5/mapbox.places/"); +-- +2.25.0 + diff --git a/meta-agl-ic-container/recipes-qt5/qt5/qtlocation_git.bbappend b/meta-agl-ic-container/recipes-qt5/qt5/qtlocation_git.bbappend new file mode 100644 index 00000000..674aabcd --- /dev/null +++ b/meta-agl-ic-container/recipes-qt5/qt5/qtlocation_git.bbappend @@ -0,0 +1,7 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/qtlocation:" + +SRC_URI += "\ + file://0001-mapbox-update-API-url-to-match-new-schema.patch \ + " + +PACKAGECONFIG:append:aglcontainerivi = " geoservices_mapbox geoservices_mapboxgl" |