# AGL specific derivations
DISTRO = "poky-agl"
DISTRO_NAME = "Automotive Grade Linux"
-DISTRO_VERSION = "3.90.0+snapshot-${DATE}"
-DISTRO_CODENAME = "dab"
+
+
+# Release flags
+DISTRO_CODENAME = "guppy"
+AGL_BRANCH = "master"
+AGLVERSION = "6.90.0"
+# switch devel/release
+AGLRELEASETYPE ?= "agldevelopment"
+#AGLRELEASETYPE ?= "aglrelease"
+OVERRIDES .= ":${AGLRELEASETYPE}"
+#
+
+#for development
+DISTRO_VERSION_agldevelopment := "${AGLVERSION}+snapshot-${DATE}"
+AGL_APP_REVISION_agldevelopment = "${AUTOREV}"
+AGL_DEFAULT_REVISION_agldevelopment = "${AUTOREV}"
+
+#for release
+DISTRO_VERSION_aglrelease := "${AGLVERSION}"
+DISTRO_BRANCH_VERSION_TAG = "${DISTRO_CODENAME}/${@'${DISTRO_VERSION}'.replace('+snapshot-${DATE}','')}"
+AGL_APP_REVISION_aglrelease := "refs/tags/${DISTRO_BRANCH_VERSION_TAG}"
+AGL_DEFAULT_REVISION_aglrelease := "refs/tags/${DISTRO_BRANCH_VERSION_TAG}"
+
+
+# SDK
SDK_VENDOR = "-aglsdk"
SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"
+# SDKPATH is the folder where the SDK is going to be installed
+# Due to an issue with the qt5 environment (see SPEC-1667),
+# we add DEFAULTTUNE to the SDKPATH to mitigate the issue.
+SDKPATH = "/opt/agl-sdk/${SDK_VERSION}-${DEFAULTTUNE}"
+
+
MAINTAINER = "AGL <automotive-discussions@lists.linuxfoundation.org>"
TARGET_VENDOR = "-agl"
# Override these in poky based distros
AGL_DEFAULT_DISTRO_FEATURES = "largefile systemd opengl wayland pam bluetooth bluez5"
POKY_DEFAULT_DISTRO_FEATURES := "${AGL_DEFAULT_DISTRO_FEATURES}"
+OVERRIDES .= ":${DISTRO_CODENAME}"
QEMU_TARGETS ?= "arm aarch64 i386 x86_64"
# Other QEMU_TARGETS "mips mips64 mips64el ppc sh4"
DISTRO_FEATURES_APPEND = " "
DISTRO_FEATURES_remove = "x11"
-DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"
+DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit pulseaudio"
+PREFERRED_VERSION_wayland-ivi-extension ?= "2.0.%"
-# Prefer GStreamer 1.8.x by default
-PREFERRED_VERSION_gstreamer1.0 ?= "1.8.%"
-PREFERRED_VERSION_gstreamer1.0-plugins-bad ?= "1.8.%"
-PREFERRED_VERSION_gstreamer1.0-plugins-base ?= "1.8.%"
-PREFERRED_VERSION_gstreamer1.0-plugins-good ?= "1.8.%"
-PREFERRED_VERSION_gstreamer1.0-plugins-ugly ?= "1.8.%"
-PREFERRED_VERSION_gstreamer1.0-libav ?= "1.8.%"
-PREFERRED_VERSION_gstreamer1.0-omx ?= "1.2.%"
+# Prefer GStreamer 1.10.x by default
+PREFERRED_VERSION_gstreamer1.0 ?= "1.12.%"
+PREFERRED_VERSION_gstreamer1.0-plugins-bad ?= "1.12.%"
+PREFERRED_VERSION_gstreamer1.0-plugins-base ?= "1.12.%"
+PREFERRED_VERSION_gstreamer1.0-plugins-good ?= "1.12.%"
+PREFERRED_VERSION_gstreamer1.0-plugins-ugly ?= "1.12.%"
+PREFERRED_VERSION_gstreamer1.0-libav ?= "1.12.%"
+PREFERRED_VERSION_gstreamer1.0-omx ?= "1.12.%"
# Prefer libjpeg-turbo
PREFERRED_PROVIDER_jpeg = "libjpeg-turbo"
SECURITY_CFLAGS_pn-libdbus-c++ = ""
SECURITY_LDFLAGS_pn-libdbus-c++ = ""
+# more than 2 targets fail to compile these with the SECURITY compiler flags:
+# Bug tracked as SPEC-593
+SECURITY_CFLAGS_pn-mozjs = ""
+SECURITY_LDFLAGS_pn-mozjs = ""
+SECURITY_CFLAGS_pn-gpm = ""
+SECURITY_LDFLAGS_pn-gpm = ""
+SECURITY_CFLAGS_pn-libatasmart = ""
+SECURITY_LDFLAGS_pn-libatasmart = ""
+SECURITY_CFLAGS_pn-optee-client = ""
+
# Not yet upstreamed; should be submitted.
SECURITY_CFLAGS_pn-qtwebengine = "${SECURITY_NO_PIE_CFLAGS}"
#default: USER_CLASSES ?= "buildstats image-mklibs image-prelink"
USER_CLASSES = "buildstats image-mklibs"
-# weak 'default value' assignment for a DEFAULTTUNE
-DEFAULTTUNE_arm ??= "armv7athf-neon"
+# AGL uses 4 optimization levels
+# 2 for ARM 32bit
+# - a high and a medium setting for the CCARGS
+# - the high setting is default (needs >= cortex-a15)
+# - the medium setting is enabled with: DISTRO_FEATURES_append = " agl-medium-arm-compiler "
+# 1 for ARM 64bit / AARCH64
+# 1 for x86-64
+require conf/distro/include/${TARGET_ARCH}-tune.inc
+
+# Generic qemu and qemuboot (runqemu) enhancements
+# check qemuboot.bbclass
+# - use 2G RAM by default
+QB_MEM ?= "-m 2048"
+# use pulseaudio on the host side - off as qemu-native is built with alsa
+#QB_AUDIO_DRV = "pa"
+# expose a virtual 'hda' sound card to the guest (arm/aarch64/x86-64)
+QB_AUDIO_OPT = "-soundhw hda"
+
+# Board templates can add extra IMAGE_FSTYPES through this.
+# It is added (late) through the AGL image recipes.
+AGL_EXTRA_IMAGE_FSTYPES ??= ""
+AGL_EXTRA_INITRAMFS_FSTYPES ??= ""
+#
+# Default IMAGE FSTYPES compressed tarball + ext4.xz
+AGL_DEFAULT_IMAGE_FSTYPES ?= "tar.xz ${@bb.utils.contains('DISTRO_FEATURES', 'AGLCI', 'ext4.xz', 'ext4', d)}"
+AGL_DEFAULT_INITRAMFS_FSTYPES ?= "ext4.gz"
+
+# DEFAULT IMAGE_FSTYPES for AGL (no - BSPs should not set this)
+#
+IMAGE_FSTYPES := "${AGL_DEFAULT_IMAGE_FSTYPES} ${AGL_EXTRA_IMAGE_FSTYPES}"
+INITRAMFS_FSTYPES := "${AGL_DEFAULT_INITRAMFS_FSTYPES} ${AGL_EXTRA_INITRAMFS_FSTYPES}"
+#
+# THE FUTURE is 'wic'
+# IMAGE_FSTYPES_append = " wic"
+
+# enable the packagemanagement
+IMAGE_FEATURES =+ "package-management"
+PACKAGE_FEED_URIS = "http://192.168.7.1:8000/tmp/deploy/"
+PACKAGE_FEED_BASE_PATHS = "rpm"
+PACKAGE_FEED_ARCHS = ""
+#${PACKAGE_ARCHS}"
+
+
+# Fix for rpm metadata clash between nativesdk-cmake and nativesdk-qtbase-tools
+# (revalidate after 2017-10-15, 2018-06-12: still required)
+DIRFILES_pn-nativesdk-cmake = "1"
+
+# For https://jira.automotivelinux.org/browse/SPEC-1629 :
+# We exclude the conflicting vars from the sstate task hash.
+# This needs to be verified.
+do_package_write_rpm[vardepsexclude] += "ARCHIVER_TOPDIR PF"
+
+# For https://jira.automotivelinux.org/browse/SPEC-1677
+# Some issues appear, with the yocto version of valgrind, on aarch64.
+# (valgrind exits due to an unhandled instruction')
+PREFERRED_VERSION_valgrind ?= "git"