[OE-core] [RFC PATCH] easysplash: Add recipes for 1.0.0 release

Otavio Salvador otavio at ossystems.com.br
Sun Mar 1 13:13:53 UTC 2020


A simple program for animated splash screens using Software Rendering or
OpenGL ES. It consists of the main splash screen program (easysplash)
and a small control program (easysplashctl).

EasySplash takes as input zip archives containing a description and
PNG-encoded image frames.

Signed-off-by: Otavio Salvador <otavio at ossystems.com.br>
---
We decided to open source this so more people can rely on this for their
Embedded Linux devices use. The APACHE-2.0 or MIT license can be used,
as preferred as all source is dual licensed.

On this commit, we are adding the two animations we have been using for
demos, so it can be used as testing. I believe it'd be good if a
specific one was developed for OpenEmbedded / Yocto Project used, thus
the use of a RFC patch.

 meta/classes/easysplash-animation.bbclass     | 20 ++++++
 .../easysplash-bootanimation-default_1.0.bb   | 12 ++++
 ...asysplash-bootanimation-ossystems_1.0.1.bb | 11 +++
 .../easysplash/easysplash/easysplash.default  |  2 +
 .../recipes-core/easysplash/easysplash_git.bb | 71 +++++++++++++++++++
 5 files changed, 116 insertions(+)
 create mode 100644 meta/classes/easysplash-animation.bbclass
 create mode 100644 meta/recipes-core/easysplash/easysplash-bootanimation-default_1.0.bb
 create mode 100644 meta/recipes-core/easysplash/easysplash-bootanimation-ossystems_1.0.1.bb
 create mode 100644 meta/recipes-core/easysplash/easysplash/easysplash.default
 create mode 100644 meta/recipes-core/easysplash/easysplash_git.bb

