diff options
author | Jan-Simon Möller <jsmoeller@linuxfoundation.org> | 2018-05-15 14:46:21 +0200 |
---|---|---|
committer | Jan-Simon Möller <jsmoeller@linuxfoundation.org> | 2018-05-31 18:16:00 +0200 |
commit | b43165328658087277b667152fdbc04fe07cba08 (patch) | |
tree | d1540adb65af28e41e9ebdfdbfe8b08470cb6887 /meta-agl-profile-graphical-html5/recipes-openivi/openivi-html5 | |
parent | c40ee88f6aa0b379787a9ea3c853a806892e0dd1 (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/recipes-openivi/openivi-html5')
3 files changed, 109 insertions, 0 deletions
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}" |