summaryrefslogtreecommitdiffstats
path: root/meta-agl/meta-app-framework/recipes-core/af-main
diff options
context:
space:
mode:
Diffstat (limited to 'meta-agl/meta-app-framework/recipes-core/af-main')
-rw-r--r--meta-agl/meta-app-framework/recipes-core/af-main/af-main/Hack-to-allow-the-debugging.patch29
-rw-r--r--meta-agl/meta-app-framework/recipes-core/af-main/af-main_git.bb127
-rw-r--r--meta-agl/meta-app-framework/recipes-core/af-main/af-main_git.inc25
-rw-r--r--meta-agl/meta-app-framework/recipes-core/af-main/nativesdk-af-main_git.bb27
4 files changed, 208 insertions, 0 deletions
diff --git a/meta-agl/meta-app-framework/recipes-core/af-main/af-main/Hack-to-allow-the-debugging.patch b/meta-agl/meta-app-framework/recipes-core/af-main/af-main/Hack-to-allow-the-debugging.patch
new file mode 100644
index 00000000..14a26fbe
--- /dev/null
+++ b/meta-agl/meta-app-framework/recipes-core/af-main/af-main/Hack-to-allow-the-debugging.patch
@@ -0,0 +1,29 @@
+From a4fbfb88f1b7c4f4287d9279767220fae80d26da Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jos=C3=A9=20Bollo?= <jose.bollo@iot.bzh>
+Date: Thu, 21 Jan 2016 15:07:29 +0100
+Subject: [PATCH] Hack to allow the debugging
+
+This is a temporarily fix to continue debugging
+afm-main. This should be removed later.
+
+Change-Id: I2f10f0cb1fce2ee30bd0754ad2e7bc8e2f6513aa
+---
+ conf/afm-user-daemon.conf | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/conf/user/afm-user-daemon.conf b/conf/user/afm-user-daemon.conf
+index 801c7ae..98a3152 100644
+--- a/conf/user/afm-user-daemon.conf
++++ b/conf/user/afm-user-daemon.conf
+@@ -25,7 +25,7 @@
+ </policy>
+
+ <policy context="default">
+- <deny own="org.AGL.afm.user"/>
++ <allow own="org.AGL.afm.user"/>
+ <allow send_destination="org.AGL.afm.system"/>
+ </policy>
+
+--
+2.1.4
+
diff --git a/meta-agl/meta-app-framework/recipes-core/af-main/af-main_git.bb b/meta-agl/meta-app-framework/recipes-core/af-main/af-main_git.bb
new file mode 100644
index 00000000..4a565453
--- /dev/null
+++ b/meta-agl/meta-app-framework/recipes-core/af-main/af-main_git.bb
@@ -0,0 +1,127 @@
+require af-main_${PV}.inc
+
+# NOTE: using libcap-native and setcap in install doesn't work
+# NOTE: maybe setting afm_name to agl-framework is cleaner but has implications
+# NOTE: there is a hack of security for using groups and dbus (to be checked)
+# NOTE: using ZIP programs creates directories with mode 777 (very bad)
+
+inherit cmake pkgconfig useradd systemd
+BBCLASSEXTEND = "native"
+
+SECTION = "base"
+
+DEPENDS = "openssl libxml2 xmlsec1 systemd libzip json-c systemd security-manager af-binder sed m4"
+DEPENDS_class-native = "openssl libxml2 xmlsec1 libzip json-c"
+RDEPENDS_${PN}_class-target += "af-binder-tools"
+
+PACKAGE_WRITE_DEPS_append_with-lsm-smack = " smack-native libcap-native"
+
+EXTRA_OECMAKE_class-native = "\
+ -DUSE_LIBZIP=1 \
+ -DUSE_SIMULATION=1 \
+ -DUSE_SDK=1 \
+ -DAGLVERSION=${AGLVERSION} \
+ -Dafm_name=${afm_name} \
+ -Dafm_confdir=${afm_confdir} \
+ -Dafm_datadir=${afm_datadir} \
+"
+
+EXTRA_OECMAKE = "\
+ -DUSE_LIBZIP=1 \
+ -DUSE_SIMULATION=0 \
+ -DUSE_SDK=0 \
+ -DAGLVERSION=${AGLVERSION} \
+ -Dafm_name=${afm_name} \
+ -Dafm_confdir=${afm_confdir} \
+ -Dafm_datadir=${afm_datadir} \
+ -Dsystemd_units_root=${systemd_units_root} \
+ -DUNITDIR_USER=${systemd_user_unitdir} \
+ -DUNITDIR_SYSTEM=${systemd_system_unitdir} \
+"
+
+# ------------------------ WARNING WARNING WARNNING ---------------------------
+#
+# ATM (FF.rc2), forcing all apps to be signed is an issue when building without
+# agl-devel feature. A workaround is to define ALLOW_NO_SIGNATURE=ON for all
+# builds but this must be removed later. See SPEC-1614 for more details.
+#
+# A variable AGL_FORBID_UNSIGNED_APPS is introduced to enable/disable this
+# workaround in local.conf and allow transition to signed apps:
+# * forbid unsigned apps by setting: AGL_FORBID_UNSIGNED_APPS="1"
+# * [DEFAULT] allow unsigned apps: do nothing (or set: AGL_FORBID_UNSIGNED_APPS="0")
+AGL_FORBID_UNSIGNED_APPS ?= "0"
+#
+# WORKAROUND:
+EXTRA_OECMAKE_append_agl-devel = " -DAGL_DEVEL=1"
+EXTRA_OECMAKE_append = " ${@bb.utils.contains('AGL_FORBID_UNSIGNED_APPS','1','','-DALLOW_NO_SIGNATURE=ON', d)}"
+#
+# Correct version (IMPORTANT TODO: to be restored later):
+#EXTRA_OECMAKE_append_agl-devel = " -DAGL_DEVEL=1 -DALLOW_NO_SIGNATURE=ON"
+#
+# ------------------------ WARNING WARNING WARNNING ---------------------------
+
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "--system --gid ${afm_name} --home-dir ${afm_datadir} ${afm_name}"
+GROUPADD_PARAM_${PN} = "--system ${afm_name}"
+
+RDEPENDS_${PN}_append_with-lsm-smack = " smack bash"
+DEPENDS_append_with-lsm-smack = " smack-native"
+
+# short hacks here
+SRC_URI += "\
+ file://Hack-to-allow-the-debugging.patch \
+"
+
+do_install_append_class-target() {
+ install -d ${D}${bindir}
+ install -d -m 0775 ${D}${systemd_units_root}/system
+ install -d -m 0775 "${D}${systemd_units_root}/system/multi-user.target.wants"
+ install -d -m 0775 "${D}${systemd_units_root}/system/afm-user-session@.target.wants"
+ install -d -m 0775 ${D}${systemd_units_root}/user
+ install -d -m 0775 ${D}${systemd_units_root}/user/default.target.wants
+ install -d -m 0775 ${D}${systemd_units_root}/user/sockets.target.wants
+ install -d ${D}${afm_datadir}/applications
+ install -d ${D}${afm_datadir}/icons
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d -m 0755 ${D}${systemd_system_unitdir}/multi-user.target.wants
+ install -d -m 0755 ${D}${systemd_system_unitdir}/sockets.target.wants
+ ln -sf ../afm-system-setup.service ${D}${systemd_system_unitdir}/multi-user.target.wants/afm-system-setup.service
+ ln -sf ../afm-system-daemon.service ${D}${systemd_system_unitdir}/multi-user.target.wants/afm-system-daemon.service
+ ln -sf ../afm-system-daemon.socket ${D}${systemd_system_unitdir}/sockets.target.wants/afm-system-daemon.socket
+ fi
+ echo "QT_WAYLAND_SHELL_INTEGRATION=ivi-shell" > ${D}${afm_confdir}/unit.env.d/qt-for-ivi-shell
+}
+
+pkg_postinst_ontarget_${PN}() {
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ chgrp ${afm_name} $D${systemd_units_root}/system
+ chgrp ${afm_name} $D${systemd_units_root}/system/afm-user-session@.target.wants
+ chgrp ${afm_name} $D${systemd_units_root}/user/default.target.wants
+ chgrp ${afm_name} $D${systemd_units_root}/user/sockets.target.wants
+ fi
+ chown ${afm_name}:${afm_name} $D${afm_datadir}
+ chown ${afm_name}:${afm_name} $D${afm_datadir}/applications
+ chown ${afm_name}:${afm_name} $D${afm_datadir}/icons
+}
+
+pkg_postinst_ontarget_${PN}_append_with-lsm-smack() {
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ chsmack -a 'System::Shared' -t $D${systemd_units_root}/system
+ chsmack -a 'System::Shared' -t $D${systemd_units_root}/system/afm-user-session@.target.wants
+ chsmack -a 'System::Shared' -t $D${systemd_units_root}/user/default.target.wants
+ chsmack -a 'System::Shared' -t $D${systemd_units_root}/user/sockets.target.wants
+ fi
+ chsmack -a 'System::Shared' -t $D${afm_datadir}
+ chsmack -a 'System::Shared' -t $D${afm_datadir}/applications
+ chsmack -a 'System::Shared' -t $D${afm_datadir}/icons
+}
+FILES_${PN} += "${systemd_units_root}/* ${systemd_system_unitdir} ${systemd_user_unitdir}"
+
+PACKAGES =+ "${PN}-binding ${PN}-binding-dbg"
+FILES_${PN}-binding = " ${afb_binding_dir}/afm-main-binding.so "
+FILES_${PN}-binding-dbg = " ${afb_binding_dir}/.debug/afm-main-binding.so "
+
+PACKAGES =+ "${PN}-tools ${PN}-tools-dbg"
+FILES_${PN}-tools = "${bindir}/wgtpkg-*"
+FILES_${PN}-tools-dbg = "${bindir}/.debug/wgtpkg-*"
diff --git a/meta-agl/meta-app-framework/recipes-core/af-main/af-main_git.inc b/meta-agl/meta-app-framework/recipes-core/af-main/af-main_git.inc
new file mode 100644
index 00000000..6795da2a
--- /dev/null
+++ b/meta-agl/meta-app-framework/recipes-core/af-main/af-main_git.inc
@@ -0,0 +1,25 @@
+SUMMARY = "AGL Framework Main part"
+DESCRIPTION = "\
+This is a core framework component for managing \
+applications, widgets, and components. \
+"
+
+HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/src/app-framework-main"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/app-framework-main;protocol=https;branch=${AGL_BRANCH}"
+
+SRCREV = "533d5a1a51a07f2f92e508d113cb49d373e1bad8"
+PV = "${AGL_BRANCH}+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+afm_name = "afm"
+afm_confdir = "${sysconfdir}/${afm_name}"
+afm_datadir = "/var/local/lib/${afm_name}"
+afb_binding_dir = "${libdir}/afb"
+systemd_units_root = "/var/local/lib/systemd"
+
+CFLAGS_append_agl-devel = " -DAGL_DEVEL"
+
diff --git a/meta-agl/meta-app-framework/recipes-core/af-main/nativesdk-af-main_git.bb b/meta-agl/meta-app-framework/recipes-core/af-main/nativesdk-af-main_git.bb
new file mode 100644
index 00000000..759c893c
--- /dev/null
+++ b/meta-agl/meta-app-framework/recipes-core/af-main/nativesdk-af-main_git.bb
@@ -0,0 +1,27 @@
+require af-main_${PV}.inc
+
+inherit nativesdk cmake pkgconfig
+
+SECTION = "base"
+
+DEPENDS = "nativesdk-openssl nativesdk-libxml2 nativesdk-xmlsec1 nativesdk-libzip nativesdk-json-c"
+
+EXTRA_OECMAKE = "\
+ -DUSE_LIBZIP=1 \
+ -DUSE_SIMULATION=1 \
+ -DUSE_SDK=1 \
+ -DAGLVERSION=${AGLVERSION} \
+ -Dafm_name=${afm_name} \
+ -Dafm_confdir=${afm_confdir} \
+ -Dafm_datadir=${afm_datadir} \
+"
+
+do_install_append() {
+ # remove unused .pc file we don't want to package
+ rm -rf ${D}/${libdir}
+}
+
+PACKAGES = "${PN}-tools ${PN}-tools-dbg"
+FILES_${PN}-tools = "${bindir}/wgtpkg-* ${afm_confdir}/*"
+FILES_${PN}-tools-dbg = "${bindir}/.debug/wgtpkg-*"
+