summaryrefslogtreecommitdiffstats
path: root/meta-agl-profile-graphical-html5
diff options
context:
space:
mode:
authorJan-Simon Möller <jsmoeller@linuxfoundation.org>2018-05-15 14:46:21 +0200
committerJan-Simon Möller <jsmoeller@linuxfoundation.org>2018-05-31 18:16:00 +0200
commitb43165328658087277b667152fdbc04fe07cba08 (patch)
treed1540adb65af28e41e9ebdfdbfe8b08470cb6887 /meta-agl-profile-graphical-html5
parentc40ee88f6aa0b379787a9ea3c853a806892e0dd1 (diff)
3rd part of the layer/profile rework [1/2]
This is the last larger commit in this series and deals with the graphical part. We introduce the graphical profiles: - meta-agl-profile-graphical -- meta-agl-profile-graphical-html5 -- meta-agl-profile-graphical-qt5 Notable changes: - weston-ini-conf moved to the meta-agl-bsp layer. Most BSPs have bbappends, so we need to have the recipes present (but unused) even in the console images. - new image: agl-image-boot = terminal-only + network + package-manaager. Ready for using package-feeds - new image/sdk: agl-image-minimal-crosssdk - agl-service-mediaplayer has a dependency on weston, thus it cannot be in the 'core'. Moved it to profile-graphical. - The wayland-ivi-extension moved to the agl-demo-platform. - The app-framework layer included and pulled 'web-runtime' as dependency. This broke console-only images. This has been moved to be in meta-agl-demo only for now. - added and massaged the agl-features. - found and added a useful script 'oe-depends-dot' that helps to work with the dot files (produced with bitbake -g) Todo: - we'll need another pass through the packagegroups. The dependencies for the layers/profiles are now sorted-out but we might have to add/shuffle a few packages. For further details, see meta-agl/docs/profiles.md. v2: fix meta-agl/meta-security/conf/layer.conf - the immediate expansion previously used in there caused some recipes not being added to BBFILES. v3: fix packagegroup renaming (packagegroup-agl-devel -> packagegroup-agl-core-devel) v4: fix missing packagegroup inclusion (tnx Jose, Scott, Stephane) v5: fix missing packagegroup inclusion v6: explicitely put profile-graphical-qt5 on-top of profile-graphical v7: re-add 'procps' when agl-devel feature is on Bug-AGL: SPEC-145 Change-Id: I24cdcd1118932758d0c55d333338238f2a770877 Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
Diffstat (limited to 'meta-agl-profile-graphical-html5')
-rw-r--r--meta-agl-profile-graphical-html5/conf/layer.conf10
-rw-r--r--meta-agl-profile-graphical-html5/recipes-openivi/openivi-html5/openivi-html5/openivi-html5.service16
-rw-r--r--meta-agl-profile-graphical-html5/recipes-openivi/openivi-html5/openivi-html5/openivi-html5.sh50
-rw-r--r--meta-agl-profile-graphical-html5/recipes-openivi/openivi-html5/openivi-html5_git.bb43
-rwxr-xr-xmeta-agl-profile-graphical-html5/recipes-platform/images/agl-demo-platform-html5-crosssdk.bb56
-rw-r--r--meta-agl-profile-graphical-html5/recipes-platform/images/agl-demo-platform-html5.bb10
-rw-r--r--meta-agl-profile-graphical-html5/recipes-platform/images/agl-demo-platform-html5.inc2
-rw-r--r--meta-agl-profile-graphical-html5/recipes-platform/packagegroups/packagegroup-agl-demo-platform-html5.bb26
8 files changed, 213 insertions, 0 deletions
diff --git a/meta-agl-profile-graphical-html5/conf/layer.conf b/meta-agl-profile-graphical-html5/conf/layer.conf
new file mode 100644
index 000000000..4d84dba52
--- /dev/null
+++ b/meta-agl-profile-graphical-html5/conf/layer.conf
@@ -0,0 +1,10 @@
+# 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 += "aglprofilegraphicalhtml5"
+BBFILE_PATTERN_aglprofilegraphicalhtml5 = "^${LAYERDIR}/"
+BBFILE_PRIORITY_aglprofilegraphicalhtml5 = "70"
diff --git a/meta-agl-profile-graphical-html5/recipes-openivi/openivi-html5/openivi-html5/openivi-html5.service b/meta-agl-profile-graphical-html5/recipes-openivi/openivi-html5/openivi-html5/openivi-html5.service
new file mode 100644
index 000000000..2c8648475
--- /dev/null
+++ b/meta-agl-profile-graphical-html5/recipes-openivi/openivi-html5/openivi-html5/openivi-html5.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=HTML5 runtime for OpenIVI Mobility applications
+Requires=afm-user-daemon.service InputEventManager.service
+After=afm-user-daemon.service InputEventManager.service
+ConditionKernelCommandLine=!agl.nogfx
+
+[Service]
+Type=dbus
+BusName=org.agl.openivi
+ExecStart=/usr/bin/openivi-html5.sh
+Restart=on-failure
+RestartSec=5
+TimeoutStopSec=1
+
+[Install]
+WantedBy=default.target
diff --git a/meta-agl-profile-graphical-html5/recipes-openivi/openivi-html5/openivi-html5/openivi-html5.sh b/meta-agl-profile-graphical-html5/recipes-openivi/openivi-html5/openivi-html5/openivi-html5.sh
new file mode 100644
index 000000000..a318214ad
--- /dev/null
+++ b/meta-agl-profile-graphical-html5/recipes-openivi/openivi-html5/openivi-html5/openivi-html5.sh
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+if test -z "$XDG_CONFIG_DIRS"; then
+ export XDG_CONFIG_DIRS=/etc/xdg/
+fi
+
+if test -z "$XDG_RUNTIME_DIR"; then
+ export XDG_RUNTIME_DIR=/run/user/$UID
+ mkdir --parents $XDG_RUNTIME_DIR
+ chmod 0700 $XDG_RUNTIME_DIR
+fi
+
+# Default homescreen
+HOMESCREEN=/usr/share/openivi/example/cluster/index.html
+
+# Read configuration
+HOMESCREEN_CONFIG=$XDG_CONFIG_DIRS/openivi-html5/openivi-html5.ini
+if [ -e "$HOMESCREEN_CONFIG" ] ; then
+ HTML=`sed -n '/^homescreen=\(.*\)$/s//\1/p' < $HOMESCREEN_CONFIG`
+ if [ -n "$HTML" ] ; then
+ HOMESCREEN=$HTML
+ fi
+fi
+
+#the following value shall be modified for your display side
+SCREEN_W=1080
+SCREEN_H=1920
+
+# Demo is configured to FullHD
+QT_W=1080
+QT_H=1920
+
+QT_IVI_SURFACE_ID=4194304 QT_WAYLAND_SHELL_INTEGRATION=ivi-shell /usr/bin/openivi-html5 -f -u $HOMESCREEN &
+
+# qmlscene create 2 surfaces
+# 0x80000000 : for off screen buffer ?
+# 0x80000001 : visible
+#
+SURFACE_ID_QML=0x80000001
+
+#
+# layer-add-surfaces wait till 2 surfaces are created.
+#
+layer-add-surfaces 1000 2
+
+/usr/bin/LayerManagerControl set surface $SURFACE_ID_QML destination region 0 0 $SCREEN_W $SCREEN_H
+/usr/bin/LayerManagerControl set surface $SURFACE_ID_QML source region 0 0 $QT_W $QT_H
+/usr/bin/LayerManagerControl set layer 1000 render order $SURFACE_ID_QML
+/usr/bin/LayerManagerControl set surfaces $SURFACE_ID_QML input focus keyboard
+/usr/bin/LayerManagerControl set screen 0 render order 1000
diff --git a/meta-agl-profile-graphical-html5/recipes-openivi/openivi-html5/openivi-html5_git.bb b/meta-agl-profile-graphical-html5/recipes-openivi/openivi-html5/openivi-html5_git.bb
new file mode 100644
index 000000000..168b98c78
--- /dev/null
+++ b/meta-agl-profile-graphical-html5/recipes-openivi/openivi-html5/openivi-html5_git.bb
@@ -0,0 +1,43 @@
+DESCRIPTION = "OpenIVI Mobility HTML5 environment"
+HOMEPAGE = "https://openivimobility.github.io/"
+SECTION = "base"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4641e94ec96f98fabc56ff9cc48be14b"
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI = " \
+ git://github.com/openivimobility/openivi-html5.git;branch=master;tag=0b370eea8c7c852365bd717013a523b678abbdba \
+ file://openivi-html5.sh \
+ file://openivi-html5.service \
+"
+
+inherit pkgconfig cmake_qt5 externalsrc systemd
+PV = "0.1"
+
+S = "${WORKDIR}/git"
+
+RDEPENDS_${PN} = "qtbase qtwebkit inputeventmanager windowmanager"
+DEPENDS = "qtbase-native qtbase qtwebkit"
+
+EXTRA_OECMAKE = " -DCMAKE_DISABLE_FIND_PACKAGE_X11=TRUE "
+
+FILES_${PN} = "/usr/bin/openivi-html5 /usr/share/openivi/*"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 openivi-html5 ${D}${bindir}
+
+ install -d ${D}${datadir}/openivi/
+ cp -r ${S}/example ${D}${datadir}/openivi/
+
+ install -p -D ${WORKDIR}/openivi-html5.sh ${D}${bindir}/openivi-html5.sh
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${systemd_user_unitdir}
+ install -p -D ${WORKDIR}/openivi-html5.service ${D}${systemd_user_unitdir}/openivi-html5.service
+ install -d ${D}${sysconfdir}/systemd/user/default.target.wants
+ ln -sf ${systemd_user_unitdir}/openivi-html5.service ${D}${sysconfdir}/systemd/user/default.target.wants
+ fi
+}
+
+FILES_${PN} += " ${prefix}/bin/openivi-html5.sh ${systemd_user_unitdir} ${sysconfdir}"
diff --git a/meta-agl-profile-graphical-html5/recipes-platform/images/agl-demo-platform-html5-crosssdk.bb b/meta-agl-profile-graphical-html5/recipes-platform/images/agl-demo-platform-html5-crosssdk.bb
new file mode 100755
index 000000000..a81472bb7
--- /dev/null
+++ b/meta-agl-profile-graphical-html5/recipes-platform/images/agl-demo-platform-html5-crosssdk.bb
@@ -0,0 +1,56 @@
+SUMMARY = "Cross SDK of Full AGL Distribution for IVI profile"
+
+DESCRIPTION = "SDK image for full AGL Distribution for IVI profile. \
+It includes the full meta-toolchain, plus developement headers and libraries \
+to form a standalone cross SDK."
+
+require agl-demo-platform-html5.bb
+
+LICENSE = "MIT"
+
+IMAGE_FEATURES_append = " dev-pkgs"
+IMAGE_INSTALL_append = " kernel-dev kernel-devsrc"
+
+inherit populate_sdk populate_sdk_qt5
+
+# Task do_populate_sdk and do_rootfs can't be exec simultaneously.
+# Both exec "createrepo" on the same directory, and so one of them
+# can failed (randomly).
+addtask do_populate_sdk after do_rootfs
+
+# native tools to support Chromium build inside SDK (SPEC-942)
+TOOLCHAIN_HOST_TASK += " \
+ nativesdk-gn \
+ nativesdk-ninja \
+ nativesdk-gperf \
+ nativesdk-zlib \
+ nativesdk-xz \
+ nativesdk-nspr-dev \
+ nativesdk-nss-dev \
+ nativesdk-lua \
+ "
+
+# required dependencies for Chromium build inside SDK (SPEC-942)
+TOOLCHAIN_TARGET_TASK += " \
+ pciutils-dev \
+ pulseaudio-dev \
+ cairo-dev \
+ nss-dev \
+ cups-dev \
+ gconf-dev \
+ libexif-dev \
+ pango-dev \
+ libdrm-dev \
+ libssp-dev \
+ lua-dev \
+ lua-staticdev \
+ ${@bb.utils.contains('LICENSE_FLAGS_WHITELIST', 'commercial', 'ffmpeg-dev', '', d)} \
+ "
+
+# Add wayland-scanner to SDK (SPEC-945)
+# Use TOOLCHAIN_HOST_TASK instead of adding to the packagegroup
+# wayland-scanner is in nativesdk-wayland-dev !
+# option: add also nativesdk-qtwayland-tools
+TOOLCHAIN_HOST_TASK_append = " nativesdk-wayland nativesdk-wayland-dev"
+
+TOOLCHAIN_HOST_TASK_append = " nativesdk-perl-modules "
diff --git a/meta-agl-profile-graphical-html5/recipes-platform/images/agl-demo-platform-html5.bb b/meta-agl-profile-graphical-html5/recipes-platform/images/agl-demo-platform-html5.bb
new file mode 100644
index 000000000..c9247a854
--- /dev/null
+++ b/meta-agl-profile-graphical-html5/recipes-platform/images/agl-demo-platform-html5.bb
@@ -0,0 +1,10 @@
+DESCRIPTION = "AGL Demo Platform image currently contains a simple HMI and \
+demos."
+
+LICENSE = "MIT"
+
+require agl-demo-platform-html5.inc
+
+IMAGE_INSTALL_append = "\
+ packagegroup-agl-demo-platform-html5 \
+ "
diff --git a/meta-agl-profile-graphical-html5/recipes-platform/images/agl-demo-platform-html5.inc b/meta-agl-profile-graphical-html5/recipes-platform/images/agl-demo-platform-html5.inc
new file mode 100644
index 000000000..3005abeb0
--- /dev/null
+++ b/meta-agl-profile-graphical-html5/recipes-platform/images/agl-demo-platform-html5.inc
@@ -0,0 +1,2 @@
+# Base image
+require recipes-ivi/images/agl-image-ivi.inc
diff --git a/meta-agl-profile-graphical-html5/recipes-platform/packagegroups/packagegroup-agl-demo-platform-html5.bb b/meta-agl-profile-graphical-html5/recipes-platform/packagegroups/packagegroup-agl-demo-platform-html5.bb
new file mode 100644
index 000000000..ee5c1f701
--- /dev/null
+++ b/meta-agl-profile-graphical-html5/recipes-platform/packagegroups/packagegroup-agl-demo-platform-html5.bb
@@ -0,0 +1,26 @@
+SUMMARY = "The software for DEMO platform of AGL IVI profile"
+DESCRIPTION = "A set of packages belong to AGL Demo Platform"
+
+LICENSE = "MIT"
+
+inherit packagegroup
+
+PACKAGES = "\
+ packagegroup-agl-demo-platform-html5 \
+ "
+
+ALLOW_EMPTY_${PN} = "1"
+
+RDEPENDS_${PN} += "\
+ packagegroup-agl-image-ivi \
+ "
+
+# add packages for demo platform (include demo apps) here
+#RDEPENDS_${PN} += " \
+# packagegroup-agl-demo \
+# "
+
+# add packages for OpenIVI-HTML5 demo
+RDEPENDS_${PN} += " \
+ openivi-html5 \
+ "