.. sectnum:: Wallee AG |api_name| ======================== .. |api_name| replace:: Third Party App Installation Guide (s6 Integration) .. |date| date:: Welcome to the Wallee AG |api_name| documentation for version: |release|, created on: |date| .. |wallee_logo_png| Overview ======== The |api_name| describes the steps required by Third Party App developers and integrators to enable installation on our Linux devices. The management of apps is performed through the s6-init system and this guide specifies the steps required to register an app with our app manager. Integration Variants -------------------- This document describes one out of two different Linux terminals supporte. * *Castles s6 integration guide (CTOS)*: The CTOS integration places s6-wallee-init as the DEFAULT application on CTOS devices. This application assumes control over all installed apps and manages the installation of new apps. All apps that are not registered with s6-wallee-init will not be activated at device reboot/startup so it is important to read this guide on how to register new apps. * *FEIG s6 integration guide (cVEND)*: s6-wallee-init supervision for third party applications is not supported for cVEND devices. Castles s6 integration guide ============================ We have implemented s6-wallee-init as the main process manager for our apps and 3rd party apps. This is based on the **s6-init** system. More information on the **s6-init** system are available on the `s6-init open source page `_ also available in `skarnet `_ and the relevant `github repository `_ and we are happy to support any third party application integration. Version 1.4.0.0 of the VSD app is the first version that supports this process manager and this integration API. If a previous version was already installed a migration strategy may be required. Please contact us directly with questions about upgrading. Also in version 1.4.00.0 we have implemented separate apps for network management and logging support which are controlled by s6-wallee-init. In the future we will have also a separate app for Update management. Any third party application must be registered with our s6-wallee-init manager to be executed. Requirements for 3rd party app developers ========================================= * a start script must be provided. This should be written in the fashion of s6 run service directory requirements. The name of this file must be **start**. It may be any executable file: e.g. shell script, binary. If it is a shell script, the contents can describe the prefered version of bash/sh etc. * a **type** file (as defined by s6) can be *optionally* provided. If one is not present we assume all 3rd party apps are **longrun**. Such processes are expected to always execute and restart if unexpectedly stopped (e.g. crashed). Please refer to the **s6-init** documentation for more information. * a **stop** script can be *optionally* provided following the s6 guidance for finish scripts. If one is not provided we assume that no clean up operations are needed when the third party app stops executing (e.g. at reboot or upgrade). * the third part application must not be defined as a `DEFAULT` application when creating the CAP file. * to see the output of an app on the usb port, redirect the output from the provided start script: **./my_app_executable > /dev/pts/0** *NOTE*: the **run** and **finish** scripts must not be directly provided as we need to keep control of execution privileges and log sync. Once the required files are created they must be added to the CAP file signed for the CTOS device loader together with the third party application implementation. The loader can be used as normal to load the third party application onto the CTOS device. Howerver, the VSD application must be the first application to be installed including all its executables (ie, s6-wallee-init, VSD, network manager and gprs manager should all be visible on the list of installed applications and s6-wallee-init should be tested once before they load) Changelog ========== Note that versions before 1.0 are not available. This integration option is only supported in VSD version 1.4.0.0 and above. For earlier versions of the application CTOS did not support multi-app management. ------------ :Version: 1.1 :Date: 2025-02-21 :Changes: - Additional guidance for logging output to USB port. :Migration Notes: \- ------------ :Version: 1.0 :Date: 2024-09-17 :Changes: - Original version of the documentation released for version 1.4.0.0-alpha testing. :Migration Notes: \- .. |wallee_logo_png| image:: ./Pictures/wallee_logo_RGB_turquoise.png :scale: 10%