diff --git a/meta/classes/easysplash-animation.bbclass b/meta/classes/easysplash-animation.bbclass
new file mode 100644
index 0000000000..76b84f179a
--- /dev/null
+++ b/meta/classes/easysplash-animation.bbclass
@@ -0,0 +1,20 @@
+# -*- python -*-
+# easysplash-animation.bbclass allows for easy packaging of EasySplash
+# animation packages.
+#
+# Copyright (C) 2015, O.S. Systems Softwares Ltda.  All Rights Reserved
+# Released under the MIT license (see packages/COPYING)
+
+inherit update-alternatives allarch
+
+ALTERNATIVE_${PN} += "bootanimation"
+ALTERNATIVE_TARGET[bootanimation] = "/lib/easysplash/${PN}.zip"
+ALTERNATIVE_LINK_NAME[bootanimation] = "/lib/easysplash/bootanimation.zip"
+ALTERNATIVE_PRIORITY[bootanimation] = "50"
+
+do_install_append() {
+    install -Dm 0644 ${S}/*.zip ${D}/lib/easysplash/${PN}.zip
+}
+
+FILES_${PN} += "/lib/easysplash/${PN}.zip"
+RDEPENDS_${PN} += "easysplash"
diff --git a/meta/recipes-core/easysplash/easysplash-bootanimation-default_1.0.bb b/meta/recipes-core/easysplash/easysplash-bootanimation-default_1.0.bb
new file mode 100644
index 0000000000..c94d2d18d4
--- /dev/null
+++ b/meta/recipes-core/easysplash/easysplash-bootanimation-default_1.0.bb
@@ -0,0 +1,12 @@
+SUMMARY = "O.S. Systems default boot animation for easysplash"
+LICENSE = "CLOSED"
+
+SRC_URI = "http://download.ossystems.com.br/tarballs/${BPN}-${PV}.zip;unpack=0"
+SRC_URI[md5sum] = "882345727cdea329f4d43484c3b3835f"
+SRC_URI[sha256sum] = "5f77a53887d1fe2774aa319853ed5288950089a74507717ffb9071dc5e0e2d7e"
+
+S = "${WORKDIR}"
+
+inherit easysplash-animation
+
+ALTERNATIVE_PRIORITY[bootanimation] = "10"
diff --git a/meta/recipes-core/easysplash/easysplash-bootanimation-ossystems_1.0.1.bb b/meta/recipes-core/easysplash/easysplash-bootanimation-ossystems_1.0.1.bb
new file mode 100644
index 0000000000..7091df2ca5
--- /dev/null
+++ b/meta/recipes-core/easysplash/easysplash-bootanimation-ossystems_1.0.1.bb
@@ -0,0 +1,11 @@
+SUMMARY = "O.S. Systems animation used for image demos"
+LICENSE = "CLOSED"
+
+SRC_URI = "http://download.ossystems.com.br/tarballs/${PN}-${PV}.zip;unpack=0"
+
+SRC_URI[md5sum] = "e721376508827f79382463a8dcde1cb8"
+SRC_URI[sha256sum] = "472f0e5cf1dc865a450d1b87d3e93dcbb7ae5e16021d5864a01a6d28ff24b0ca"
+
+S = "${WORKDIR}"
+
+inherit easysplash-animation
diff --git a/meta/recipes-core/easysplash/easysplash/easysplash.default b/meta/recipes-core/easysplash/easysplash/easysplash.default
new file mode 100644
index 0000000000..6fad9200e3
--- /dev/null
+++ b/meta/recipes-core/easysplash/easysplash/easysplash.default
@@ -0,0 +1,2 @@
+# EASYSPLASH_GBM_DRM_DEVICE: Path to a DRI device node. Example: /dev/dri/card0.
+# EASYSPLASH_GBM_DRM_CONNECTOR: The DRM connector to use. Example HDMI input, LVDS pins, etc.
diff --git a/meta/recipes-core/easysplash/easysplash_git.bb b/meta/recipes-core/easysplash/easysplash_git.bb
new file mode 100644
index 0000000000..196fd297a0
--- /dev/null
+++ b/meta/recipes-core/easysplash/easysplash_git.bb
@@ -0,0 +1,71 @@
+# Copyright (C) 2015, 2016 O.S. Systems Software Ltda.  All Rights Reserved
+# Released under the MIT license (see packages/COPYING)
+
+SUMMARY = "Userspace framebuffer boot animation based on usplash"
+DESCRIPTION = "EasySplash is a simple program for animated splash screens using OpenGL ES \
+for rendering. It takes as input zip archives containing a description and PNG-encoded \
+image frames."
+LIC_FILES_CHKSUM = " \
+    file://LICENSE-APACHE-2.0;md5=b377b220f43d747efdec40d69fcaa69d \
+    file://LICENSE-MIT;md5=b377b220f43d747efdec40d69fcaa69d \
+"
+LICENSE = "Apache-2.0 | MIT"
+SECTION = "base"
+
+DEPENDS = "zlib libpng"
+
+SRCREV = "d4a78a04ac2c8f1504db7ace1bce337e009e0fe7"
+SRC_URI = " \
+    git://github.com/OSSystems/easysplash.git \
+    file://${BPN}.default \
+"
+
+PV = "1.0.0+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig update-rc.d systemd
+
+# We want the binaries to be in /sbin
+EXTRA_OECMAKE += "-DCMAKE_INSTALL_PREFIX:PATH=/ \
+                  -DCTL_FIFO_PATH=/dev/easysplashctl \
+                  -DEASYSPLASH_PID_FILE=/dev/easysplash.pid"
+
+INITSCRIPT_NAME = "easysplash-start"
+INITSCRIPT_PARAMS_${PN} = "start 5 S ."
+
+SYSTEMD_SERVICE_${PN} = "easysplash-start.service easysplash-quit.service"
+
+PACKAGECONFIG_DISTRO ?= "${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'sysvinit', '', d)} \
+                         ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
+
+PACKAGECONFIG ?= "${PACKAGECONFIG_DISTRO} swrender"
+#PACKAGECONFIG_mx6q ?= "${PACKAGECONFIG_DISTRO} vivante-g2d"
+#PACKAGECONFIG_mx6dl ?= "${PACKAGECONFIG_DISTRO} vivante-g2d"
+#PACKAGECONFIG_rpi ?= "${PACKAGECONFIG_DISTRO} rpi-dispmanx"
+#PACKAGECONFIG_use-mainline-bsp ?= "${PACKAGECONFIG_DISTRO} mesa-gbm"
+
+PACKAGECONFIG[swrender] = "-DDISPLAY_TYPE_SWRENDER=TRUE,-DDISPLAY_TYPE_SWRENDER=FALSE,pixman"
+PACKAGECONFIG[vivante-g2d] = "-DDISPLAY_TYPE_G2D=TRUE,-DDISPLAY_TYPE_G2D=FALSE,virtual/libg2d"
+# NOTE: not adding -DDISPLAY_TYPE_GLES=FALSE when the packageconfig isn't used
+# because both mesa-gbm and vivante-gles2 enable GLES, and DDISPLAY_TYPE_GLES=FALSE
+# is anyway the default
+PACKAGECONFIG[vivante-gles2] = "-DDISPLAY_TYPE_GLES=TRUE -DEGL_PLATFORM_VIV_FB=TRUE,,virtual/libgles2"
+# libgbm is part of the mesa recipe
+PACKAGECONFIG[mesa-gbm] = "-DDISPLAY_TYPE_GLES=TRUE -DEGL_PLATFORM_GBM=TRUE,,virtual/libgles2 mesa libdrm udev"
+PACKAGECONFIG[rpi-dispmanx] = "-DDISPLAY_TYPE_GLES=TRUE -DEGL_PLATFORM_RPI_DISPMANX=TRUE,,virtual/libgles2 userland"
+PACKAGECONFIG[sysvinit] = "-DENABLE_SYSVINIT_SUPPORT=TRUE, -DENABLE_SYSVINIT_SUPPORT=FALSE"
+PACKAGECONFIG[systemd] = "-DENABLE_SYSTEMD_SUPPORT=TRUE, -DENABLE_SYSTEMD_SUPPORT=FALSE, systemd"
+
+do_install_append() {
+    install -Dm 0644 ${WORKDIR}/${PN}.default ${D}${sysconfdir}/default/${PN}
+}
+
+RRECOMMENDS_${PN} = "easysplash-bootanimation-default"
+
+# NXP SoC arch
+PACKAGE_ARCH_imx = "${MACHINE_SOCARCH}"
+PACKAGE_ARCH_use-mainline-bsp = "${MACHINE_SOCARCH}"
+
+# Raspberry Pi
+PACKAGE_ARCH_rpi = "${MACHINE_ARCH}"
-- 
2.25.1



More information about the Openembedded-core mailing list