From fcaa0d5d72401b5301db4bd335b661576115343e Mon Sep 17 00:00:00 2001 From: Markus Lehr Date: Mon, 11 Mar 2024 11:56:30 +0100 Subject: [PATCH] 1st Versionwith nginx, gunicorn and flask --- recipes-vrpmdv/COPYING.MIT | 17 + recipes-vrpmdv/README | 41 +++ recipes-vrpmdv/conf/bblayers.conf.sample | 12 + recipes-vrpmdv/conf/conf-notes.txt | 22 ++ .../conf/distro/include/exception-gplv3.inc | 27 ++ .../include/openstlinux-default-naming.inc | 32 ++ .../conf/distro/include/openstlinux.inc | 110 ++++++ .../include/st-default-distro-providers.inc | 16 + .../include/st-default-distro-rules.inc | 61 ++++ recipes-vrpmdv/conf/distro/vrpmdv.conf | 48 +++ recipes-vrpmdv/conf/layer.conf | 19 ++ recipes-vrpmdv/conf/layer.conf.sample | 2 + .../templates/default/bblayers.conf.sample | 69 ++++ .../conf/templates/default/conf-notes.txt | 9 + .../conf/templates/default/local.conf.sample | 318 ++++++++++++++++++ .../nginx/files/vrpmdv-setup.local | 11 + .../recipes-base/nginx/files/vrpmdv.local | 14 + .../nginx/nginx_% (Kopie).bbappend.old | 29 ++ .../recipes-base/nginx/nginx_%.bbappend | 28 ++ .../files/vrpmdv_setup_page.service | 20 ++ .../files/vrpmdv_setup_page.socket | 9 + .../python3-gunicorn_%.bbappend | 35 ++ .../vrpmdv-setup-page/files/vrmpdvsetupapp.py | 4 + .../files/vrmpdvsetuppage.py | 8 + .../vrpmdv-setup-page (Kopie).bb.old | 46 +++ .../vrpmdv-setup-page/vrpmdv-setup-page.bb | 45 +++ .../recipes-core/images/st-image.inc | 50 +++ .../recipes-core/images/vrpmdv-dev-image.bb | 9 + .../images/vrpmdv-extended-image.bb | 9 + .../recipes-core/images/vrpmdv-image.bb | 30 ++ .../__old/vrpmdv-base-packagegroup.bb.old | 72 ++++ .../packagegroups/packagegroup-vrpmdv-base.bb | 69 ++++ .../packagegroups/packagegroup-vrpmdv-core.bb | 11 + .../packagegroups/packagegroup-vrpmdv-dev.bb | 9 + .../packagegroup-vrpmdv-extended.bb | 11 + 35 files changed, 1322 insertions(+) create mode 100644 recipes-vrpmdv/COPYING.MIT create mode 100644 recipes-vrpmdv/README create mode 100644 recipes-vrpmdv/conf/bblayers.conf.sample create mode 100644 recipes-vrpmdv/conf/conf-notes.txt create mode 100644 recipes-vrpmdv/conf/distro/include/exception-gplv3.inc create mode 100644 recipes-vrpmdv/conf/distro/include/openstlinux-default-naming.inc create mode 100644 recipes-vrpmdv/conf/distro/include/openstlinux.inc create mode 100644 recipes-vrpmdv/conf/distro/include/st-default-distro-providers.inc create mode 100644 recipes-vrpmdv/conf/distro/include/st-default-distro-rules.inc create mode 100644 recipes-vrpmdv/conf/distro/vrpmdv.conf create mode 100644 recipes-vrpmdv/conf/layer.conf create mode 100644 recipes-vrpmdv/conf/layer.conf.sample create mode 100644 recipes-vrpmdv/conf/templates/default/bblayers.conf.sample create mode 100644 recipes-vrpmdv/conf/templates/default/conf-notes.txt create mode 100644 recipes-vrpmdv/conf/templates/default/local.conf.sample create mode 100644 recipes-vrpmdv/recipes-base/nginx/files/vrpmdv-setup.local create mode 100644 recipes-vrpmdv/recipes-base/nginx/files/vrpmdv.local create mode 100644 recipes-vrpmdv/recipes-base/nginx/nginx_% (Kopie).bbappend.old create mode 100644 recipes-vrpmdv/recipes-base/nginx/nginx_%.bbappend create mode 100644 recipes-vrpmdv/recipes-base/python3-gunicorn/files/vrpmdv_setup_page.service create mode 100644 recipes-vrpmdv/recipes-base/python3-gunicorn/files/vrpmdv_setup_page.socket create mode 100644 recipes-vrpmdv/recipes-base/python3-gunicorn/python3-gunicorn_%.bbappend create mode 100644 recipes-vrpmdv/recipes-base/vrpmdv-setup-page/files/vrmpdvsetupapp.py create mode 100644 recipes-vrpmdv/recipes-base/vrpmdv-setup-page/files/vrmpdvsetuppage.py create mode 100644 recipes-vrpmdv/recipes-base/vrpmdv-setup-page/vrpmdv-setup-page (Kopie).bb.old create mode 100644 recipes-vrpmdv/recipes-base/vrpmdv-setup-page/vrpmdv-setup-page.bb create mode 100644 recipes-vrpmdv/recipes-core/images/st-image.inc create mode 100644 recipes-vrpmdv/recipes-core/images/vrpmdv-dev-image.bb create mode 100644 recipes-vrpmdv/recipes-core/images/vrpmdv-extended-image.bb create mode 100644 recipes-vrpmdv/recipes-core/images/vrpmdv-image.bb create mode 100644 recipes-vrpmdv/recipes-core/packagegroups/__old/vrpmdv-base-packagegroup.bb.old create mode 100644 recipes-vrpmdv/recipes-core/packagegroups/packagegroup-vrpmdv-base.bb create mode 100644 recipes-vrpmdv/recipes-core/packagegroups/packagegroup-vrpmdv-core.bb create mode 100644 recipes-vrpmdv/recipes-core/packagegroups/packagegroup-vrpmdv-dev.bb create mode 100644 recipes-vrpmdv/recipes-core/packagegroups/packagegroup-vrpmdv-extended.bb diff --git a/recipes-vrpmdv/COPYING.MIT b/recipes-vrpmdv/COPYING.MIT new file mode 100644 index 0000000..fb950dc --- /dev/null +++ b/recipes-vrpmdv/COPYING.MIT @@ -0,0 +1,17 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/recipes-vrpmdv/README b/recipes-vrpmdv/README new file mode 100644 index 0000000..22e907d --- /dev/null +++ b/recipes-vrpmdv/README @@ -0,0 +1,41 @@ +This README file contains information on the contents of the vrpmdv-webserver layer. + +Please see the corresponding sections below for details. + +Dependencies +============ + + URI: + branch: + + URI: + branch: + + . + . + . + +Patches +======= + +Please submit any patches against the vrpmdv-webserver layer to the xxxx mailing list (xxxx@zzzz.org) +and cc: the maintainer: + +Maintainer: XXX YYYYYY + +Table of Contents +================= + + I. Adding the vrpmdv-webserver layer to your build + II. Misc + + +I. Adding the vrpmdv-webserver layer to your build +================================================= + +Run 'bitbake-layers add-layer vrpmdv-webserver' + +II. Misc +======== + +--- replace with specific information about the vrpmdv-webserver layer --- diff --git a/recipes-vrpmdv/conf/bblayers.conf.sample b/recipes-vrpmdv/conf/bblayers.conf.sample new file mode 100644 index 0000000..f4832e0 --- /dev/null +++ b/recipes-vrpmdv/conf/bblayers.conf.sample @@ -0,0 +1,12 @@ +BBPATH = "${TOPDIR}" +BBFILES ?= "" + +BBLAYERS ?= " \ + ##OEROOT##/meta \ + ##OEROOT##/meta-poky \ + ##OEROOT##/meta-yocto-bsp \ + ##OEROOT##/vrpmdv-webserver \ + ##OEROOT##/meta-openembedded/meta-oe \ + ##OEROOT##/meta-openembedded/meta-python \ + ##OEROOT##/meta-openembedded/meta-webserver \ + " diff --git a/recipes-vrpmdv/conf/conf-notes.txt b/recipes-vrpmdv/conf/conf-notes.txt new file mode 100644 index 0000000..61e2ff6 --- /dev/null +++ b/recipes-vrpmdv/conf/conf-notes.txt @@ -0,0 +1,22 @@ +### Shell environment set up for builds. ### + +You can now run 'bitbake ' + +Common targets are: + core-image-minimal + core-image-full-cmdline + core-image-sato + core-image-weston + meta-toolchain + meta-ide-support + +#Targets available from golemos layer: + vrpmdv-image + vrpmdv-extended-image + vrpmdv-dev-image + +Other commonly useful commands are: + - 'devtool' and 'recipetool' handle common recipe tasks + - 'bitbake-layers' handles common layer tasks + - 'oe-pkgdata-util' handles common target package tasks + diff --git a/recipes-vrpmdv/conf/distro/include/exception-gplv3.inc b/recipes-vrpmdv/conf/distro/include/exception-gplv3.inc new file mode 100644 index 0000000..7c6b419 --- /dev/null +++ b/recipes-vrpmdv/conf/distro/include/exception-gplv3.inc @@ -0,0 +1,27 @@ +#@DESCRIPTION: ST GPLv3 exception + +#-------------------------- +# License settings +# +# We dont want (L)GPL-3.0+ +INCOMPATIBLE_LICENSE = "GPLv3.0 GPLv3 GPL-3.0 GPLv3+ LGPLv3.0 LGPLv3 LGPL-3.0 LGPLv3+" + +OPENSTLINUX_ALLOW_GPLv3 = "gettext" +# for alsa-utils: +OPENSTLINUX_ALLOW_GPLv3 =+ " gettext bash " +# for systemd +OPENSTLINUX_ALLOW_GPLv3 =+ " bash readline " +# for udev: +OPENSTLINUX_ALLOW_GPLv3 =+ " gawk coreutils gdbm m4 " +# for bluez +OPENSTLINUX_ALLOW_GPLv3 =+ " python3-pycairo " +# for framework-tools-ui +OPENSTLINUX_ALLOW_GPLv3 =+ " grep dosfstools elfutils cpio gzip which " + +OPENSTLINUX_ALLOW_GPLv3 += "${@bb.utils.contains('DISTRO_FEATURES', 'tpm', 'nano msmtp', '', d)}" + +INCOMPATIBLE_LICENSE_EXCEPTIONS:LGPL-3.0-or-later = "${OPENSTLINUX_ALLOW_GPLv3}" +INCOMPATIBLE_LICENSE_EXCEPTIONS:LGPL-3.0-only = "${OPENSTLINUX_ALLOW_GPLv3}" +INCOMPATIBLE_LICENSE_EXCEPTIONS:GPL-3.0-only = "${OPENSTLINUX_ALLOW_GPLv3}" +INCOMPATIBLE_LICENSE_EXCEPTIONS:GPL-3.0-or-later = "${OPENSTLINUX_ALLOW_GPLv3}" + diff --git a/recipes-vrpmdv/conf/distro/include/openstlinux-default-naming.inc b/recipes-vrpmdv/conf/distro/include/openstlinux-default-naming.inc new file mode 100644 index 0000000..081577d --- /dev/null +++ b/recipes-vrpmdv/conf/distro/include/openstlinux-default-naming.inc @@ -0,0 +1,32 @@ +#@DESCRIPTION: openstlinux default distro naming + +# Init OPENSTLINUX_RELEASE flag to snapshot +OPENSTLINUX_RELEASE ??= "snapshot" + +DISTRO = "openstlinux" +DISTRO_NAME = "ST OpenSTLinux (A Yocto Project Based Distro)" +DISTRO_VERSION = "4.2.2-${@bb.utils.contains('OPENSTLINUX_RELEASE', 'snapshot', 'snapshot-${DATE}', '${OPENSTLINUX_RELEASE}', d)}" +# Don't include the DATE variable in the sstate package signatures +DISTRO_VERSION[vardepsexclude] = "DATE" +DISTRO_CODENAME = "mickledore" + +# Warning: SDK_VENDOR does not contains a valid OS/ARCH name like : linux, arm +SDK_VENDOR = "-ostl_sdk" +SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}" +# Don't include the DATE variable in the sstate package signatures +SDK_VERSION[vardepsexclude] = "DATE" + +MAINTAINER = "Christophe Priouzeau " + +# Warning: TARGET_VENDOR does not contains a valid OS/ARCH name like : linux, arm +STM32MP_TARGETVENDOR ?= "-ostl" +TARGET_VENDOR = "${STM32MP_TARGETVENDOR}" + +# Append distro name to each image name +IMAGE_BASENAME:append = "-${DISTRO}" + +# Add image name for generated SDK and set default SDK install folder +SDK_NAME = "${IMAGE_LINK_NAME}-${SDK_ARCH}" +SDKPATHINSTALL = "/opt/st/${MACHINE}/${SDK_VERSION}" +# Don't include the DATE variable in the sstate package signatures +SDKPATHINSTALL[vardepsexclude] = "DATE" diff --git a/recipes-vrpmdv/conf/distro/include/openstlinux.inc b/recipes-vrpmdv/conf/distro/include/openstlinux.inc new file mode 100644 index 0000000..dcaa6f7 --- /dev/null +++ b/recipes-vrpmdv/conf/distro/include/openstlinux.inc @@ -0,0 +1,110 @@ +# Distribution definition for openstlinux + +# from dev manual: +# Your configuration file needs to set the following variables: +# +# DISTRO_NAME [required] +# DISTRO_VERSION [required] +# DISTRO_FEATURES [required if creating from scratch] +# DISTRO_EXTRA_RDEPENDS [optional] +# DISTRO_EXTRA_RRECOMMENDS [optional] +# TCLIBC [required if creating from scratch] + +LOCALCONF_VERSION = "2" +LAYER_CONF_VERSION ?= "7" + +# ========================================================================= +# Set default distro naming +# ========================================================================= +require openstlinux-default-naming.inc + +# ========================================================================= +# Enable uninative support +# ========================================================================= +require conf/distro/include/no-static-libs.inc +require conf/distro/include/yocto-uninative.inc +INHERIT += "uninative" + +# ========================================================================= +# DISTRO features +# ========================================================================= +DISTRO_FEATURES = "alsa" +DISTRO_FEATURES += "argp" +DISTRO_FEATURES += "ext2" +DISTRO_FEATURES += "ext4" +DISTRO_FEATURES += "largefile" +DISTRO_FEATURES += "ipv4" +DISTRO_FEATURES += "ipv6" +DISTRO_FEATURES += "multiarch" +DISTRO_FEATURES += "pci" +DISTRO_FEATURES += "wifi" +DISTRO_FEATURES += "nfs" +DISTRO_FEATURES += "usbgadget" +DISTRO_FEATURES += "usbhost" +DISTRO_FEATURES += "xattr" +DISTRO_FEATURES += "zeroconf" +DISTRO_FEATURES += "bluetooth" +DISTRO_FEATURES += "bluez5" + +# add support of gstreamer +DISTRO_FEATURES:append = " gstreamer " + +# add support of optee +DISTRO_FEATURES:append = " optee " + +# add support of splashscreen +DISTRO_FEATURES:append = " splashscreen " + +# add support of wayland +DISTRO_FEATURES:append = " wayland pam " + +# add support of X11 +DISTRO_FEATURES:append = " x11 " + +# add support of KDE (since OE thud version) +DISTRO_FEATURES:append = " kde " + +# add support of systemd +DISTRO_FEATURES:append = " systemd " + +# add support of efi +DISTRO_FEATURES:append = " efi " + +# add support of InitRD installation package +DISTRO_FEATURES:append = " initrd " + +# add support of autoresize through InitRD +DISTRO_FEATURES:append = " autoresize " + +# add support of tpm2 +#DISTRO_FEATURES:append = " tpm2 " + +# Disabling pulseaudio +#DISTRO_FEATURES_BACKFILL_CONSIDERED += "pulseaudio" +DISTRO_FEATURES:append = "pulseaudio" + +# Disabling sysvinit +DISTRO_FEATURES_BACKFILL_CONSIDERED += "sysvinit" + +VIRTUAL-RUNTIME_init_manager = "systemd" +VIRTUAL-RUNTIME_initscripts = "systemd-compat-units" + +# ========================================================================= +# Preferred version +# ========================================================================= + +# v4l-utils +#PREFERRED_VERSION_v4l-utils ?= "1.6.2" + +# ========================================================================= +# IMAGE addons +# ========================================================================= +IMAGE_LINGUAS = "en-us en-gb" + +LICENSE_FLAGS_ACCEPTED += " non-commercial commercial" + +# X11 addons +DISTRO_EXTRA_RDEPENDS:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xf86-video-modesetting', '', d)} " + +# INITRD addons to image +DISTRO_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('COMBINED_FEATURES', 'initrd', '${INITRD_PACKAGE}', '', d)} " diff --git a/recipes-vrpmdv/conf/distro/include/st-default-distro-providers.inc b/recipes-vrpmdv/conf/distro/include/st-default-distro-providers.inc new file mode 100644 index 0000000..c19739f --- /dev/null +++ b/recipes-vrpmdv/conf/distro/include/st-default-distro-providers.inc @@ -0,0 +1,16 @@ +#@DESCRIPTION: ST default distro providers + +PREFERRED_PROVIDER_libevent = "libevent-fb" +PREFERRED_PROVIDER_jpeg = "libjpeg-turbo" +PREFERRED_PROVIDER_jpeg-native = "libjpeg-turbo-native" + +#-------------------------- +# Preferred provider +# for openvt tools +PREFERRED_PROVIDER_console-tools = "kbd" + +#-------------------------- +# Preferred provider +# splash +SPLASH = "${@bb.utils.contains('COMBINED_FEATURES', 'splashscreen', 'psplash-drm', '', d)}" +PREFERRED_PROVIDER_virtual/psplash = "${@bb.utils.contains('COMBINED_FEATURES', 'splashscreen', 'psplash-drm', '', d)}" diff --git a/recipes-vrpmdv/conf/distro/include/st-default-distro-rules.inc b/recipes-vrpmdv/conf/distro/include/st-default-distro-rules.inc new file mode 100644 index 0000000..f8060e9 --- /dev/null +++ b/recipes-vrpmdv/conf/distro/include/st-default-distro-rules.inc @@ -0,0 +1,61 @@ +#@DESCRIPTION: ST default distro rules + +# Set common distrooverrides for all ST distro +DISTROOVERRIDES =. "openstlinuxcommon:" + +#-------------------------- +# Mirror settings +# +YOCTOPROJECT_MIRROR_URL = "http://downloads.yoctoproject.org/mirror/sources/" + +MIRRORS =+ "\ +ftp://.*/.* ${YOCTOPROJECT_MIRROR_URL} \n \ +http://.*/.* ${YOCTOPROJECT_MIRROR_URL} \n \ +https://.*/.* ${YOCTOPROJECT_MIRROR_URL} \n" + +INHERIT += "own-mirrors" +SOURCE_MIRROR_URL ??= "${YOCTOPROJECT_MIRROR_URL}" + +#-------------------------- +# The CONNECTIVITY_CHECK_URI's are used to test whether we can succesfully +# fetch from the network (and warn you if not). +# URI's to check can be set in the CONNECTIVITY_CHECK_URIS variable +# using the same syntax as for SRC_URI. If the variable is not set +# the check is skipped +# +CONNECTIVITY_CHECK_URIS ?= "https://www.example.com/" + +#-------------------------- +# OELAYOUT_ABI allows us to notify users when the format of TMPDIR changes in +# an incompatible way. Such changes should usually be detailed in the commit +# that breaks the format and have been previously discussed on the mailing list +# with general agreement from the core team. +# +OELAYOUT_ABI = "12" + +#-------------------------- +# Add the manifest and the licenses file on image generated +COPY_LIC_MANIFEST = "1" + +#-------------------------- +# Configure InitRD image installation package +INITRD_PACKAGE = "st-initrd" +# Init default InitRD image to ST resize image +INITRD_IMAGE ?= "${@bb.utils.contains('COMBINED_FEATURES', 'autoresize', 'st-image-resize-initrd', '', d)}" + +#-------------------------- +# Tune build config display +# +BUILDCFG_VARS += "DISTRO_CODENAME" +BUILDCFG_VARS += "${@'ACCEPT_EULA_' + d.getVar('MACHINE')}" +BUILDCFG_VARS += "GCCVERSION" +BUILDCFG_VARS += "PREFERRED_PROVIDER_virtual/kernel" + +#-------------------------- +# Configure build info file for rootfs availability +# +DISTRO_EXTRA_RDEPENDS:append = " build-info-openstlinux " +# Set IMAGE_BUILDINFO_FILE to configure the expected file name +IMAGE_BUILDINFO_FILE ?= "${sysconfdir}/build" +# Avoid conflict with image-buildinfo class that may feed same file on rootfs +INHERIT:remove = "${@bb.utils.contains('DISTRO_EXTRA_RDEPENDS', 'build-info-openstlinux', 'image-buildinfo', '', d)}" diff --git a/recipes-vrpmdv/conf/distro/vrpmdv.conf b/recipes-vrpmdv/conf/distro/vrpmdv.conf new file mode 100644 index 0000000..cd91333 --- /dev/null +++ b/recipes-vrpmdv/conf/distro/vrpmdv.conf @@ -0,0 +1,48 @@ +# Distro Layer configuration +# include and overwrite default poky distro +#@NAME: vrmpdv +#@DESCRIPTION: OpenSTLinux featuring vrpm Device - no X11, no Wayland + + +# require conf/distro/poky.conf + +require include/st-default-distro-rules.inc +require include/st-default-distro-providers.inc +require include/openstlinux.inc + + +# ========================================================================= +# Distribution definition for: st-openstlinux-weston- +# ========================================================================= +DISTRO = "vrpmdv" +DISTRO_NAME = "VRPMDV-Linux" +DISTRO_VERSION = "1.0" +# MAINTAINER = "markus@malehr.de" + +# ========================================================================= +# Do not activate this because then the tsv file creation failed +# ========================================================================= +# TARGET_VENDOR = "-markuslehr" + +DISTRO_FEATURES_BACKFILL_CONSIDERED += "sysvinit" +VIRTUAL-RUNTIME_init_manager = "systemd" +VIRTUAL-RUNTIME_initscripts = "systemd-compat-units" + + +# Override these in poky based distros +VRPMDV_WEB_DEFAULT_EXTRA_RDEPENDS = "packagegroup-core-boot" +VRPMDV_WEB_DEFAULT_EXTRA_RRECOMMENDS = "kernel-module-af-packet" + +# ========================================================================= +# DISTRO features +# ========================================================================= + +DISTRO_EXTRA_RDEPENDS += " ${VRPMDV_WEB_DEFAULT_EXTRA_RDEPENDS}" +DISTRO_EXTRA_RRECOMMENDS += " ${VRPMDV_WEB_DEFAULT_EXTRA_RRECOMMENDS}" + +DISTRO_FEATURES ?= " ${DISTRO_FEATURES_LIBC} " +DISTRO_FEATURES:remove = " wayland x11 " +DISTRO_FEATURES:remove = " x11 " + + + diff --git a/recipes-vrpmdv/conf/layer.conf b/recipes-vrpmdv/conf/layer.conf new file mode 100644 index 0000000..f1bf67a --- /dev/null +++ b/recipes-vrpmdv/conf/layer.conf @@ -0,0 +1,19 @@ +DISTRO ?= "vrmpdv" +# 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 += "vrpmdv" +BBFILE_PATTERN_vrpmdv = "^${LAYERDIR}/" +BBFILE_PRIORITY_vrpmdv = "6" + +LAYERDEPENDS_vrpmdv = "core" +LAYERSERIES_COMPAT_vrpmdv = "mickledore" + +IMAGE_INSTALL += "nginx" +IMAGE_INSTALL += "python3-gunicorn" +IMAGE_INSTALL += "python3-flask" +IMAGE_INSTALL += "vrpmdv-setup-page" diff --git a/recipes-vrpmdv/conf/layer.conf.sample b/recipes-vrpmdv/conf/layer.conf.sample new file mode 100644 index 0000000..24558ae --- /dev/null +++ b/recipes-vrpmdv/conf/layer.conf.sample @@ -0,0 +1,2 @@ +MACHINE ??= "vrmp-device" +DISTRO ?= "vrmpdv-web" diff --git a/recipes-vrpmdv/conf/templates/default/bblayers.conf.sample b/recipes-vrpmdv/conf/templates/default/bblayers.conf.sample new file mode 100644 index 0000000..d0571b3 --- /dev/null +++ b/recipes-vrpmdv/conf/templates/default/bblayers.conf.sample @@ -0,0 +1,69 @@ +# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf +# changes incompatibly +LCONF_VERSION = "7" + +BBPATH = "${TOPDIR}" +BBFILES ?= "" +OEROOT := "${@os.path.abspath(os.path.dirname(d.getVar('FILE')) + '/../..')}" + +#-------------------------- +# Layers var definition for buildsystem +# +OPENEMBEDDED = "${OPENEMBEDDED_NON_REMOVABLE}" + +OPENEMBEDDED_NON_REMOVABLE = "${OEROOT}/layers/openembedded-core/meta" + +POKY = "${POKY_NON_REMOVABLE}" +POKY += "${OEROOT}/layers/poky/meta-yocto-bsp" + +POKY_NON_REMOVABLE = "${OEROOT}/layers/poky/meta" + +#-------------------------- +# +BASELAYERS ?= " \ + ${OEROOT}/layers/meta-openembedded/meta-gnome \ + ${OEROOT}/layers/meta-openembedded/meta-initramfs \ + ${OEROOT}/layers/meta-openembedded/meta-multimedia \ + ${OEROOT}/layers/meta-openembedded/meta-networking \ + ${OEROOT}/layers/meta-openembedded/meta-webserver \ + ${OEROOT}/layers/meta-openembedded/meta-filesystems \ + ${OEROOT}/layers/meta-openembedded/meta-perl \ + ${OEROOT}/layers/meta-st/meta-st-openstlinux/recipes-vrpmdv \ +" + +BBLAYERS_NON_REMOVABLE ?= " \ + ${@'${OPENEMBEDDED_NON_REMOVABLE}' if os.path.isfile('${OEROOT}/layers/openembedded-core/meta/conf/layer.conf') else '${POKY_NON_REMOVABLE}'} \ + " + +BSPLAYER ?= " \ + ${@'${OEROOT}/layers/meta-st/meta-st-cannes2' if os.path.isfile('${OEROOT}/layers/meta-st/meta-st-cannes2/conf/layer.conf') else ''} \ + ${@'${OEROOT}/layers/meta-st/meta-st-stm32mp' if os.path.isfile('${OEROOT}/layers/meta-st/meta-st-stm32mp/conf/layer.conf') else ''} \ + " + +ADDONSLAYERS = "" +# linaro +ADDONSLAYERS += "${@'${OEROOT}/layers/meta-linaro/meta-linaro' if os.path.isfile('${OEROOT}/layers/meta-linaro/meta-linaro/conf/layer.conf') else ''}" +ADDONSLAYERS += "${@'${OEROOT}/layers/meta-linaro/meta-linaro-toolchain' if os.path.isfile('${OEROOT}/layers/meta-linaro/meta-linaro-toolchain/conf/layer.conf') else ''}" +ADDONSLAYERS += "${@'${OEROOT}/layers/meta-openembedded/meta-networking' if os.path.isfile('${OEROOT}/layers/meta-linaro/meta-linaro/conf/layer.conf') else ''}" + +# Qt5 +ADDONSLAYERS += "${@'${OEROOT}/layers/meta-qt5' if os.path.isfile('${OEROOT}/layers/meta-qt5/conf/layer.conf') else ''}" + +# Security layer +ADDONSLAYERS += " \ + ${@'${OEROOT}/layers/meta-security \ + ${OEROOT}/layers/meta-security/meta-tpm' \ + if os.path.isfile('${OEROOT}/layers/meta-security/conf/layer.conf') else ''} \ + " + +# specific to framework +FRAMEWORKLAYERS += "${@'${OEROOT}/layers/meta-st/meta-st-openstlinux' if os.path.isfile('${OEROOT}/layers/meta-st/meta-st-openstlinux/conf/layer.conf') else ''}" + +# add BSP layer +BBLAYERS += " \ + ${BASELAYERS} \ + ${BSPLAYER} \ + ${ADDONSLAYERS} \ + ${FRAMEWORKLAYERS} \ + ${@'${OPENEMBEDDED}' if os.path.isfile('${OEROOT}/layers/openembedded-core/meta/conf/layer.conf') else '${POKY}'} \ + " diff --git a/recipes-vrpmdv/conf/templates/default/conf-notes.txt b/recipes-vrpmdv/conf/templates/default/conf-notes.txt new file mode 100644 index 0000000..8cd70fe --- /dev/null +++ b/recipes-vrpmdv/conf/templates/default/conf-notes.txt @@ -0,0 +1,9 @@ +Available images for OpenSTLinux layers are: + + - Official OpenSTLinux images: + st-image-weston - OpenSTLinux weston image with basic Wayland support (if enable in distro) + + - Other OpenSTLinux images: + - Supported images: + st-image-core - OpenSTLinux core image + diff --git a/recipes-vrpmdv/conf/templates/default/local.conf.sample b/recipes-vrpmdv/conf/templates/default/local.conf.sample new file mode 100644 index 0000000..12dbe61 --- /dev/null +++ b/recipes-vrpmdv/conf/templates/default/local.conf.sample @@ -0,0 +1,318 @@ +# +# This file is your local configuration file and is where all local user settings +# are placed. The comments in this file give some guide to the options a new user +# to the system might want to change but pretty much any configuration option can +# be set in this file. More adventurous users can look at +# local.conf.sample.extended which contains other examples of configuration which +# can be placed in this file but new users likely won't need any of them +# initially. There's also site.conf.sample which contains examples of site specific +# information such as proxy server addresses. +# +# Lines starting with the '#' character are commented out and in some cases the +# default values are provided as comments to show people example syntax. Enabling +# the option is a question of removing the # character and making any change to the +# variable as required. + +# +# Machine Selection +# +# You need to select a specific machine to target the build with. There are a selection +# of emulated machines available which can boot and run in the QEMU emulator: +# +#MACHINE ?= "qemuarm" +#MACHINE ?= "qemuarm64" +#MACHINE ?= "qemumips" +#MACHINE ?= "qemumips64" +#MACHINE ?= "qemuppc" +#MACHINE ?= "qemux86" +#MACHINE ?= "qemux86-64" +# +# This sets the default machine to be qemux86-64 if no other machine is selected: +MACHINE ??= "qemux86-64" + +# These are some of the more commonly used values. Looking at the files in the +# meta/conf/machine directory, or the conf/machine directory of any additional layers +# you add in will show all the available machines. + +# +# Default policy config +# +# The distribution setting controls which policy settings are used as defaults. +# The default value is fine for general Yocto project use, at least initially. +# Ultimately when creating custom policy, people will likely end up subclassing +# these defaults. +# +# This sets the default distribution to be nodistro if no other distribution is selected: +DISTRO ??= "nodistro" + +# +# Where to place downloads +# +# During a first build the system will download many different source code tarballs +# from various upstream projects. This can take a while, particularly if your network +# connection is slow. These are all stored in DL_DIR. When wiping and rebuilding you +# can preserve this directory to speed up this part of subsequent builds. This directory +# is safe to share between multiple builds on the same machine too. +# +# The default is a downloads directory under TOPDIR which is the build directory. +# +#DL_DIR ?= "${TOPDIR}/downloads" + +# +# Where to place shared-state files +# +# BitBake has the capability to accelerate builds based on previously built output. +# This is done using "shared state" files which can be thought of as cache objects +# and this option determines where those files are placed. +# +# You can wipe out TMPDIR leaving this directory intact and the build would regenerate +# from these files if no changes were made to the configuration. If changes were made +# to the configuration, only shared state files where the state was still valid would +# be used (done using checksums). +# +# The default is a sstate-cache directory under TOPDIR. +# +#SSTATE_DIR ?= "${TOPDIR}/sstate-cache" + +# +# Where to place the build output +# +# This option specifies where the bulk of the building work should be done and +# where BitBake should place its temporary files and output. Keep in mind that +# this includes the extraction and compilation of many applications and the toolchain +# which can use Gigabytes of hard disk space. +# +# The default is a tmp directory under TOPDIR. +# +#TMPDIR = "${TOPDIR}/tmp" + + +# +# Package Management configuration +# +# This variable lists which packaging formats to enable. Multiple package backends +# can be enabled at once and the first item listed in the variable will be used +# to generate the root filesystems. +# Options are: +# - 'package_deb' for debian style deb files +# - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) +# - 'package_rpm' for rpm style packages +# E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" +# We default to ipk: +PACKAGE_CLASSES ?= "package_ipk" + +# +# SDK target architecture +# +# This variable specifies the architecture to build SDK items for and means +# you can build the SDK packages for architectures other than the machine you are +# running the build on (i.e. building i686 packages on an x86_64 host). +# Supported values are i686, x86_64, aarch64 +#SDKMACHINE ?= "i686" + +# +# Extra image configuration defaults +# +# The EXTRA_IMAGE_FEATURES variable allows extra packages to be added to the generated +# images. Some of these options are added to certain image types automatically. The +# variable can contain the following options: +# "dbg-pkgs" - add -dbg packages for all installed packages +# (adds symbol information for debugging/profiling) +# "src-pkgs" - add -src packages for all installed packages +# (adds source code for debugging) +# "dev-pkgs" - add -dev packages for all installed packages +# (useful if you want to develop against libs in the image) +# "ptest-pkgs" - add -ptest packages for all ptest-enabled packages +# (useful if you want to run the package test suites) +# "tools-sdk" - add development tools (gcc, make, pkgconfig etc.) +# "tools-debug" - add debugging tools (gdb, strace) +# "eclipse-debug" - add Eclipse remote debugging support +# "tools-profile" - add profiling tools (oprofile, lttng, valgrind) +# "tools-testapps" - add useful testing tools (ts_print, aplay, arecord etc.) +# "debug-tweaks" - make an image suitable for development +# e.g. ssh root access has a blank password +# There are other application targets that can be used here too, see +# meta/classes-recipe/image.bbclass and +# meta/classes-recipe/core-image.bbclass for more details. +# We default to enabling the debugging tweaks. +EXTRA_IMAGE_FEATURES ?= "debug-tweaks" + +# +# Additional image features +# +# The following is a list of additional classes to use when building images which +# enable extra features. Some available options which can be included in this variable +# are: +# - 'buildstats' collect build statistics +USER_CLASSES ?= "buildstats" + + +# +# Runtime testing of images +# +# The build system can test booting virtual machine images under qemu (an emulator) +# after any root filesystems are created and run tests against those images. It can also +# run tests against any SDK that are built. To enable this uncomment these lines. +# See meta/classes-recipe/test{image,sdk}.bbclass for further details. +#IMAGE_CLASSES += "testimage testsdk" +#TESTIMAGE_AUTO:qemuall = "1" + +# +# Interactive shell configuration +# +# Under certain circumstances the system may need input from you and to do this it +# can launch an interactive shell. It needs to do this since the build is +# multithreaded and needs to be able to handle the case where more than one parallel +# process may require the user's attention. The default is iterate over the available +# terminal types to find one that works. +# +# Examples of the occasions this may happen are when resolving patches which cannot +# be applied, to use the devshell or the kernel menuconfig +# +# Supported values are auto, gnome, xfce, rxvt, screen, konsole (KDE 3.x only), none +# Note: currently, Konsole support only works for KDE 3.x due to the way +# newer Konsole versions behave +#OE_TERMINAL = "auto" +# By default disable interactive patch resolution (tasks will just fail instead): +PATCHRESOLVE = "noop" + +# +# Disk Space Monitoring during the build +# +# Monitor the disk space during the build. If there is less that 1GB of space or less +# than 100K inodes in any key build location (TMPDIR, DL_DIR, SSTATE_DIR), gracefully +# shutdown the build. If there is less than 100MB or 1K inodes, perform a hard halt +# of the build. The reason for this is that running completely out of space can corrupt +# files and damages the build in ways which may not be easily recoverable. +# It's necessary to monitor /tmp, if there is no space left the build will fail +# with very exotic errors. +BB_DISKMON_DIRS ??= "\ + STOPTASKS,${TMPDIR},1G,100K \ + STOPTASKS,${DL_DIR},1G,100K \ + STOPTASKS,${SSTATE_DIR},1G,100K \ + STOPTASKS,/tmp,100M,100K \ + HALT,${TMPDIR},100M,1K \ + HALT,${DL_DIR},100M,1K \ + HALT,${SSTATE_DIR},100M,1K \ + HALT,/tmp,10M,1K" + +# +# Shared-state files from other locations +# +# As mentioned above, shared state files are prebuilt cache data objects which can be +# used to accelerate build time. This variable can be used to configure the system +# to search other mirror locations for these objects before it builds the data itself. +# +# This can be a filesystem directory, or a remote url such as https or ftp. These +# would contain the sstate-cache results from previous builds (possibly from other +# machines). This variable works like fetcher MIRRORS/PREMIRRORS and points to the +# cache locations to check for the shared objects. +# NOTE: if the mirror uses the same structure as SSTATE_DIR, you need to add PATH +# at the end as shown in the examples below. This will be substituted with the +# correct path within the directory structure. +#SSTATE_MIRRORS ?= "\ +#file://.* https://someserver.tld/share/sstate/PATH;downloadfilename=PATH \ +#file://.* file:///some/local/dir/sstate/PATH" + + +# +# Qemu configuration +# +# By default native qemu will build with a builtin VNC server where graphical output can be +# seen. The line below enables the SDL UI frontend too. +PACKAGECONFIG:append:pn-qemu-system-native = " sdl" +# By default libsdl2-native will be built, if you want to use your host's libSDL instead of +# the minimal libsdl built by libsdl2-native then uncomment the ASSUME_PROVIDED line below. +#ASSUME_PROVIDED += "libsdl2-native" + +# You can also enable the Gtk UI frontend, which takes somewhat longer to build, but adds +# a handy set of menus for controlling the emulator. +#PACKAGECONFIG:append:pn-qemu-system-native = " gtk+" + +# +# Hash Equivalence +# +# Enable support for automatically running a local hash equivalence server and +# instruct bitbake to use a hash equivalence aware signature generator. Hash +# equivalence improves reuse of sstate by detecting when a given sstate +# artifact can be reused as equivalent, even if the current task hash doesn't +# match the one that generated the artifact. +# +# A shared hash equivalent server can be set with ":" format +# +#BB_HASHSERVE = "auto" +#BB_SIGNATURE_HANDLER = "OEEquivHash" + +# +# Memory Resident Bitbake +# +# Bitbake's server component can stay in memory after the UI for the current command +# has completed. This means subsequent commands can run faster since there is no need +# for bitbake to reload cache files and so on. Number is in seconds, after which the +# server will shut down. +# +#BB_SERVER_TIMEOUT = "60" + +# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to +# track the version of this file when it was generated. This can safely be ignored if +# this doesn't mean anything to you. +CONF_VERSION = "2" + +# ========================================================================= +# ST SPecific +# ========================================================================= +# + +# Set GLIBC_GENERATE_LOCALES to the locales you wish to generate should you not +# wish to perform the time-consuming step of generating all LIBC locales. +# NOTE: If removing en_US.UTF-8 you will also need to uncomment, and set +# appropriate value for IMAGE_LINGUAS. +# WARNING: this may break localisation! +GLIBC_GENERATE_LOCALES = "en_GB.UTF-8 en_US.UTF-8" +IMAGE_LINGUAS ?= "en-gb" + +# Additional image generation features +# +# The following is a list of classes to import to use in the generation of images +# currently an example class is image_types_uboot +# IMAGE_CLASSES = " image_types_uboot" + +# Support of devshell +INHERIT += "devshell" + +# Remove the old image before the new one generated to save disk space +RM_OLD_IMAGE = "1" + +# Nice debug data +INHERIT += "buildhistory" +BUILDHISTORY_COMMIT = "1" + +# Clean up working directory after build +INHERIT += "rm_work" + +# To generate debug image with all symbol +#IMAGE_GEN_DEBUGFS = "1" + +# force the usage of debian package +PACKAGE_CLASSES = "package_deb" + +# To enable archiver for recipes that are configured +#ST_ARCHIVER_ENABLE = "1" + +# Setup environment for builds binary reproducibility +REPRODUCIBLE_TIMESTAMP_ROOTFS = "" + +# Setup eSDK +SDK_EXT_TYPE="minimal" +SDK_INCLUDE_TOOLCHAIN="1" + +# Enable PR server to avoid version-going-backward issue +PRSERV_HOST = "localhost:0" + +# ========================================================================= +# Configure STM32MP default version to github +# ========================================================================= +#STM32MP_SOURCE_SELECTION:pn-linux-stm32mp = "github" +#STM32MP_SOURCE_SELECTION:pn-optee-os-stm32mp = "github" +#STM32MP_SOURCE_SELECTION:pn-tf-a-stm32mp = "github" +#STM32MP_SOURCE_SELECTION:pn-u-boot-stm32mp = "github" diff --git a/recipes-vrpmdv/recipes-base/nginx/files/vrpmdv-setup.local b/recipes-vrpmdv/recipes-base/nginx/files/vrpmdv-setup.local new file mode 100644 index 0000000..11b787e --- /dev/null +++ b/recipes-vrpmdv/recipes-base/nginx/files/vrpmdv-setup.local @@ -0,0 +1,11 @@ +server { + listen 80 default_server; + listen [::]:80 default_server; + + server_name vrpmdv-setup.local; + + location / { + proxy_pass http://unix:/run/vrpmdv_setup_page.sock; + } +} + diff --git a/recipes-vrpmdv/recipes-base/nginx/files/vrpmdv.local b/recipes-vrpmdv/recipes-base/nginx/files/vrpmdv.local new file mode 100644 index 0000000..eedb7da --- /dev/null +++ b/recipes-vrpmdv/recipes-base/nginx/files/vrpmdv.local @@ -0,0 +1,14 @@ +server { + listen 80 default_server; + listen [::]:80 default_server; + + root /var/www/vrpmdv.local; + index index.html index.htm; + + server_name vrpmdv.local; + + location / { + try_files $uri $uri/ =404; + } +} + diff --git a/recipes-vrpmdv/recipes-base/nginx/nginx_% (Kopie).bbappend.old b/recipes-vrpmdv/recipes-base/nginx/nginx_% (Kopie).bbappend.old new file mode 100644 index 0000000..1c819f2 --- /dev/null +++ b/recipes-vrpmdv/recipes-base/nginx/nginx_% (Kopie).bbappend.old @@ -0,0 +1,29 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/files:" +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" + +DEPENDS = "systemd" + +SRC_URI += " \ + file://vrpmdv.local \ + file://vrpmdv-setup.local \ +" + +SYSTEMD_AUTO_ENABLE = "enable" +SYSTEMD_SERVICE:${PN} = "nginx.service" + +EXTRA_OECONF = "\ + --without-http_rewrite_module \ +" + +# --without-pcre \ + + +do_install:append () { + install -d ${D}${sysconfdir}/nginx/sites-available + + install -D -m 644 ${WORKDIR}/vrpmdv.local ${D}${sysconfdir}nginx/sites-available/ + install -D -m 644 ${WORKDIR}/vrpmdv-setup.local ${D}${sysconfdir}/nginx/sites-available/ + + rm -rf ${D}${systemd_unitdir}/system/nginx/sites-enabled/default_server + ln -s ${sysconfdir}/nginx/sites-available/vrpmdv-setup.local ${D}${sysconfdir}/nginx/sites-enabled/ +} diff --git a/recipes-vrpmdv/recipes-base/nginx/nginx_%.bbappend b/recipes-vrpmdv/recipes-base/nginx/nginx_%.bbappend new file mode 100644 index 0000000..1034aa9 --- /dev/null +++ b/recipes-vrpmdv/recipes-base/nginx/nginx_%.bbappend @@ -0,0 +1,28 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/files:" +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" + +DEPENDS = "systemd" + +SRC_URI += " \ + file://vrpmdv.local \ + file://vrpmdv-setup.local \ +" + +SYSTEMD_AUTO_ENABLE = "enable" +SYSTEMD_SERVICE:${PN} = "nginx.service" + +EXTRA_OECONF = "\ + --without-http_rewrite_module \ +" + + +do_install:append () { + install -d ${D}${sysconfdir}/nginx/sites-available + + install -D -m 644 ${WORKDIR}/vrpmdv.local ${D}${sysconfdir}/nginx/sites-available/ + install -D -m 644 ${WORKDIR}/vrpmdv-setup.local ${D}${sysconfdir}/nginx/sites-available/ + + rm -rf ${D}${systemd_unitdir}/system/nginx/sites-enabled/default_server + rm -rf ${D}${sysconfdir}/nginx/sites-enabled/default_server + ln -s ${sysconfdir}/nginx/sites-available/vrpmdv-setup.local ${D}${sysconfdir}/nginx/sites-enabled/ +} diff --git a/recipes-vrpmdv/recipes-base/python3-gunicorn/files/vrpmdv_setup_page.service b/recipes-vrpmdv/recipes-base/python3-gunicorn/files/vrpmdv_setup_page.service new file mode 100644 index 0000000..5be3350 --- /dev/null +++ b/recipes-vrpmdv/recipes-base/python3-gunicorn/files/vrpmdv_setup_page.service @@ -0,0 +1,20 @@ +[Unit] +Description=gunicorn daemon for vrpmdv_setup_page +Requires=vrpmdv_setup_page.socket +After=network.target + +[Service] +User=root +Group=www-data +Type=notify +RuntimeDirectory=gunicorn +WorkingDirectory=/var/www/vrpmdv-setup.local/ +ExecStart=/usr/bin/gunicorn vrmpdvsetupapp +ExecReload=/bin/kill -s HUP $MAINPID +KillMode=mixed +TimeoutStopSec=5 +PrivateTmp=true + +[Install] +WantedBy=multi-user.target + diff --git a/recipes-vrpmdv/recipes-base/python3-gunicorn/files/vrpmdv_setup_page.socket b/recipes-vrpmdv/recipes-base/python3-gunicorn/files/vrpmdv_setup_page.socket new file mode 100644 index 0000000..35a9764 --- /dev/null +++ b/recipes-vrpmdv/recipes-base/python3-gunicorn/files/vrpmdv_setup_page.socket @@ -0,0 +1,9 @@ +[Unit] +Description=gunicorn socket for vrpmdv_setup_page + +[Socket] +ListenStream=/run/vrpmdv_setup_page.sock +SocketUser=www + +[Install] +WantedBy=sockets.target diff --git a/recipes-vrpmdv/recipes-base/python3-gunicorn/python3-gunicorn_%.bbappend b/recipes-vrpmdv/recipes-base/python3-gunicorn/python3-gunicorn_%.bbappend new file mode 100644 index 0000000..8e6d514 --- /dev/null +++ b/recipes-vrpmdv/recipes-base/python3-gunicorn/python3-gunicorn_%.bbappend @@ -0,0 +1,35 @@ +SUMMARY = "Install and start a systemd services" +SECTION = "mlgunicorn" +LICENSE = "CLOSED" + +inherit systemd + + +FILESEXTRAPATHS:prepend := "${THISDIR}/files:" + +SRC_URI += "file://vrpmdv_setup_page.service" +SRC_URI += "file://vrpmdv_setup_page.socket" + +SYSTEMD_AUTO_ENABLE = "enable" +SYSTEMD_SERVICE:${PN} = "vrpmdv_setup_page.service vrpmdv_setup_page.socket " + + + + +FILES:${PN} += "${systemd_system_unitdir}" +FILES:${PN} += "${systemd_system_unitdir}/vrpmdv_setup_page.service" +FILES:${PN} += "${systemd_system_unitdir}/vrpmdv_setup_page.socket" + +do_install:append () { + install -d ${D}/${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/vrpmdv_setup_page.service ${D}/${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/vrpmdv_setup_page.socket ${D}/${systemd_system_unitdir} + + install -d ${D}${sysconfdir}/systemd/system/multi-user.target.wants/ + install -d ${D}${sysconfdir}/systemd/system/sockets.target.wants/ + + ln -s ${systemd_system_unitdir}/datalogger_setup_page.socket ${D}${sysconfdir}/systemd/system/sockets.target.wants/vrpmdv_setup_page.socket + ln -s ${systemd_system_unitdir}/datalogger_setup_page.service ${D}${sysconfdir}/systemd/system/multi-user.target.wants/vrpmdv_setup_page.service +} + +REQUIRED_DISTRO_FEATURES= "systemd" diff --git a/recipes-vrpmdv/recipes-base/vrpmdv-setup-page/files/vrmpdvsetupapp.py b/recipes-vrpmdv/recipes-base/vrpmdv-setup-page/files/vrmpdvsetupapp.py new file mode 100644 index 0000000..ccfa85d --- /dev/null +++ b/recipes-vrpmdv/recipes-base/vrpmdv-setup-page/files/vrmpdvsetupapp.py @@ -0,0 +1,4 @@ +from vrmpdvsetuppage import application +if __name__ == "__main__": + application.run() + diff --git a/recipes-vrpmdv/recipes-base/vrpmdv-setup-page/files/vrmpdvsetuppage.py b/recipes-vrpmdv/recipes-base/vrpmdv-setup-page/files/vrmpdvsetuppage.py new file mode 100644 index 0000000..d777e39 --- /dev/null +++ b/recipes-vrpmdv/recipes-base/vrpmdv-setup-page/files/vrmpdvsetuppage.py @@ -0,0 +1,8 @@ +from flask import Flask +application = Flask(__name__) +@application.route("/") +def hello(): + return "Welcome to VRMPDV Application Setup!" +if __name__ == "__main__": + application.run(host='0.0.0.0') + diff --git a/recipes-vrpmdv/recipes-base/vrpmdv-setup-page/vrpmdv-setup-page (Kopie).bb.old b/recipes-vrpmdv/recipes-base/vrpmdv-setup-page/vrpmdv-setup-page (Kopie).bb.old new file mode 100644 index 0000000..7e62330 --- /dev/null +++ b/recipes-vrpmdv/recipes-base/vrpmdv-setup-page/vrpmdv-setup-page (Kopie).bb.old @@ -0,0 +1,46 @@ +SUMMARY = "vrpmdv-setup-page recipe" +DESCRIPTION = "Recipe to add vrpmdv-setup-page to it's location." +LICENSE = "CLOSED" + +FILESEXTRAPATHS:prepend := "files:" + +inherit allarch perlnative + +DEPENDS += " perl" + + +# SRC_URI += " \ +# file://vrmpdvsetupapp.py \ +# file://vrmpdvsetuppage.py \ +# " + +SRC_URI += " \ + git://gitea.malehr.de/markus.lehr/vrmpdv.git;protocol=https;branch=master; \ +" + +SRCREV = "${AUTOREV}" + + +#SRC_URI += " \ +# git://git@gitlab.sclabs.io:10122/vrpmdv/setup-page.git;protocol=ssh; \ +#" +#SRCREV = "${AUTOREV}" + +S = "${WORKDIR}/git" + +# S = "${WORKDIR}" + + +DESTINATION = "var/www/vrpmdv-setup.local" + +FILES:${PN} += "${DESTINATION}" + + +do_install () { + install -d ${D}/${DESTINATION} + cp -r ${S}/* ${D}/${DESTINATION} +} + + +RDEPENDS_${PN} += " perl" + diff --git a/recipes-vrpmdv/recipes-base/vrpmdv-setup-page/vrpmdv-setup-page.bb b/recipes-vrpmdv/recipes-base/vrpmdv-setup-page/vrpmdv-setup-page.bb new file mode 100644 index 0000000..5fa159f --- /dev/null +++ b/recipes-vrpmdv/recipes-base/vrpmdv-setup-page/vrpmdv-setup-page.bb @@ -0,0 +1,45 @@ +SUMMARY = "vrpmdv-setup-page recipe" +DESCRIPTION = "Recipe to add vrpmdv-setup-page to it's location." +LICENSE = "CLOSED" + +inherit allarch perlnative + +DEPENDS += " perl" + + +SRC_URI += " \ + file://vrmpdvsetupapp.py \ + file://vrmpdvsetuppage.py \ +" + +# SRC_URI += " \ +# git://gitea.malehr.de/markus.lehr/vrmpdv.git;protocol=https;branch=master; \ +# " + +# SRCREV = "${AUTOREV}" + + +#SRC_URI += " \ +# git://git@gitlab.sclabs.io:10122/vrpmdv/setup-page.git;protocol=ssh; \ +#" +#SRCREV = "${AUTOREV}" + +# S = "${WORKDIR}/git" + +# S = "${WORKDIR}" + + +DESTINATION = "/var/www/vrpmdv-setup.local" + +FILES:${PN} += "${DESTINATION}" + + +do_install () { + install -d ${D}${DESTINATION} + install -m 0644 ${WORKDIR}/vrmpdvsetupapp.py ${D}/${DESTINATION} + install -m 0644 ${WORKDIR}/vrmpdvsetuppage.py ${D}/${DESTINATION} +} + + +RDEPENDS_${PN} += " perl" + diff --git a/recipes-vrpmdv/recipes-core/images/st-image.inc b/recipes-vrpmdv/recipes-core/images/st-image.inc new file mode 100644 index 0000000..fc13b70 --- /dev/null +++ b/recipes-vrpmdv/recipes-core/images/st-image.inc @@ -0,0 +1,50 @@ +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://${EULA_FILE_ST};md5=${EULA_FILE_ST_MD5SUM}" +LIC_FILES_CHKSUM[vardepsexclude] += "EULA_FILE_ST" + +inherit st-image-license-summary +inherit st-sdk-license-summary +inherit st-image-cve-summary + + +EULA_FILE_ST ?= "${OPENSTLINUX_BASE}/files/licenses/ST-Proprietary" +EULA_FILE_ST_MD5SUM ?= "7cb1e55a9556c7dd1a3cae09db9cc85f" + +image_copy_image_license() { + if [ -f ${EULA_FILE_ST} ]; then + cp ${EULA_FILE_ST} ${IMGDEPLOYDIR}/${IMAGE_NAME}.license + cd ${IMGDEPLOYDIR}; ln -sf ${IMAGE_NAME}.license ${IMAGE_LINK_NAME}.license + else + bbwarn "Missing 'EULA_FILE_ST' var : no image license copied..." + fi +} +IMAGE_POSTPROCESS_COMMAND:prepend = "image_copy_image_license;" + +sdk_copy_image_license() { + mkdir -p ${SDKDEPLOYDIR} + if [ -f ${EULA_FILE_ST} ]; then + cp ${EULA_FILE_ST} ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.license + else + bbwarn "Missing 'EULA_FILE_ST' var : no image license copied..." + fi +} +SDK_POSTPROCESS_COMMAND:prepend = "sdk_copy_image_license;" + +LSB_RELASE_TIMESTAMP = "${DATE}-${TIME}" +LSB_RELASE_TIMESTAMP[vardepsexclude] += "DATE" +LSB_RELASE_TIMESTAMP[vardepsexclude] += "TIME" + +update_lsbreleasedate() { + if [ -f ${IMAGE_ROOTFS}${sysconfdir}/lsb-release ]; then + sed -i 's/^DISTRIB_RELEASE=\(.*\)-snapshot-.*$/DISTRIB_RELEASE=\1-snapshot-'"${LSB_RELASE_TIMESTAMP}"'/' ${IMAGE_ROOTFS}${sysconfdir}/lsb-release + sed -i 's/^DISTRIB_DESCRIPTION=\(.*\)-snapshot-.*\"/DISTRIB_DESCRIPTION=\1-snapshot-'"${LSB_RELASE_TIMESTAMP}"'\"/' ${IMAGE_ROOTFS}${sysconfdir}/lsb-release + fi +} +ROOTFS_POSTPROCESS_COMMAND:append = "update_lsbreleasedate;" + +zap_empty_weston_password () { + if [ -e ${IMAGE_ROOTFS}/etc/shadow ]; then + sed -i 's%^weston:!:%weston::%' ${IMAGE_ROOTFS}/etc/shadow + fi +} +ROOTFS_POSTPROCESS_COMMAND:append = "zap_empty_weston_password;" diff --git a/recipes-vrpmdv/recipes-core/images/vrpmdv-dev-image.bb b/recipes-vrpmdv/recipes-core/images/vrpmdv-dev-image.bb new file mode 100644 index 0000000..fe223ec --- /dev/null +++ b/recipes-vrpmdv/recipes-core/images/vrpmdv-dev-image.bb @@ -0,0 +1,9 @@ +SUMMARY = "VRPMDV extended version of image" +LICENSE = "CLOSED" + +inherit core-image +require vrpmdv-image.bb + +CORE_IMAGE_EXTRA_INSTALL += " \ + packagegroup-vrpmdv-dev \ + " diff --git a/recipes-vrpmdv/recipes-core/images/vrpmdv-extended-image.bb b/recipes-vrpmdv/recipes-core/images/vrpmdv-extended-image.bb new file mode 100644 index 0000000..2c1fcd9 --- /dev/null +++ b/recipes-vrpmdv/recipes-core/images/vrpmdv-extended-image.bb @@ -0,0 +1,9 @@ +SUMMARY = "VRPMDV extended version of image" +LICENSE = "CLOSED" + +inherit core-image +require vrpmdv-image.bb + +CORE_IMAGE_EXTRA_INSTALL += " \ + packagegroup-vrpmdv-extended \ + " diff --git a/recipes-vrpmdv/recipes-core/images/vrpmdv-image.bb b/recipes-vrpmdv/recipes-core/images/vrpmdv-image.bb new file mode 100644 index 0000000..c34b367 --- /dev/null +++ b/recipes-vrpmdv/recipes-core/images/vrpmdv-image.bb @@ -0,0 +1,30 @@ +SUMMARY = "VRPM Device production image" +LICENSE = "CLOSED" + +include ./st-image.inc + +inherit core-image + + +IMAGE_INSTALL += " packagegroup-core-boot" +IMAGE_FEATURES += " \ + debug-tweaks \ + package-management \ + ssh-server-dropbear \ + " +# +# INSTALL addons +# +CORE_IMAGE_EXTRA_INSTALL += " \ + resize-helper \ + \ + packagegroup-framework-core-base \ + packagegroup-framework-tools-base \ + \ + ${@bb.utils.contains('COMBINED_FEATURES', 'optee', 'packagegroup-optee-core', '', d)} \ + ${@bb.utils.contains('COMBINED_FEATURES', 'optee', 'packagegroup-optee-test', '', d)} \ + \ + packagegroup-vrpmdv-core \ + packagegroup-vrpmdv-base \ + " + diff --git a/recipes-vrpmdv/recipes-core/packagegroups/__old/vrpmdv-base-packagegroup.bb.old b/recipes-vrpmdv/recipes-core/packagegroups/__old/vrpmdv-base-packagegroup.bb.old new file mode 100644 index 0000000..9440310 --- /dev/null +++ b/recipes-vrpmdv/recipes-core/packagegroups/__old/vrpmdv-base-packagegroup.bb.old @@ -0,0 +1,72 @@ +DESCRIPTION = "Datalogger base application packagegroup" +SUMMARY = "Datalogger packagegroup - base system apps" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +inherit packagegroup + +PACKAGES = " \ + datalogger-base-packagegroup \ + datalogger-base-buildtools \ + datalogger-base-python \ + datalogger-base-connectivity \ +" + +RDEPENDS_${PN} = " \ + datalogger-base-buildtools \ + datalogger-base-python \ + datalogger-base-connectivity \ +" + +SUMMARY_datalogger-base-buildtools = "Build utilities" +RDEPENDS_datalogger-base-buildtools = " \ + autoconf \ + automake \ + binutils \ + binutils-symlinks \ + cpp \ + cpp-symlinks \ + gcc \ + gcc-symlinks \ + g++ \ + g++-symlinks \ + gettext \ + make \ + libstdc++ \ + libtool \ + pkgconfig \ +" + +RDEPENDS_datalogger-base-buildtools-dev += " \ + libstdc++-dev \ +" + +SUMMARY_datalogger-base-python = "Python packages" +RDEPENDS_datalogger-base-python = " \ + python3 \ + libpython3 \ + python3-core \ + python3-flask \ + python3-gunicorn \ + python3-pip \ + python3-requests \ + python3-spidev \ + python3-wheel \ + python3-venv \ +" + +RDEPENDS_datalogger-base-python-dev += " \ + python3-dev \ +" + +SUMMARY_datalogger-base-connectivity = "Connectivity utilities" +RDEPENDS_datalogger-base-connectivity = " \ + curl \ + dropbear \ + hostapd \ + kea \ + nginx \ + rpi-gpio \ + rpio \ + wpa-supplicant \ +" diff --git a/recipes-vrpmdv/recipes-core/packagegroups/packagegroup-vrpmdv-base.bb b/recipes-vrpmdv/recipes-core/packagegroups/packagegroup-vrpmdv-base.bb new file mode 100644 index 0000000..bad06ba --- /dev/null +++ b/recipes-vrpmdv/recipes-core/packagegroups/packagegroup-vrpmdv-base.bb @@ -0,0 +1,69 @@ +DESCRIPTION = "VRPM Device base application packagegroup" +SUMMARY = "VRPM Device packagegroup - base system apps" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +inherit packagegroup + +PACKAGES = " \ + packagegroup-vrpmdv-base \ + vrpmdv-base-buildtools \ + vrpmdv-base-python \ + vrpmdv-base-connectivity \ +" + +RDEPENDS_${PN} = " \ + vrpmdv-base-buildtools \ + vrpmdv-base-python \ + vrpmdv-base-connectivity \ +" + +SUMMARY_vrpmdv-base-buildtools = "Build utilities" +RDEPENDS_vrpmdv-base-buildtools = " \ + autoconf \ + automake \ + binutils \ + binutils-symlinks \ + cpp \ + cpp-symlinks \ + gcc \ + gcc-symlinks \ + g++ \ + g++-symlinks \ + gettext \ + make \ + libstdc++ \ + libtool \ + pkgconfig \ +" + +RDEPENDS_vrpmdv-base-buildtools-dev += " \ + libstdc++-dev \ +" + +SUMMARY_vrpmdv-base-python = "Python packages" +RDEPENDS_vrpmdv-base-python = " \ + python3 \ + libpython3 \ + python3-core \ + python3-flask \ + python3-gunicorn \ + python3-pip \ + python3-requests \ + python3-spidev \ + python3-wheel \ + python3-venv \ +" + + +SUMMARY_vrpmdv-base-connectivity = "Connectivity utilities" +RDEPENDS_vrpmdv-base-connectivity = " \ + curl \ + dropbear \ + hostapd \ + kea \ + nginx \ + rpi-gpio \ + rpio \ + wpa-supplicant \ +" diff --git a/recipes-vrpmdv/recipes-core/packagegroups/packagegroup-vrpmdv-core.bb b/recipes-vrpmdv/recipes-core/packagegroups/packagegroup-vrpmdv-core.bb new file mode 100644 index 0000000..e9b8e5b --- /dev/null +++ b/recipes-vrpmdv/recipes-core/packagegroups/packagegroup-vrpmdv-core.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "VRPM Device core application packagegroup" +SUMMARY = "VRPM Device packagegroup - core system apps" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +inherit packagegroup + +RDEPENDS_${PN} = " \ + systemd \ + " + diff --git a/recipes-vrpmdv/recipes-core/packagegroups/packagegroup-vrpmdv-dev.bb b/recipes-vrpmdv/recipes-core/packagegroups/packagegroup-vrpmdv-dev.bb new file mode 100644 index 0000000..89f3ded --- /dev/null +++ b/recipes-vrpmdv/recipes-core/packagegroups/packagegroup-vrpmdv-dev.bb @@ -0,0 +1,9 @@ +DESCRIPTION = "VRPM Device test application packagegroup" +SUMMARY = "VRPM Device packagegroup - tools/testapps" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +inherit packagegroup + +RDEPENDS_${PN} = " \ +" diff --git a/recipes-vrpmdv/recipes-core/packagegroups/packagegroup-vrpmdv-extended.bb b/recipes-vrpmdv/recipes-core/packagegroups/packagegroup-vrpmdv-extended.bb new file mode 100644 index 0000000..bc9f15a --- /dev/null +++ b/recipes-vrpmdv/recipes-core/packagegroups/packagegroup-vrpmdv-extended.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "VRPM Device extended application packagegroup" +SUMMARY = "VRPM Device packagegroup - extended" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +inherit packagegroup + +RDEPENDS_${PN} = " \ + vim \ + git \ +"